Macro Renommer des fichiers
Résolu
catlea
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
Binzen -
Binzen -
Bonjour,
Je dois renommer une grande quantité de fichiers. Je possède l'ancien nom et le nouveau nom dans une feuille Excel. Il doit y avoir un moyen pour renommer ces fichiers automatiquement à partir des données Excel.
J'ai trouvé le code VBA suivant sur un des forums car il me semble adapté à mon cas.
Sub Ed()
Dim Chemin As String, Fichier As String, Ligne As Integer
Dim AncienNom As String, NouveauNom As String
Chemin = "C:\Dossier1\Dossier2\DossierX\"
For Ligne = 2 To 402
AncienNom = Range("A" & Ligne).Value
NouveauNom = Range("B" & Ligne).Value
Fichier = Dir(Chemin & AncienNom)
If Fichier = Empty Then
MsgBox "le fichier " & AncienNom & " n'a pas été trouvé"
Else
Name Fichier As NouveauNom
End If
Next Ligne
End Sub
Evidemment, j'ai personnalisé ce qu'il y avait à personnaliser : chemin où se trouvent les fichiers, lignes du fichier excel à prendre en compte, colonnes où se trouvent les anciens et nouveaux noms.
Pourtant, il ne marche pas et je ne comprends pas pourquoi. Je précise que mes fichiers ont des extensions différentes.
merci de votre aide
Je dois renommer une grande quantité de fichiers. Je possède l'ancien nom et le nouveau nom dans une feuille Excel. Il doit y avoir un moyen pour renommer ces fichiers automatiquement à partir des données Excel.
J'ai trouvé le code VBA suivant sur un des forums car il me semble adapté à mon cas.
Sub Ed()
Dim Chemin As String, Fichier As String, Ligne As Integer
Dim AncienNom As String, NouveauNom As String
Chemin = "C:\Dossier1\Dossier2\DossierX\"
For Ligne = 2 To 402
AncienNom = Range("A" & Ligne).Value
NouveauNom = Range("B" & Ligne).Value
Fichier = Dir(Chemin & AncienNom)
If Fichier = Empty Then
MsgBox "le fichier " & AncienNom & " n'a pas été trouvé"
Else
Name Fichier As NouveauNom
End If
Next Ligne
End Sub
Evidemment, j'ai personnalisé ce qu'il y avait à personnaliser : chemin où se trouvent les fichiers, lignes du fichier excel à prendre en compte, colonnes où se trouvent les anciens et nouveaux noms.
Pourtant, il ne marche pas et je ne comprends pas pourquoi. Je précise que mes fichiers ont des extensions différentes.
merci de votre aide
A voir également:
- Renommer des fichiers en masse avec excel
- Renommer des fichiers en masse - Guide
- Liste déroulante excel - Guide
- Mise en forme conditionnelle excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
5 réponses
Bonjour
J'ai voulu utilisé cette macro mais j'avoue que n'y connaissant rien j'ai un peu de mal.
J'ai dans un tableau excel une colonne ancien nom et une colonne nouveau nom
J'ai repris la macro comme suit:
Sub Ed()
Dim Chemin As String, Fichier As Variant, Ligne As Integer
Dim AncienNom As String, nouveaunom As String
Dim Source As String, Destination As String
Dim objFSO As Object
Dim CheminCourt As String
Chemin = "C:\Dossier1"
CheminCourt = "C:\Dossier1"
ChDrive "C"
ChDir CheminCourt
Set objFSO = CreateObject("Scripting.FileSystemObject")
With Sheets("Feuil1")
'For Ligne = 2 To 402
For Ligne = 2 To 62
AncienNom = .Range("A" & Ligne).Value
nouveaunom = .Range("B" & Ligne).Value
Fichier = Dir(Chemin & AncienNom, 6)
If Fichier = Empty Then
MsgBox "le fichier " & AncienNom & " n'a pas été trouvé"
Else
Source = Chemin & Fichier: Destination = Chemin & nouveaunom
objFSO.CopyFile Source, Destination
Kill (Chemin & AncienNom)
End If
Next Ligne
End With
Set objFSO = Nothing
End Sub
La macro me retourne l'ancien nom de fichier n'a pas été trouvé
Mes fichiers sont dans c:\Dossier1
Merci de votre aide
Phil
J'ai voulu utilisé cette macro mais j'avoue que n'y connaissant rien j'ai un peu de mal.
J'ai dans un tableau excel une colonne ancien nom et une colonne nouveau nom
J'ai repris la macro comme suit:
Sub Ed()
Dim Chemin As String, Fichier As Variant, Ligne As Integer
Dim AncienNom As String, nouveaunom As String
Dim Source As String, Destination As String
Dim objFSO As Object
Dim CheminCourt As String
Chemin = "C:\Dossier1"
CheminCourt = "C:\Dossier1"
ChDrive "C"
ChDir CheminCourt
Set objFSO = CreateObject("Scripting.FileSystemObject")
With Sheets("Feuil1")
'For Ligne = 2 To 402
For Ligne = 2 To 62
AncienNom = .Range("A" & Ligne).Value
nouveaunom = .Range("B" & Ligne).Value
Fichier = Dir(Chemin & AncienNom, 6)
If Fichier = Empty Then
MsgBox "le fichier " & AncienNom & " n'a pas été trouvé"
Else
Source = Chemin & Fichier: Destination = Chemin & nouveaunom
objFSO.CopyFile Source, Destination
Kill (Chemin & AncienNom)
End If
Next Ligne
End With
Set objFSO = Nothing
End Sub
La macro me retourne l'ancien nom de fichier n'a pas été trouvé
Mes fichiers sont dans c:\Dossier1
Merci de votre aide
Phil
j'ai coché "ne plus suivre"