Excel e gli applicativi Microsoft Office Spostare file da cartella a sottocartella se non esistono

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

    thunder
    Partecipante

      Ciao,

      di seguito il mio quesito:

      Ho una cartella "madre" dove sono contenuti un insieme di file ed un'altra cartella "figlio", che rappresenta un sottoinsieme della precedente.

      Vorrei che, nel caso in cui nella cartella figlio non risultino presenti alcuni file della cartella madre, venissero copiati da quest'ultima ed incollati nella cartella figlio

      Per fare un esempio:

      La cartella madre contiene i file: mele.txt, pere.txt, banane.txt, lamponi.txt, fragole.txt

      La cartella figlio contiene i file:mele.txt, pere.txt

      La macro a questo punto copia i file dalla cartella madre banane.txt, lamponi.txt, fragol.txt e li incolla nella cartella figlio

      Ho usato le estensioni .txt solo come esempio. Non dovrebbe essere necessario un esempio perchè sono solo file dentro cartelle

      Grazie in anticipo per l'aiuto

      #5757 Score: 2 | Risposta

      patel
      Moderatore
        51 pts

        prova questa

        Sub OpenFilesSubFolder()
        Dim destFolderName As String
        sourceFolderName = "F:\download\A"
        destFolderName = "F:\download\A\B\"
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set Folder = objFSO.GetFolder(sourceFolderName)
        For Each File In Folder.Files
        If Dir(destFolderName & File.Name) = "" Then FileCopy Folder.Path & "\" & File.Name, destFolderName & File.Name
        Next
        MsgBox ("fatto")
        End Sub

        #5758 Score: 2 | Risposta

        albatros54
        Moderatore
          89 pts

          oltre a quella postata da Patel, che saluto, puoi provere questa

          Sub copy_data1()
              Dim f As Object, wbk1 As Workbook, a As Object
              Application.ScreenUpdating = False
              Set wbk1 = ThisWorkbook
              cartella = ThisWorkbook.Path & "\madre\"
              filefogli1 = ThisWorkbook.Path & "\madre\figlio"
              For Each f In CreateObject("Scripting.FileSystemObject").GetFolder(cartella).Files
                  For Each a In CreateObject("Scripting.FileSystemObject").GetFolder(filefogli1).Files
                      If f.Name <> a.Name Then
                          f.Copy filefogli1 & "\"
                      End If
                  Next
              Next
              Application.ScreenUpdating = True
          End Sub

           

          #5759 Score: 0 | Risposta

          thunder
          Partecipante

            grazie ad entrambi per le risposte.

            @patel l'ho testata e funziona perfettamente.

            @albatros54 ho sostituito i nomi delle cartelle ma poi  da "errore di sintassi" presso 

            If f.Name <> a.Name Then
          Login Registrati
          Stai vedendo 4 articoli - dal 1 a 4 (di 4 totali)
          Rispondi a: Spostare file da cartella a sottocartella se non esistono
          Gli allegati sono permessi solo ad utenti REGISTRATI
          Le tue informazioni: