DA ACCESS VBA SALVARE FILE.CSV IN XLSX E AVERE DATE IN FORMATO GG/MM/AAAA

di il
8 risposte

DA ACCESS VBA SALVARE FILE.CSV IN XLSX E AVERE DATE IN FORMATO GG/MM/AAAA

Buongiorno, chiedo il vostro aiuto perchè non riesco a risolvere un problema apparentemente semplice ma che mi sta facendo impazzire: da ACCESS VBA apro un file CSV dove nella prima cella c'è una unica stringa contenente vari campi delimitati con la virgola, il problema sta nelle date se manualmente apro il file csv e faccio testo in colonna mi legge le date in formato corretto mentre se faccio direttamente da VBA salva con nome in formato xlsx me lo salva in excel mettendo una colonna per ogni campo delimitato da virgola però le date me le mette in formato mm/gg/aaaa cioè americano, POTETE AIUTARMI?
forse dovrei fare da vba l'operazione che aprendo il file excel faccio con la funzione testo in colonna ma non ho trovato la sintassi corretta nemmeno guardando il codice VBA da macro
spero di esser stato chiaro saluti

8 Risposte

  • Re: DA ACCESS VBA SALVARE FILE.CSV IN XLSX E AVERE DATE IN FORMATO GG/MM/AAAA

    (non scrivere il titolo del thread tutto in maiuscolo, le convenzioni sui forum dicono che scrivere in maiuscolo equivale ad urlare)

    angeloxx71 ha scritto:


    da ACCESS VBA apro un file CSV dove nella prima cella c'è una unica stringa
    Un file CSV è un file di testo e non ha celle. Ecco cosa succede ad avere Excel come programma predefinito per l'apertura di quei file: si passa per "foglio di calcolo" quello che è testo puro e semplice (seppur con le sue caratteristiche da CSV). Ecco che la conseguenza logica di tutto questo è

    angeloxx71 ha scritto:


    forse dovrei fare da vba l'operazione che aprendo il file excel
    no, perché lo apri con Excel? che ci devi fare? Sei in Access!

    angeloxx71 ha scritto:


    se faccio direttamente da VBA salva con nome in formato xlsx
    Come fai questa cosa?

    angeloxx71 ha scritto:


    spero di esser stato chiaro saluti
    Poco. Cerco di riepilogare anch'io quello che non ho capito: sei in Access ma non capisco se lo usi solo come "ambiente vba" sfruttando poi Excel tramite automazione o se tratti il file CSV davvero in Access. Provi a rispiegare? Grazie.
  • Re: DA ACCESS VBA SALVARE FILE.CSV IN XLSX E AVERE DATE IN FORMATO GG/MM/AAAA

    Mi scuso per il titolo in maiuscolo, provo ad essere piu chiaro, ho un file CSV con la prima cella A1 con "val1,val2,data1,data2",
    ho una tabella XLSX collegata in access che sarebbe il CSV trasformato in XLSX testo in colonne e trasformato in una tabella con i valori per ogni riga presi dai valori delimitati da virgola, questo lo riesco a fare con l'istruzione:
    Set Eexcel = CreateObject("Excel.Application")
    Set oBook = Eexcel.Workbooks.Open(newfile) ' APERTURA file csv
    Set oSheet = oBook.Worksheets(1).Select
    oBook.SaveAs folder & "\nuovofile.xlsx", 51 ' salva in file CSV in un file excel scomponendo i valori del testo in ogni riga come se si facesse un testo in colonna da CSV
    in pratica mi crea il file XLSX con tutte le colonne e le righe prese da CSV ma i campi relativi alle date mi compaio con il formato mm/gg/aaaa anche se dal file CSV si vedono in formato gg/mm/aaaa

    il mio problema sta solo nel riuscire a registrare la data nel formato corretto, faccio un esempio
    da CSV io vedo 09/10/2021 mentre dopo la trasformazione in excel lo vedo come 10/09/2021 ed il valore è veramente questo in quanto li ho verificati con la formula CLNG e entrambi hanno un valore diverso
    spero di essere stato chiaro
  • Re: DA ACCESS VBA SALVARE FILE.CSV IN XLSX E AVERE DATE IN FORMATO GG/MM/AAAA

    angeloxx71 ha scritto:


    ho un file CSV con la prima cella A1
    mezzo post precedente scritto a beneficio di qualcun altro.

    angeloxx71 ha scritto:


    il mio problema sta solo nel riuscire a registrare la data nel formato corretto
    Registrare dove? su Access?
    Ma tutti questi giri per un file CSV? non puoi importare/collegare direttamente quello su Access? Se metti le specifiche di importazione giuste dovresti leggere le date correttamente.
  • Re: DA ACCESS VBA SALVARE FILE.CSV IN XLSX E AVERE DATE IN FORMATO GG/MM/AAAA

    Dovrei importare il FILE CSV? come devo fare? e poi me lo salva in una tabella scomponendo i vari campi delimitati con la virgola?
    grazie mille
  • Re: DA ACCESS VBA SALVARE FILE.CSV IN XLSX E AVERE DATE IN FORMATO GG/MM/AAAA

    angeloxx71 ha scritto:


    Dovrei importare il FILE CSV?...
    Access può trattare un file di testo (perché il CSV è un file di testo) sia come tabella collegata, sia come importazione "trasformandolo" in tabella locale o ancora accodandolo ad una tabella esistente.
    Prova da interfaccia grafica intanto, creando così le specifiche di importazione che si adattano alle tue esigenze. Poi eventualmente si passa al codice.
    I pulsanti potrebbero non essere sempre nello stesso posto, dipende dalla versione di Access. In Microsoft-Office 365 devi andare in Dati Esterni - Nuova origine dati - Da file - File di testo (non Excel).
    Ma guarda un po' che anche Access lo chiama file di testo.
    Potresti aver bisogno di qualche tentativo, è normale non riuscirci al primo colpo.
  • Re: DA ACCESS VBA SALVARE FILE.CSV IN XLSX E AVERE DATE IN FORMATO GG/MM/AAAA

    Grazie mille proverò
    saluti
  • Re: DA ACCESS VBA SALVARE FILE.CSV IN XLSX E AVERE DATE IN FORMATO GG/MM/AAAA

    Ciao. Il problema con la data ti rimarrà comunque, anche se importi o colleghi il file csv.
    Gestisci la data impostandola come visualizzazione data breve.
  • Re: DA ACCESS VBA SALVARE FILE.CSV IN XLSX E AVERE DATE IN FORMATO GG/MM/AAAA

    Buongiorno, ho risolto il problema con l'import del file CSV con la seguente istruzione senza avere problemi di confronto tra date
    DoCmd.TransferText acImportDelim, , "tabellaimportata", filecsv, True
Devi accedere o registrarti per scrivere nel forum
8 risposte