Macro per spostare ...
 
Notifiche
Cancella tutti

La consultazione del forum è libera per tutti.

Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).

Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.

[Risolto] Macro per spostare file in cartelle che hanno lo stesso nome del file

6 Post
3 Utenti
0 Reactions
2,697 Visualizzazioni
Forum 1
(@alida253)
Post: 0
New Member
Avviatore di Topic
 

Salve a tutti!

Sto cercando di creare una macro che sposti una serie di file (doc oppure xls) che sono nominati in un certo modo (un codice, per intenderci) in una serie cartelle (sono più di 400) che abbiano lo stesso nome del file. Ogni cartella deve contenere SOLO il file che intendo spostare. 

Ho creato, nei giorni precedenti, una macro in grado di copiare un file da una cartella ad un'altra ma chiaramente non basta per raggiungere il mio obiettivo.

Nel file di esempio allego il codice che ho utilizzato.

Dal momento che è mia intenzione imparare il più possibile, vorrei sapere che metodi posso utilizzare per arrivare al risultato. Purtroppo, anche cercando in giro, non ho trovato risposte alla mia domanda.

Ringrazio in anticipo chiunque potrà darmi una mano su questo forum!

 

Versione di Excel
Sistema operativo
 
Postato : 15/08/2021 18:26
Etichette discussione
Marius44
(@marius44)
Post: 0
Moderatore
 

Ciao e buon Ferragosto

 

Hai dimenticato di allegare il file ?

 

Ciao,

Mario 

 
Postato : 15/08/2021 18:50
Forum 1
(@alida253)
Post: 0
New Member
Avviatore di Topic
 

Ciao e buon ferragosto anche a te!

Scusa, ero convintissima di averlo allegato, ma non è stato così!

 
Postato : 15/08/2021 20:45
Forum 1
(@alida253)
Post: 0
New Member
Avviatore di Topic
 

Ne approfitto per spiegare la mia idea di base: creare un ciclo for each con condizione tipo "if nomefile=nome cartella then copy file". Il punto è: come dichiarare queste due variabili? 

 
Postato : 15/08/2021 21:06
emme
 emme
(@emme)
Post: 0
Moderatore
 

Non ho sviluppato la soluzione diretta ma:
1) per spostare il file nella cartella corrispondente al nome del file stesso devi conoscere il nome del file in esame
2) quindi la routine dovrebbe leggere sistematicamente (For Each ...Next) i nomi di tutti i file presenti nella cartella Cartella1 *
3) costruire un elenco temporaneo dei nomi dei file (in Collection o in Array/matrice, io farei così**)
4) a questo punto leggere l'elenco e creare la nuova cartella con stesso nome del file (nome cartella = nome file. La cartella non dovrebbe esistere essendo collegata al nome del file
5) ora copiare il file in esame da Cartel1 alla nuova cartella
6) cancellare il file dalla cartella originale (o da fare manualmente dopo aver controllato l'esito della routine)
7) cancellare elenco nomi file e fine routine(**).
_________________________________________________

* Questa è una routine che avevo sviluppato anni fa:

Sub FileInFolder()
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Users\alida\Desktop\Cartella1\")
Dim F As Integer
Dim TempArr()

For Each objFile In objFolder.Files
F = F + 1
TempArr(F) = objFile.Name & "\"
Next objFile
End Sub

_________________________________________________

** si può anche evitare: lettura nome file, costruzione cartella, spostamento file. Non ho provato...
_________________________________________________

I metodi di FSO:
FileExists - Verifica se il file specificato esiste
CreateTextFile - Utilizzare per creare un nuovo file di testo vuoto
OpenTextFile - Viene usato per accedere ad un file gia' esistente
DeleteFile - Utilizzare per cancellare un file sul disco
FolderExists - Verifica se la directory/cartella specificata esiste
CreateFolder - Utilizzare per creare una nuova directory/cartella su disco
DeleteFolder - Cancella una directory esistente dal disco
GetFolder  Rende 'attiva' la directory specificata
GetFile - Rende 'attivo' il file specificato
CopyFile - Crea una copia del file indicato
GetAbsolutePath - Ritorna il percorso 'assoluto' (C:\percorso\...)
GetTempName - Costruisce il nome di un file 'temporaneo'

 
Postato : 16/08/2021 15:40
emme
 emme
(@emme)
Post: 0
Moderatore
 

Sarebbe interessante sapere se e come è stato risolto. E nel caso segnalare il post come "risolto". Grazie.

 
Postato : 09/09/2021 10:13
Condividi:
My Agile Privacy
Questo sito utilizza cookie tecnici e di profilazione. Cliccando su accetta si autorizzano tutti i cookie di profilazione. Cliccando su rifiuta o la X si rifiutano tutti i cookie di profilazione. Cliccando su personalizza è possibile selezionare quali cookie di profilazione attivare.
Attenzione: alcune funzionalità di questa pagina potrebbero essere bloccate a seguito delle tue scelte privacy
     Scarica il nostro ebook gratuito     

Unisciti a oltre 35.000 professionisti
che hanno già scelto di semplificare il proprio lavoro
e aumentare la produttività con la nostra newsletter!

Scarica l’ebook con i
migliori trucchi e suggerimenti per Excel
selezionati per te da Excel Academy

Download