You are here:Home-Domande su Excel VBA e MACRO-[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 XLSX2018-11-16T17:44:06+01:00

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

Taggato: 

Visualizzazione 10 filoni di risposte
  • Autore
    Post
    • ste8025colste8025col
      Partecipante
        Post totali: 10

        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 topic è stato modificato 1 anno, 7 mesi fa da sidsid.

        Contabil

      • BySalvBySalv
        Amministratore del forum
          Post totali: 720

          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:

          Ciao By Sal (8-)
          se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

        • ste8025colste8025col
          Partecipante
            Post totali: 10

            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: 7

              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: 749

                Ciao zero…è un piacere rileggerti.

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

                Saluti :bye:

              • ste8025colste8025col
                Partecipante
                  Post totali: 10

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

                  Contabil

                • ste8025colste8025col
                  Partecipante
                    Post totali: 10

                    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: 10

                      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: 749

                        ..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: 10

                          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: 10

                            [RISOLTO]  :bye:

                            Contabil

                        Visualizzazione 10 filoni di risposte
                        • Il topic ‘[RISOLTO] Confronta la data di salvataggio di due file uno CSV l'altro XLSX’ è chiuso a nuove risposte.