Bonjour à tous
j'ai créé une macro afin de
1/obtenir une liste de noms de documents dans un dossier
2/ de renommer les images du dossier à partir d'une liste
Le souci, c'est que la formule que j'ai créé m'oblige a avoir le chemin du dossier à chaque fois... et évidemment cela change d'un Utilisateur à l'autre.
J'aimerais donc faire un sorte que par exemple, dans une Feuille1, dans la celulle A1, il suffit de copier coller le chemin du dossier et que je n'ai plus besoin de personnaliser à chaque fois la macro dans ma formule.
Mais je ne sais pas vraiment comment faire, toutes mes tentatives se sont soldées par une échec. Une idée ?
Voici mes 2 codes VBA - en bleu le chemin du dossier que j'aimerai avoir dans une cellule - ma macro s'appelle BEE-RENAMER
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub ChangeNom() Dim LastRow2 As Long Dim k As Long LastRow2 = Range("A" & Rows.Count).End(xlDown).Row For k = 2 To 5000 Dim AncienNom As String, NouveauNom As String AncienNom = "C:\Users\XXXXX\Documents\BEE-RENAMER\" & Range("A" & k) NouveauNom = "C:\Users\XXXXX\OneDrive - Robert Bosch GmbH\Documents\BEE-RENAMER\" & Range("B" & k) On Error Resume Next Name AncienNom As NouveauNom If Err = 75 Then Exit Sub Next k End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Sub ListeFichiersRepert() Dim Fso As Object Dim MonRepertoire As String, f As Object, x As Integer Dim f1 As Object, f2 As Object Set Fso = CreateObject("Scripting.FileSystemObject") MonRepertoire = "C:\Users\XXXXX\Documents\BEE-RENAMER\" x = 1 For Each f In Fso.GetFolder(MonRepertoire).Files Cells(x, 1).Value = f.Name x = x + 1 Next f x = 1 For Each f1 In Fso.GetFolder(MonRepertoire).SubFolders Cells(x, 2).Value = f1.Name x = x + 1 For Each f2 In f1.Files Cells(x - 1, 3).Value = f2.Name x = x + 1 Next f2 x = x - 1 Next f1 End Sub
Merci par avance pour votre aide![]()
Partager