Choisir un lecteur ou repertoire/sous repertoire source variable
pouloucarine
Messages postés8Date d'inscriptionvendredi 13 février 2015StatutMembreDernière intervention26 novembre 2015
-
Modifié par jordane45 le 13/02/2015 à 09:12
jordane45
Messages postés37739Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 4 octobre 2023
-
13 févr. 2015 à 19:06
Bonjour,
j'ai une macro excel qui me permet de rechercher puis copier et coller dans un autre répértoire des fichiers *.jpg à partir d'une liste dans excel.
Malheureusement, j'ai en dur le répertoire source (qui dans mon cas est un lecteur réseau), mais je souhaiterai pouvoir en vrai choisir (par boite de dialogue explorer windows) soit un lecteur réseau, soit un répertoire avec lecture dans tous les sous-répertoires de ce répertoire. Je tourne un peu en rond. Pourriez vous m'adier.
Ci dessous la macro :
Sub dupliean()
Dim P As Range, DosSource$, DosDestin$, ext$, c As Range, DernLigne As Long
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
Set P = Range("A1:A" & DernLigne) 'plage avec les noms des fichiers (sans extension)
DosSource = "Z:\" 'à adapter
DosDestin = "D:\Test\" 'à adapter
ext = ".jpg"
Application.DisplayAlerts = False
On Error Resume Next
MkDir DosDestin 'crée le dossier s'il n'existe pas
For Each c In P
FileCopy DosSource & c & ext, DosDestin & c & ext
c(1, 2) = IIf(Dir(DosDestin & c & ext) = "", "", "OK")
Next
MsgBox Application.CountA(P.Offset(, 1)) & " fichiers copiés"
End Sub
Merci de votre aide
Cordialement
pouloucarine
EDIT : Ajout des balises de code
A voir également:
Choisir un lecteur ou repertoire/sous repertoire source variable
jordane45
Messages postés37739Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 4 octobre 2023342 13 févr. 2015 à 09:17
Bonjour,
Un truc du genre peut être..
Function GetFolder(strPath As String) As String
Dim fldr As FileDialog
Dim sItem As String
Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
With fldr
.Title = "Select a Folder"
.AllowMultiSelect = False
.InitialFileName = strPath
If .Show <> -1 Then GoTo NextCode
sItem = .SelectedItems(1)
End With
NextCode:
GetFolder = sItem
Set fldr = Nothing
End Function
pouloucarine
Messages postés8Date d'inscriptionvendredi 13 février 2015StatutMembreDernière intervention26 novembre 2015 13 févr. 2015 à 10:08
bonjour,
merci pour cette réponse, mais j'avoue que je n'arrive pas à l'insérer dans mon code.
Ou dois je mettre cette fonction? j'ai l'impression que même si je sélectionne avec la boite de dialogue un autre répertoire, la macro reste bloqué sur une recherche dans z:\ et reviens dans d:\test ?
Cordialement
pouloucarine
jordane45
Messages postés37739Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 4 octobre 2023342
>
pouloucarine
Messages postés8Date d'inscriptionvendredi 13 février 2015StatutMembreDernière intervention26 novembre 2015 13 févr. 2015 à 10:24
Tu places la fonction dans un module.
Si tu n'y arrives pas ... montres nous ton code modifié qu'on le regarde
pouloucarine
Messages postés8Date d'inscriptionvendredi 13 février 2015StatutMembreDernière intervention26 novembre 2015
>
jordane45
Messages postés37739Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 4 octobre 2023 13 févr. 2015 à 10:41
je crois avoir réussi, la macro tourne j'attends son "retour" :-)
pouloucarine
Messages postés8Date d'inscriptionvendredi 13 février 2015StatutMembreDernière intervention26 novembre 2015 13 févr. 2015 à 17:33
Bon, j'ai réussi en partie mais celà ne va pas dans les sous répertoires. Il faut que l'on sélectionne rep par rep alors que mon souhait c'est qu'à partir du niveau choisi (lecteur réseau par exemple) la macro balaye tous les répertoires et les sous-répertoires pour ensuite pouvoir copie et coller les fichiers "jpg" vers le rep de destination (qui lui peut rester en dur, ce n'est pas grave).
jordane45
Messages postés37739Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 4 octobre 2023342 13 févr. 2015 à 19:06
Là. .c'est une autre question. ..
la récursivité ne faisant pas parti de ta question initiale...merci d'ouvrir une nouvelle discussion.
13 févr. 2015 à 10:08
merci pour cette réponse, mais j'avoue que je n'arrive pas à l'insérer dans mon code.
Ou dois je mettre cette fonction? j'ai l'impression que même si je sélectionne avec la boite de dialogue un autre répertoire, la macro reste bloqué sur une recherche dans z:\ et reviens dans d:\test ?
Cordialement
pouloucarine
13 févr. 2015 à 10:24
Si tu n'y arrives pas ... montres nous ton code modifié qu'on le regarde
13 févr. 2015 à 10:41
merci
pouloucarine