Excel Forum Per condividere esperienze su Microsoft Excel

[RISOLTO] Carrica da file csv a file Excel sbaglia formato date

  • Messaggi
  • OFFLINE
    maurizio.ma
    Post: 4
    Registrato il: 18/12/2019
    Età: 72
    Utente Junior
    Excel 2019
    00 08/06/2022 15:04
    Devo caricare, tramite una Macro, un file csv in un foglio di un file excel, nel file sono presenti 2 date per record

    Nel file csv le date hanno formato GGMMAAAA.

    Alcuni records vengono caricati correttamene altri, senza una regole apparente, vengono caricati MMGGAAAA.

    Nel file Excel allegato le date NON corrette sono evidenziate in giallo

    Ho provato diverse strade ma senza risultato, confido nella Vs perizia.
    Allego il file csv e il file Excel. ( Macro Carica = Crtl+C)
    Ho Excel 2019

    Cordiali saluti e un ringraziamento in anticipo.
    Maurizio Marucchi
    [Modificato da by sal 08/06/2022 17:16]
  • OFFLINE
    L2018
    Post: 278
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Junior
    EXCEL 2016 - SPREAD32
    00 08/06/2022 15:23
    manca il file con macro

    LEO
    https://t.me/LordBrum
  • OFFLINE
    maurizio.ma
    Post: 4
    Registrato il: 18/12/2019
    Età: 72
    Utente Junior
    Excel 2019
    00 08/06/2022 15:38
    L'ho allegato ma non è stato caricato.

    Ho riprovato, lo seleziono ma quando premo il pulsante Upload, non lo carica nonostante l'abbia zippato.

  • OFFLINE
    L2018
    Post: 279
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Junior
    EXCEL 2016 - SPREAD32
    00 08/06/2022 15:42
    quanto è grande di suo ? e zippato ?
    se piu di 3 mega puoi usare https://wetransfer.com
    [Modificato da L2018 08/06/2022 15:46]

    LEO
    https://t.me/LordBrum
  • OFFLINE
    maurizio.ma
    Post: 5
    Registrato il: 18/12/2019
    Età: 72
    Utente Junior
    Excel 2019
    00 08/06/2022 15:43
    Macro
    Sub Carica()
    '
    ' Carica Macro
    '
    ' Scelta rapida da tastiera: CTRL+c
    '

    '   Azzera foglio Movimanti
        Worksheets("Movimenti").Select
        Selection.ClearContents

    '
        Call SelezionaFile(NomeFile, FlagErrore)
        If FlagErrore = True Then
            MsgBox " Non è stato scelto il file, ripetere"
            GoTo Fine
        End If
       
        Worksheets("Movimenti").Select
        Open NomeFile For Input As #1
        
        Riga = 1
        
        Do Until EOF(1)
            Line Input #1, Linea
            Matrice = Split(Linea, ";")
            Col = UBound(Matrice) - LBound(Matrice) + 1
            For I = 1 To Col
                Cells(Riga, I) = Matrice(I - 1)
            Next I
            Riga = Riga + 1
        Loop
        
        Close #1
        
    Fine:
    End Sub

    Sub SelezionaFile(NomeFile, FlagErrore)
        
        FlagErrore = False
        
        With Application.FileDialog(msoFileDialogOpen)
            .AllowMultiSelect = False
            .Filters.Clear
            .InitialView = msoFileDialogViewList
            .Title = "Scelta File"
            .ButtonName = "OK Vai!"
            .Show
            
            NomeFile = .SelectedItems(1)
            
            If .SelectedItems.Count = 0 Then FlagErrore = True
            
        End With
       
    End Sub
  • OFFLINE
    maurizio.ma
    Post: 6
    Registrato il: 18/12/2019
    Età: 72
    Utente Junior
    Excel 2019
    00 08/06/2022 15:47
    file excel
    Dim Originale 60 Kb, zippato 58 Kb
  • OFFLINE
    L2018
    Post: 280
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Junior
    EXCEL 2016 - SPREAD32
    00 08/06/2022 15:48
    non so aiutarti nel merito, cercavo solo di far risparmiare tempo a te e a chi ti aiuterà
    il file completo è meglio sia pure senza dati sensibili

    LEO
    https://t.me/LordBrum
  • OFFLINE
    L2018
    Post: 281
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Junior
    EXCEL 2016 - SPREAD32
    00 08/06/2022 15:49
    Re: file excel
    maurizio.ma, 08/06/2022 15:47:

    Dim Originale 60 Kb, zippato 58 Kb



    è piccolo, e allora devi fare piu attenzione nel caricarlo
    carica senza zipparlo ma con piu calma e attenzione
    [Modificato da L2018 08/06/2022 15:51]

    LEO
    https://t.me/LordBrum
  • OFFLINE
    maurizio.ma
    Post: 7
    Registrato il: 18/12/2019
    Età: 72
    Utente Junior
    Excel 2019
    00 08/06/2022 15:56
    Più che selezionarlo e cliccare sul pulsante Upload non faccio.
  • OFFLINE
    L2018
    Post: 282
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Junior
    EXCEL 2016 - SPREAD32
    00 08/06/2022 16:08
    ho caricato io a mano il csv nel file, dove però c'è anche la macro
    se ti serve altro devi aspettare chi sa manomettere la macro
    ma io non vedo errori di date, a occhio mi sembrano tutte GG MM AAAA
    forse nel file che ti ho dato devi reinserire la TUA macro perchè io ho cambiato inutilmente il il nome da Movimenti a Foglio1
    sì, adesso sono riuscito a farla funzionare ed in effetti ho visto l'errore che dichiari, dobbiamo aspettare l'esperto


    LEO
    [Modificato da L2018 08/06/2022 16:19]

    LEO
    https://t.me/LordBrum
  • OFFLINE
    maurizio.ma
    Post: 8
    Registrato il: 18/12/2019
    Età: 72
    Utente Junior
    Excel 2019
    00 08/06/2022 16:28
    File caricato!!
    Per poterlo caricare ho rinominato il file Prova.ZIP in Prova.xls

    Sappiate cha si tratta di un .ZIP rinominato
    Scusate ma era l'unico modo per farlo digerire al programma
  • OFFLINE
    maurizio.ma
    Post: 9
    Registrato il: 18/12/2019
    Età: 72
    Utente Junior
    Excel 2019
    00 08/06/2022 16:31
    Re:
    L2018, 08/06/2022 16:08:

    ho caricato io a mano il csv nel file, dove però c'è anche la macro
    se ti serve altro devi aspettare chi sa manomettere la macro
    ma io non vedo errori di date, a occhio mi sembrano tutte GG MM AAAA
    forse nel file che ti ho dato devi reinserire la TUA macro perchè io ho cambiato inutilmente il il nome da Movimenti a Foglio1
    sì, adesso sono riuscito a farla funzionare ed in effetti ho visto l'errore che dichiari, dobbiamo aspettare l'esperto


    LEO




    Grazie comunque Leo
  • OFFLINE
    L2018
    Post: 283
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Junior
    EXCEL 2016 - SPREAD32
    00 08/06/2022 17:09
    intanto forse si farebbe prima a correggere le date sbagliate nel CSV, altrimenti poi si crea la necessità di interpretarle e riformattarle
    esempio da 23/8/2021 a 23/08/2021

    ma ho notato ANCHE che se da EXCEL io faccio il prelievo di un generico CSV senza usare macro, il tuo CSV viene caricato correggendo automaticamente gli errori di data.

    Quindi la domanda:

    La macro serve SOLO per caricare il CSV ?

    Leo
    [Modificato da L2018 08/06/2022 17:17]

    LEO
    https://t.me/LordBrum
  • ONLINE
    by sal
    Post: 6.832
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 08/06/2022 17:12
    Ciao, Maurizio, sto dando un occhiata al file, perche usi una macro per caricare il file CSV.

    non puoi fare importa csv nel menu dati, io l'ho fatto e le date sono giuste, ecco un immagine



    elimino anche il tuo file csv perche credo che ci siano dati sensibili, ATTENZIONE!!!! ed inserire file

    ora do uno sguardo alla macro

    Ciao By Sal (8-D

    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • OFFLINE
    maurizio.ma
    Post: 10
    Registrato il: 18/12/2019
    Età: 72
    Utente Junior
    Excel 2019
    00 08/06/2022 17:16
    In effetti si tratta del prezzo dei caricamento di un foglio excel molto più complesso.

    Ho riportato solo la macro di caricamento perché sbaglia.

    Quanto ai dati sono solo nomi e cognomi nulla di sensibile, comunque grazie
  • ONLINE
    by sal
    Post: 6.833
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 08/06/2022 17:26
    Ciao Maurizio io invece ho visto coordinate bancarie, fose sbaglio

    anche se il file è più complesso puoi farlo con Power query, puoi importare e modificare quello che vuoi, ho visto che hai Excel2019 e puoi farlo tranquillamente.

    anche il'importo sembra corretto, non l'ho modificato per mettere i decimali ma sembrano giusti



    cosa è che non ti trovi?

    adesso importo il file con la macro e vedo la differenza

    Ciao By Sal (8-D
    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • OFFLINE
    maurizio.ma
    Post: 11
    Registrato il: 18/12/2019
    Età: 72
    Utente Junior
    Excel 2019
    00 08/06/2022 17:51
    Si tratta di un file da dare ai cassieri di un Gas ( gruppo di acquisto Solidale ), che non hanno excel recenti, per gestire la contabilità in modo più agevole e "automatizzato".

    PS Quello che può sembrare una coordinata bancaria in effetti si tratta del numero di versamento.

    Grazie
  • ONLINE
    by sal
    Post: 6.834
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 08/06/2022 17:57
    Ciao ti sto modificando la macro, in quanto alcune date le inserisce come testo ed altre come date, ed anche L'importo è la stessa cosa.

    quando si carica un file CSV di norma tutti i dati all'interno vengono considerati testo, dipende anche dal gestionale che crea il file CSV, e quindi quanto si caricano i dati i dati non sono formattati nel modo giusto ed Excel non li riconosce o meglio li considera testo, e quindi se si devono fare calcoli o ricerche non funzionano.

    Ciao a breve ti inserisco la macro giusta per fare le prove. By Sal (8-D


    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • ONLINE
    by sal
    Post: 6.835
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 08/06/2022 18:18
    Ciao Maurizio ecco la macro modificata, dovresti dichiarare le variabili, io ne ho aggiunta 1 per la conversione, più facile da usare al posto dell'indice matrice.

    eccola

    Sub Carica()
    '
    ' Carica Macro
    '
    ' Scelta rapida da tastiera: CTRL+c
    '
    
    '   Azzera foglio Movimanti
        Worksheets("Movimenti").Select
        Cells.ClearContents
    
    '
        Call SelezionaFile(NomeFile, FlagErrore)
        If FlagErrore = True Then
            MsgBox " Non è stato scelto il file, ripetere"
            GoTo Fine
        End If
       
        Worksheets("Movimenti").Select
        Open NomeFile For Input As #1
        
        Riga = 1
        
        Do Until EOF(1)
            Line Input #1, Linea
            Matrice = Split(Linea, ";")
            Col = UBound(Matrice) - LBound(Matrice) + 1
            For I = 1 To Col
              d = Matrice(I - 1)
              If I = 1 Or I = 2 Then
                If IsDate(d) Then Cells(Riga, I) = CDate(d) Else Cells(Riga, I) = d
              ElseIf I = 5 And IsNumeric(d) Then
                Cells(Riga, I) = CDbl(d)
              Else
                Cells(Riga, I) = Matrice(I - 1)
              End If
            Next I
            Riga = Riga + 1
        Loop
        
        Close #1
        
    Fine:
    End Sub


    in effetti prende il valore della matrice corrispondente alla data oppure all'importo e li converte in data o numero

    Fai sapere, Ciao By Sal (8-D
    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • OFFLINE
    maurizio.ma
    Post: 12
    Registrato il: 18/12/2019
    Età: 72
    Utente Junior
    Excel 2019
    00 08/06/2022 18:56
    RISOLTO !
    Sal, la soluzione che mai hai propostoo FUNZIONA alla grande!!!

    Un grande ringraziamento.
    Maurizio
  • OFFLINE
    maurizio.ma
    Post: 13
    Registrato il: 18/12/2019
    Età: 72
    Utente Junior
    Excel 2019
    00 08/06/2022 19:00
    Come faccio a mettere il tag RISOLTO nel titolo?