Renommer fichiers dans des dossiers différents

Bonjour,

Je suis novice dans VBA et j'ai un petit soucis avec la fonction "NAME" dans VBA.

J'essaie d'écrire un code qui renommerait les fichiers (en l'occurrence des photos) selon les valeurs présentent dans une colonne.

Dans la colonne A j'ai le répertoire ainsi que le nom original de la photo

Dans la colonne B j'ai le répertoire ainsi que le nom modifié de la photo

Je voudrais renommer les photos selon la colonne B

Comme je suis autant doué en VBA qu'en description, un exemple concret sera plus parlant:

Colonne A:

C:\Photo1\nom.jpg

Colonne B:

C:\Photo1\nouveaunom.jpg

Il faudrait que mon code modifie le nom de la photo "nom.jpg" par "nouveaunom.jpg" dans le dossier Photo1.

Tout en sachant que mes photos peuvent se retrouver dans différents dossiers (Photo1, Photo2, Photo3,...)

J'ai environ 1'700 photos a renommé...

Voici mon (tout petit) bout de code(qui ne fonctionne évidemment pas):

Sub RenommeFichier()

Dim AncienNom As String, NouveauNom As String

For i = 2 To Range("A65000").End(xlUp).Row

AncienNom = Range("A" & i)

NouveauNom = Range("B" & i)

Name AncienNom As NouveauNom

Next i

End Sub

Je vous remercie d'avance pour votre aide.

Les réponses que les personnes publient sur ce forum n'ont pas de prix, je tiens à remercier tous les contributeurs pour leur fantastique travail!!

En fichier joint un petit exemple

Bonjour mimoun,

Ce code me parait très bien

As-tu un message d'erreur et quel est-il ?

a+

Bonjour BrunoM45,

Tout d'abord merci d'essayer de m'aider...

il me vient le message d'erreur suivant:

Erreur de compilation:

Variable non définie

Re,

Dans ton module tu as : Option Explicit (c'est très bien)

Mais ce qui t'oblige à déclarer toutes tes variables y compris celle pour ta boucle

Donc

Dim I as long, AncienNom As String, NouveauNom As String

A+

Merci, merci et encore merci!!!

Cela fonctionne parfaitement!

Je mets encore le code avec la correction de BrunoM45, si cela peut aider des gens:

Sub RenommeFichier()
   Dim i As Long, AncienNom As String, NouveauNom As String

For i = 2 To Range("A65000").End(xlUp).Row
    AncienNom = Range("A" & i)
    NouveauNom = Range("B" & i)

Name AncienNom As NouveauNom
Next i

End Sub
Rechercher des sujets similaires à "renommer fichiers dossiers differents"