XL 2016 copier des fichiers dans des sous dossiers a partir de case a cocher sous excel

Felipe54

XLDnaute Nouveau
Bonjour a toutes les bonnes ames qui voudront bien m'aider:

j'ai des centaines de fichiers PDF a classer dans 600 dossiers (lesquels contiennent 9 sous dossiers); un fichier peut etre copié dans plusieurs sous dossiers.
Je voudrai, a partir d'un tableau excel, copier une selection de fichiers en cochant des cases. (afin de ne pas passer des semaines a faire ca a la main et afin d'eviter les erreurs)

Je suis en phase de test mais rien ne fonctionne....
en colonne, j'ai le nom (pas le chemin) des dossiers destinataires principaux (dans lesquels j'ai 9 sous dossiers, mais pour l'instant je n'en suis pas encore a trier dans les sous dossiers)
et en ligne, le nom des fichiers sources a copier dans les differents dossiers destination.

les chatGPT et autres logiciels me proposent ca:

CopyFilesBasedOnTicks()
Dim srcFolder As String
Dim destFolder As String
Dim sourceFile As String
Dim destPath As String
Dim tickRange As Range
Dim cell As Range

' Set the source folder path
srcFolder = "C:\Source"

' Set the destination parent folder path
destFolder = "C:\destination\"

' Set the range of cells containing ticks (source files in rows, destination folders in columns)
Set tickRange = ThisWorkbook.Worksheets("Feuil5").Range("B2:p12")

' Loop through each cell in the tick range
For Each cell In tickRange
' Check if the cell contains a tick
If cell.Value = True Then
' Get the source file path
sourceFile = srcFolder & "\" & cell.Offset(0, -1).Value

' Get the destination folder path
destPath = destFolder & cell.Offset(-1, 0).Value & "\" & cell.Value

' Create the destination folder if it doesn't exist
If Dir(destPath, vbDirectory) = "" Then
MkDir destPath
End If

' Copy the file to the destination folder
FileCopy sourceFile, destPath & "\" & cell.Offset(0, -1).Value
End If
Next cell

MsgBox "Files copied successfully!"
End Sub

est ce que je suis sur la bonne voie?

merci pour votre aide
JP
 

Felipe54

XLDnaute Nouveau
Re
Une solution à partir d'une sélection.
Tu sélectionnes les fichiers colonnes a et tu lance la macro deb.
variable dest et source à initialiser en constantes dans la macro
A suivre

Bonjour Sousou,

j'en reviens a ton dernier fichier test(5) pour ventiler les fichiers dans des dossiers. Qu'est ce que je dois faire si je veux ventiler dans des sous dossiers?

Sachant que chaque sous dossiers contiennent tous 4 dossiers identiques (SB, SL,SSL, VSP).
Je pensais les dispatcher a la main mais la encore, comme j'ai des centaines de dossiers, ca devient vite penible.
Le probleme en faisant comme ca, c'est que ca va me multiplier les colonnes par 4....
L'ideal serait d'avoir un bouton en premiere colonne pour aiguiller chaque ligne vers un chemin de sous dossier, pour effectuer un second tri. ou detecter dans le nom du fichier le SB, pour l'envoyer vers le dossier SB, le SL vers le dossier SL etc...

Autre chose, comme je passe mon temps a faire des mises aj our, ca serait super si en decochant la case ca pouvait supprimer le fichier du dossier

C'est faisable?

Pour bien faire il faudrait que je puisse moduler ca en fonction des sous dossiers pour d'autres tris
si je peux te joindre dis moi par quel moyen

merci
 
Dernière édition:

Felipe54

XLDnaute Nouveau
Bonjour Sousou,

Une autre question qui me vient naturellement tellement ce systeme me rend bien service......
est ce qu'il serait possible de faire un script inverse? : qui regarde dans les dossiers et sous dossiers et qui coche les cases dans le tableau

mes dossiers de classement ont 3 niveaux : C:\1\2\3 et les fichiers sont classés dans des sous dossiers dans 3 (3A, 3B, 3C, 3D, 3E, 3F, 3G, 3H, 3I)

De sorte que je puisse reprendre le premier script pour faire les mise a jour sans tout reprendre pour l'existant.

Il faudrait lister tous les fichiers dans C:\1\2 pour les mettre en ligne
lister tous les dossiers dans C:\1\2\3 et les mettre en colonne
et faire en sorte que ca coche tout seul dans la bonne colonne en face du bon fichier

je commence a me debrouiller avec l'aide de chatgpt mais il y a toujours un truc qui plante....

si tu as un mail on s'arrange

merci
jp
 

Discussions similaires

Réponses
1
Affichages
167

Statistiques des forums

Discussions
312 209
Messages
2 086 266
Membres
103 167
dernier inscrit
miriame