You are here:--[RISOLTO] Confronta la data di salvataggio di due file uno CSV l'altro XLSX
[RISOLTO] Confronta la data di salvataggio di due file uno CSV l'altro XLSX 2018-11-16T17:44:06+00:00

Home Forum Domande su Excel VBA e MACRO [RISOLTO] Confronta la data di salvataggio di due file uno CSV l'altro XLSX

Tag: 

  • Autore
    Articoli
  • ste8025colste8025col
    Partecipante
      Post totali: 8
      #6778 |

      Buongiorno, ho un problema (ma va?) Ho un gestionale che mi scarica dati solo in file di tipo CSV, attraverso una procedura VBA devo aprire questo Csv che per comodità di lavoro devo salvare nel formato XLSX perché possa essere aggiornato con righe aggiunte. Ora vorrei che la procedura vada alla lettura del file CSV solo se questo ha una data di creazione più recente rispetto al file XLSX.

      Spero di essere stato chiaro e ringrazio sin d’ora per l’aiuto

      Stefano

      • Questo argomento è stato modificato 3 giorni, 12 ore fa da sid sid.

      Contabil

    • BySalvBySalv
      Amministratore del forum
        Post totali: 319

        Ciao, servono i file, togli i dati sensibili e metti dati fittizi.

        mi trovavo di passaggio ed ho visto il tuo post

        Ciao By Sal :bye:

      • ste8025colste8025col
        Partecipante
          Post totali: 8

          Ciao, ti allego i link di dropbox dei due file:

          https://www.dropbox.com/s/46ykg5l7wa2rsjh/Asso.csv?dl=0

          https://www.dropbox.com/s/j34pnimkeyblhek/NewAsso.xlsx?dl=0

          il codice che deve vedere se Asso è più nuovo di NewAsso deve essere contenuto in un gestore separato che utilizzerà i dati più recenti, trasferendo eventuali novità da Asso a NewAsso quando le date lo richiedono.

          Grazie.

          Contabil

        • Zer0KelvinZer0Kelvin
          Partecipante
            Post totali: 6

            Ciao.

            Questa function restituisce vero se il primo file è più recente del secondo.

            Se i files non sono tutti nella stessa cartella devi passaare il percorso completo dei files.

            Public Function Recente(FileA As String, FileB As String) As Boolean
            Dim Fso As Object, F1 As Object, F2 As Object
            Set Fso = CreateObject(“Scripting.FilesystemObject”)
            Set F1 = Fso.getfile(FileA)
            Set F2 = Fso.getfile(FileB)
            Recente = F1.DateLastModified > F2.DateLastModified
            Set F1 = Nothing
            Set F2 = Nothing
            Set Fso = Nothing
            End Function

          • sidsid
            Moderatore
              Post totali: 445

              Ciao zero…è un piacere rileggerti.

              ottima l’idea di sfruttare FSO e la proprietà DateLastModified

              Saluti :bye:

            • ste8025colste8025col
              Partecipante
                Post totali: 8

                mo provo ad inserire la procedura poi si faccio sapere, intanto grazie per l’aiuto

                Contabil

              • ste8025colste8025col
                Partecipante
                  Post totali: 8

                  Spiacente, ma non trovo come usare la funzione.

                  Public Function Recente(FileA As String, FileB As String) As Boolean

                  Dim Fso As Object, F1 As Object, F2 As Object

                  FileA = “G:\Calendario Chiamate\Asso.csv”

                  FileB = “G:\Calendario Chiamate\AssoNuovo.xlsx”

                  Set Fso = CreateObject(“Scripting.FilesystemObject”)

                  Set F1 = Fso.getfile(FileA)

                  Set F2 = Fso.getfile(FileB)

                  Recente = F1.DateLastModified > F2.DateLastModified

                  Set F1 = Nothing

                  Set F2 = Nothing

                  Set Fso = Nothing

                  End Function

                  io ho provato a scriverla sia all’interno del foglio che fa da apertura al lavoro (“Pannello”) sia all’nterno del Modulo1 sia il Questa_cartella_di_lavoro ma non ottengo il risultato di sapere se Asso.csv è più nuovo di AssoNuovo.Xlsx.

                  Scusatemi se potete!!

                  Contabil

                • ste8025colste8025col
                  Partecipante
                    Post totali: 8

                    Chiedo scusa ma per ottenere quello che volevo ho dovuto passare dalla <span style=”color: #707070; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 12px;”>Public Function Recente(FileA As String, FileB As String) As Boolean a questa Sub mia, devo aggiungere che bisogna attivare negli strumenti di VBA alla voce Riferimenti Microsoft </span><span style=”color: #707070; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 12px;”>Scripting Runtime fleggando il quadratino (informazione trovata su </span><span style=”color: #707070; font-family: Roboto, Arial, Helvetica, sans-serif;”><span style=”font-size: 12px;”>exceltrick.com/formulas_macros/filesystemobject-in-vba/, </span></span>

                    Domandina non è che l’attivazione di questa opzione mette a repentaglio la sicurezza del sistema?

                    grazie per tutti i consigli che vorrete aggiungere.

                    Sub mia()

                    Dim Recente

                    Dim FileA As String, FileB As String

                    Dim Fso As Object, F1 As Object, F2 As Object

                    FileA = “G:\Calendario Chiamate\Asso.csv”

                    FileB = “G:\Calendario Chiamate\NewAsso.Xlsx”

                    Set Fso = CreateObject(“Scripting.FilesystemObject”)

                    Set F1 = Fso.getfile(FileA)

                    Set F2 = Fso.getfile(FileB)

                    Recente = F1.DateLastModified > F2.DateLastModified

                    Set F1 = Nothing

                    Set F2 = Nothing

                    Set Fso = Nothing

                     

                    If Recente = False Then

                    MsgBox ” Recente è FALSO”

                    End If

                    If Recente = True Then

                    MsgBox ” Recente è VERO”

                    End If

                    End Sub

                    Contabil

                  • sidsid
                    Moderatore
                      Post totali: 445

                      ..devo aggiungere che bisogna attivare negli strumenti di VBA alla voce Riferimenti Microsoft Scripting Runtime fleggando il …..

                      Non devi attivare nulla visto che si usa CreateObject

                    • ste8025colste8025col
                      Partecipante
                        Post totali: 8

                        Caro Sid ho visto che se l’opzione <span style=”background-color: #f2f2f2; color: #707070; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 15px; font-style: italic;”>Microsoft Scripting Runtime  </span><span style=”background-color: #f2f2f2; color: #707070; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 15px;”>non è fleggata il tutto funge  non capisco come mai prima pero non funzionava (ovvero ho attivato il flag e ho visto il funzionamento, dopo di che su tua segnalazione l’ho tolto r tutto a continuato a funzionare).</span>

                        Adesso mi manca di dire [RISOLTO] ma non mi riesce (sono così imbranato?) Si.

                        Grazie dell’aiuto se sappi che ho un altro problema cha apro in altro post….

                        Contabil

                      • ste8025colste8025col
                        Partecipante
                          Post totali: 8

                          [RISOLTO]  :bye:

                          Contabil

                        La discussione ‘[RISOLTO] Confronta la data di salvataggio di due file uno CSV l'altro XLSX’ è chiusa a nuove risposte.

                        Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

                        Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

                        Chiudi