Distribution de fichiers dans des dossiers differents VBA
Bonjour à tous, déjà un grand merci aux connaisseurs pour la qualité des soutiens.
Etant un profane en matière VBA j'ai vraiment besoin de vos connaissance.
Pour en venir a mon besoin, je cherche depuis plus d'une semaine une solution pour:
Via VBA, choisir un fichier (de type divers)dans un dossier précis, et le recopier(Coller son raccourci) dans chaque dossier selon une base de données (Adresses des dossiers/répertoires).
Structure des dossiers:
Lecteur/plusieurs dossiers région/ environ 700 dossiers bâtiments/20 répertoires (Identique à chaque bâtiments)
La base de données:
Chaque ligne d'un bâtiment contient plusieurs colonne avec les adresses sur serveur pour chaque répertoire (De 1-20)
But final:
en choisissant le fichier a copier, sélectionner le répertoire final, et le code va placer une copie dans chaque bâtiment/Répertoire
Milles mercis d'avance
Andreas
Rebonjour,
En faite, j'aimerais qu'après avoir choisi un fichier (Boite dialogue), celui-ci soit enregistré a l'adresse mentionnée dans la cellule B2
La colonne B contient les adresses de tous les dossiers cible.
Donc avec une boucle jusqu’à la ligne 700.
Merci d'avance
Re,
j'ai trouver et compilé quelque chose, mais ça ne fonctionne pas!
Sub Copier_le_fichier_vers_Index() 'Index est la colonne du 1er dossier de destination
Application.ScreenUpdating = False
Dim Donnees As Worksheet, DerniereLigne&, i&, repdest As String
Dim FileSource As String
Dim FileDest As String
Dim Fichier As Variant
FileSource = Application.GetOpenFilename("Tous les fichiers (*.*),*.*") 'c'est ici que le choix du fichier a copier doit se faire
Set Donnees = ThisWorkbook.Sheets("Base")
DerniereLigne = Donnees.Cells(Rows.Count, 112).End(xlUp).Row
For i = 2 To 3 'DerniereLigne '700 ici 3 pour test
If Dir(FileSource) <> "" Then 'vérifie que le fichier source existe
FileDest = Donnees.Range("DH" & i).Value 'DH est la colonne adresses des dossiers de destination
repdest = Left(FileDest, InStrRev(FileDest, "\") - 1)
If Dir(repdest, vbDirectory) <> "" Then 'vérifie que le répertoire de destination existe
FileCopy FileSource, FileDest
Else
MsgBox "je ne trouve pas le répertoire " & repdest
End If
Else
MsgBox " je ne trouve pas le fichier " & FileSource
End If
Next i
End SubAvec une impression de monologue...
j'ai trouvé mon bonheur :
Sub Copier_le_fichier_vers_Index() 'Index est la colonne du 1er dossier de destination
Application.ScreenUpdating = False
Dim Donnees As Worksheet, DerniereLigne&, i&, repdest As String
Dim FileSource As String
Dim FileDest As Variant
Dim Fichier As String
Dim NomFic As String
ChDir "chemin complet du dossier ou choisir le fichier"
FileSource = Application.GetOpenFilename("Tous les fichiers (*.*),*.*") 'c'est ici que le choix du fichier a copier doit se faire
NomFic = Split(FileSource, "\")(UBound(Split(FileSource, "\"))) 'copie que le nom du fichier avec extention
Set Donnees = ThisWorkbook.Sheets("Base")
DerniereLigne = Donnees.Cells(Rows.Count, 2).End(xlUp).Row
For i = 2 To 2 'DerniereLigne
FileDest = NomFic '("nom du fichier choisi")
repdest = Donnees.Range("DH" & i).Value
If Dir(repdest, vbDirectory) <> "" Then 'vérifie que le répertoire de destination existe
FileCopy FileSource, repdest & FileDest
End If
Next i
End SubMerci quand même, sans les codes déjà présents, je n'y serais jamais arrivé.
A tout bientôt
Andreas
Hello la helpline!
De retour avec un petit souci.
J'aimerais pouvoir sélectionner plusieurs fichiers en sélection
Puis dans la distribution, filtrer les lignes source par un "Oui" de la colonne "conformité"
Sub Copier_le_fichier_vers_00() 'Index est la colonne du 1er dossier de destination
Application.ScreenUpdating = False
Dim Donnees As Worksheet, DerniereLigne&, i&, repdest As String
Dim FileSource As String
Dim FileDest As Variant
Dim Fichier As String
Dim NomFic As String
ChDir "N:\32_Transfer\Mon nom\Documents pour classeurs conformité"
FileSource = Application.GetOpenFilename("Tous les fichiers (*.*),*.*") 'c'est ici que le choix du fichier a copier doit se faire
NomFic = Split(FileSource, "\")(UBound(Split(FileSource, "\"))) 'copie que le nom du fichier avec son extension
Set Donnees = ThisWorkbook.Sheets("Base")
DerniereLigne = Donnees.Cells(Rows.Count, 2).End(xlUp).Row
For i = 2 To 2 'DerniereLigne
FileDest = NomFic '("exemple de nom de fichier.pptx")
repdest = Donnees.Range("DH" & i).Value
If Dir(repdest, vbDirectory) <> "" Then 'vérifie que le répertoire de destination existe
FileCopy FileSource, repdest & FileDest
End If
Next i
End SubOu dois-je mettre quoi?
Merci d'avance
Andreas