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
 

sousou

XLDnaute Barbatruc
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
 

Pièces jointes

  • test(5).xlsm
    22.3 KB · Affichages: 13

Felipe54

XLDnaute Nouveau
Bonjour sousou et merci pour ton temps consacré a mon probleme.


la premiere solution marche nickel et je te remercie beaucoup pour ton aide.....

je peste de ne pas avoir le temps de me pencher serieusement la dessus car j'ai souvent des taches de ce style a faire.....
en dernier je cherchais un logiciel pour mettre a jour des fichiers portant tous le meme nom mais disséminés un peu partout dans des dizaines de dossiers, par un fichier plus recent mis a jour.... (dans le style d'un remplacer par sous word) et bien ca n'existe pas !

obligé de passer par un script shell avec 3 copier-collés du nom du fichier a chaque fois... (si tu as une solution excel je suis preneur., hehe....)

je teste ton dernier fichier et je te dis ca.

encore merci
 

Felipe54

XLDnaute Nouveau
Ca doit être faisable avec filesyteme mais il faudrait plus d'infos,
Ca dépens de ce que tu connais de la position des fichiers
Une recherche récursive à partir d'un dossier chapeau, et remplacement du fichier avec le nouveau
Pour trouver les fichiers je fais une recherche dans everything (un logiciel de recherche de fichier), je selectionne tous les fichiers a modifier et je fais clic droit , ouvrir les emplacements, et control + V pour tout recopier a la main.... ou bien mon fichier .bat mais c'est pas l'ideal non plus.
 

Felipe54

XLDnaute Nouveau
Pour trouver les fichiers je fais une recherche dans everything (un logiciel de recherche de fichier), je selectionne tous les fichiers a modifier et je fais clic droit , ouvrir les emplacements, et control + V pour tout recopier a la main.... ou bien mon fichier .bat mais c'est pas l'ideal non plus.
Tu peux developper la solution filesysteme (explorateur de fichier de windows ou un autre logiciel?
ton fichier test(5) marche super mille merci
 

sousou

XLDnaute Barbatruc
Bonjour
J'étais absent.
Reprenons.
Ou recherches-tu tes fichiers, quelle est le dossiers chapeau, (un peu partout..) peux-tu être plus précis, afin que l'on puisse les retrouver ces anciens fichiers
je regarde
 
Dernière édition:

sousou

XLDnaute Barbatruc
Re
Voici un code extrait d'un code que j'avais fait pour faire de la sauvegarde.
Utilisation de treeview
Choisir le fichier qui doit remplacer les anciens
Naviguer dans le userform pour choisir le dossier chapeau ou trouver les fichiers
Cocher ce dossier et lancer le remplcement.
Attention les fichiers sont effacés, mais si tu souhaites les concervé pas de problème une petite modif à apporter pour les sauvegarder dans un dossier nommé macorbeille
Ne pas oublier d'initialiser le chemin de base dans la variable chemin..
A voir et à fignoler, car j'ai repris de bout de code
 

Pièces jointes

  • Miseàjourfichier.xlsm
    44.2 KB · Affichages: 9

Discussions similaires

Réponses
9
Affichages
139
Réponses
1
Affichages
250

Statistiques des forums

Discussions
313 201
Messages
2 096 177
Membres
106 516
dernier inscrit
Pagny