Excel e gli applicativi Microsoft Office Spostare cartelle con VBA

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

    chr68
       
      #3175 Score: 0 | Risposta

      chr68
      Partecipante

        Salve ho un problema che non riesco a risolvere, in quanto sono alle primissime armi nel linguaggio di programmazione VBA per excel.

        Ho delle cartelle sotto la dir “C:\TestDir1” che devo spostare come sottocartelle nella dir “C:\TestDir2” abbinandole come riassunto in un foglio excel.
        Ho provato ad abbozzare le istruzioni ma sono evidentemente sbagliate perché mi segnala un errore.

        Potete correggermi dove sto sbagliando per cortesia?

        Allego il file di excel contenente la macro da me creata che riporto di seguito ma che so già che non funziona….

        Sub SpostaF()

        Dim rng As Range

        Dim cel As Range

        Dim avv As Range

        Set rng = Range(“g2:g4”)

        Set avv = Range(“f2:f4”)

        For Each cel In rng

        Perc = “C:\TestDir1\” & rng.Value

        NewPerc = “C:\TestDir2\ “””

        NFile = ” & rng.Value “

        Name Perc & NFile As NewPerc & NFile

        Next cel

        End Sub

         

        Grazie sin d’ora

        Chr68
        Allegati:
        You must be logged in to view attached files.
        #3185 Score: 0 | Risposta

        patel
        Moderatore
          51 pts
          Non è chiaro quello che vuoi fare, l'errore principale sta nella riga
          Perc = “C:\TestDir1\” & rng.Value
          un range non ha un value ma molti, dovevi scrivere
          Perc = “C:\TestDir1\” & cel
          per evitare di fare errori visualizza i risultati delle tue elaborazioni in questo modo:
          Sub SpostaF()
          Set rng = Range("g2:g4")
          riga = 1
          Perc = "C:\TestDir1\"
          NewPerc = "C:\TestDir2\"
          For Each cel In rng
            Cells(riga, "H") = Perc & cel
            Cells(riga, "I") = NewPerc & cel.Offset(0, -1)
            riga = riga + 1
          'Name Perc & cel As NewPerc & cel.Offset(0, -1)
          Next cel
          End Sub
          se i nomi sono corretti togli le righe inutili.
          #3188 Score: 0 | Risposta

          chr68
          Partecipante
            Grazie per l'interessamento.
            Scusate se non riesco ad essere chiaro: provo a spiegarmi meglio...
            Nella cartella "C:\TestDir1" ho alcune cartelle: "Cane", "Uomo", "Volpe".
            Nella cartella "C:\TestDir2" ho altre cartelle: "Cuccia", "Casa", "Tana".
            Desidererei spostare la cartella "Cane" all'interno della cartella "Cuccia"; la cartella "Uomo" all'interno della cartella "Casa"; la cartella "Volpe" all'interno della cartella "Tana".
            In altre parole, il risultato finale sarà:
            "C:\TestDir2\Cuccia\Cane"
            "C:\TestDir2\Casa\Uomo"
            "C:\TestDir2\Tana\Volpe"
            Cosa spostare e dove spostarlo sono riepilogati nel file Excel; quindi nella colonna G troviamo quello che desidero spostare nella cartella indicata, nella medesima riga, nella corrispondente colonna F....
            Spero ora possa essere più comprensibile
            Grazie ancora
            Chr68
            #3190 Score: 0 | Risposta

            patel
            Moderatore
              51 pts
              Sub SpostaF()
              Set rng = Range("g2:g4")
              Perc = "C:\TestDir1\"
              NewPerc = "C:\TestDir2\"
              For Each cel In rng
                Name Perc & cel As NewPerc & cel.Offset(0, -1) & "\" & cel
              Next cel
              End Sub

              #3193 Score: 0 | Risposta

              chr68
              Partecipante
                FUNZIONA!!!!
                Perfetto, grazie mille!!
                A presto
              Login Registrati
              Stai vedendo 6 articoli - dal 1 a 6 (di 6 totali)
              Rispondi a: Spostare cartelle con VBA
              Gli allegati sono permessi solo ad utenti REGISTRATI
              Le tue informazioni: