Excel e gli applicativi Microsoft Office Macro testo in colonne e formato date

Login Registrati
Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
  • Autore
    Articoli
  • #16765 Score: 0 | Risposta

    Max10
    Partecipante

      Ciao a tutti,

      ho registrato una macro che inizia semplicemente portando il testo che si trova in un unica colonna su più colonne.

      Il problema che ho è che nella prima colonna che viene divisa le date sono in formato dd-mm-yyyy e quando eseguo la macro alcune date vengono convertite in mm/dd/yyyy mentre altre rimangono con il trattino "-". Per le date convertite i giorni vengono quindi rilavati alla fine di tutto come mesi e viceversa.

      Esempio la data 12-01-2018 viene convertita in 01/12/2018 ma la data 18-01-2018 rimane con il "-". Credo quindi che rilevi le prime 2 cifre come il mese e quando le prime 2 cifre sono superiori a 12 non rilevando un mese lascia tutto cosi come è.

      Ho sistemato successivamente le date che rimangono con  "-" con un trova sostituisci con "/" e il formato rimane corretto però non so come fare rilevare alla macro che divide in colonne il formato data giusto! 

      Qualcuno sa aiutarmi?

      Grazie

       

      #16766 Score: 0 | Risposta

      Anonimo
        1 pt

        Max10 ha scritto:

        Qualcuno sa aiutarmi?

        Senza vedere il file?

        Forse, potrebbe essere il formato della cella... Chissà...

        #16770 Score: 0 | Risposta

        Max10
        Partecipante

          Semplificando ho questo in un unica colonna:

                 Data            Descrizione
           10-01-2018        testo
           10-01-2018        testo
           12-01-2018        testo
           18-01-2018        testo
           18-01-2018        testo

           

          Se eseguo manualmente testo in colonne ho questo (che è corretto):

          Data Descrizione
          10/01/2018 testo
          10/01/2018 testo
          12/01/2018 testo
          18/01/2018 testo
          18/01/2018 testo

          Con macro invece ho questo (10 gennaio diventa 1 ottobre):

          Data Descrizione
          01/10/2018 testo
          01/10/2018 testo
          01/12/2018 testo
          18-01-2018 testo
          18-01-2018 testo

           

          La macro che uso è questa:

          Sub Macro1()
          '
          ' Macro1 Macro
          '

          '
          Columns("A:A").Select
          Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
          FieldInfo:=Array(Array(0, 1), Array(14, 1)), TrailingMinusNumbers:=True
          End Sub

          #16772 Score: 0 | Risposta

          patel
          Moderatore
            51 pts

            Quando ti chiedono un file di esempio è meglio allegarlo, altrimenti chi ti vorrebbe aiutare ci rinuncia.

            #16775 Score: 0 | Risposta

            Marius44
            Moderatore
              58 pts

              Salve a tutti

              Ha ragione patel (ciao Andrea) quando dice che è necessario allegare il file ma la cosa mi ha incuriosito e mi sono ricreato il tuo file ed ho utilizzato la tua macro.

              Guarda un po' non fa esattamente quello che dici perchè a me le "date" rimangono stringhe (allineate a sinistra nella cella formattata a Generale) e col trattino (non con la barra).

              Allora ho formattato la colonna C come data (con la barra e anno per esteso) ed ho dato come destinazione la cella C1; quindi ho lanciato la macro. Risposta corretta MA le date rimangono stringhe (come sopra)

              Probabilmente l'inghippo è un altro. Non è che per caso hai la versione di Excel in inglese?

               

              Ciao,

              Mario

               

               

              #16776 Score: 0 | Risposta

              Max10
              Partecipante

                Ciao,

                grazie per la risposta. 

                Non ho il pc con me in cui ho fatto l'estrazione ma ho provato da un altro computer con la stessa versione di excel (ho office 365 in italiano) e in effetti da questo pc è come dici te (i trattini rimangono tutti).

                Verifico appena torno all'altro e vi faccio sapere

                #16811 Score: 0 | Risposta

                Max10
                Partecipante

                  Ecco il file.

                  Se anche in questo caso a voi non fa questa cosa potrebbe essere qualche impostazione di excel o windows?

                   

                   

                  Allegati:
                  You must be logged in to view attached files.
                  #16815 Score: 1 | Risposta

                  Marius44
                  Moderatore
                    58 pts

                    Ciao

                    Non capisco perchè prima non me lo faceva ma adesso mi presenta i dati come dici tu.

                    Ho scoperto di cosa si tratta. Nella parte della Funzione TextToColumns quando si dà il tipo di dati da esaminare, cioè il parametro FieldInfo.

                    Questa è una matrice contenente informazioni di analisi per le singole colonne di dati. L'interpretazione dipende dal valore di DataType. 

                    Quando i dati sono delimitati, questo argomento è un array di matrici a due elementi, con ogni array a due elementi che specifica le opzioni di conversione per una particolare colonna. Il primo elemento è il numero di colonna (basato su 1) e il secondo elemento è una delle costanti XlColumnDataType che specifica come viene analizzata la colonna.

                    Nel tuo caso, visto che la prima colonna è quella delle date, la parte di codice che si riferisce alla prima colonna deve essere FieldInfo:=Array(Array(0, 4), Array(14, 1)) 

                    Per maggiori ragguagli leggi a questo indirizzo: 

                    https://docs.microsoft.com/en-us/office/vba/api/excel.range.texttocolumns

                     

                    Fai sapere. Ciao,

                    Mario

                    #16819 Score: 0 | Risposta

                    Max10
                    Partecipante

                      Grazie mille. Adesso funziona.

                      Praticamente forzando il formato corretto della prima colonna sostituendo nella macro 1 con 4 rileva la data come deve. Inoltre non rimangono più date dove sostituire "-" con "/".

                      Risolto.

                    Login Registrati
                    Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
                    Rispondi a: Macro testo in colonne e formato date
                    Gli allegati sono permessi solo ad utenti REGISTRATI
                    Le tue informazioni: