Renommer une liste de fichiers à partir d'une feuille Excel ?

Bonjours à tous.

Voilà, je reprends un travail laissé de côté. Après avoir créé une feuille Excel grâce à quelques lignes de VBA Excel d'un travail précèdent grâce à votre support.

Sur cette feuille j'ai quelques centaines de lignes qui correspond aux noms de mes fichiers à renommer qui se trouve dans un dossier attitré.

1ere colonne : le nom du fichier existant

2eme colonne : le nouveau nom du fichier correspondant

Auriez-vous une idée de fonction VBA Excel ? Afin de s'assurer que lorsque l'on renomme un fichier (par son nouveau nom ; deuxième colonne) il y est en correspondance exacte avec le nom existant de la première colonne.

En fait faire une routine qui vérifie d'exactitude entre les noms des fichiers (stockés dans un dossier) par rapport à la 1ere colonne avant de le renommer par son nouveau nom de la 2eme colonne d'une feuille Excel.

N'hésitez pas à me demander des précisions si cela n'est pas clair.

MERCI pour vos idées et support.

Hello Joe,

Voici un exemple à adapté à ton cas.

Sub FileToRename()
    Dim ws As Worksheet: Set ws = ActiveSheet ' Modifier en fonction du nom de ta feuille si la macro ne s'éxécute pas dessus

    Dim arrFileName As Variant
    arrFileName = ws.Range("A2:B" & ws.Range("B" & ws.Rows.Count).End(xlUp).Row).Value ' Création d'un tableau avec les noms de fichiers

    Dim strPath As String
    strPath = "C:\Nom\De\Ton\Répertoire\" ' Spécifie ton répertoire ici

    Dim i As Integer, intNbFiles As Integer
    intNbFiles = 0

    On Error GoTo errorHandle ' Gestion des erreurs

    For i = LBound(arrFileName, 1) To UBound(arrFileName, 1) ' Boucle sur les lignes du tableau
        Dim strOldName As String
        strOldName = strPath & arrFileName(i, 1) & ".xlsx" ' Chemin complet de l'ancien fichier

        If Len(Dir(strOldName)) > 0 Then ' Vérifie si le fichier existe
            Dim strNewName As String
            strNewName = strPath & arrFileName(i, 2) & ".xlsx" ' Chemin complet du nouveau fichier
            Name strOldName As strNewName ' Renomme le fichier
            intNbFiles = intNbFiles + 1 ' Compteur de fichiers renommés
        End If
    Next i

    MsgBox intNbFiles & " fichiers ont été renommés !", vbInformation + vbOKOnly
    Exit Sub

errorHandle:
    MsgBox "Une erreur est survenue lors du renommage, vérifiez les fichiers", vbCritical + vbOKOnly
End Sub

Avec un fichier exemple :

A+,
Kilian

Bonsoir....

Génial....mille merci de me donner un début de piste.

Je te répond d’une tablette mais je vais étudier ta solution.

Pas très adapté à travailler le sujet.😃

Bonne soirée

A+

Salut Killian,

J'ai beau lire et relire dans tous les sens, je n'arrive pas à démarrer ce programme ou du moins quelque chose m'échappe....

je ne comprends pas pourquoi il faut créer un tableau avec le nom des fichiers ? ligne 4

Juste une précision de mon projet :

1 - J'ai un dossier "Dossier Cartes" qui contient une centaine de fichiers image.

2 - J'ai une feuille Excel "Liste" qui contient une centaine de lignes, correspondant à la liste des fichiers image.

en Colonne 1 : le nom des fichiers existants du "Dossier Cartes"

en Colonne 2: le "nouveau nom"

Je cherche à renommer tous les fichiers image du "Dossier Cartes" par leur "nouveau nom" mais en vérifiant que leur nom initial dans le "Dossier Carte" est identique à celui de la feuille "Liste" colonne 1.

Si cela est le cas, alors on renomme le fichier par "nouveau nom" colonne 2.

Excuse-moi de revenir à expliquer mes besoins car je ne trouve pas le moyen de faire tourner ton exemple.

MERCI de ta compréhension, j'avoue je suis un simple débutant...

Cordialement

Hello,

qu'est-ce que vous ne comprenez pas ?

Voici ce qui est à adapter :

Set ws = ActiveSheet ' Modifier en fonction du nom de ta feuille si la macro ne s'éxécute pas dessus

Soit la macro est dans le fichier où se trouve la liste des fichiers à renommer, soit il faut le préciser avec Set ws = WorkSheets("Nom du fichier contenant la liste")

strPath = "C:\Nom\De\Ton\Répertoire\" ' Spécifie ton répertoire ici

Ca c'est normalement assez clair, il faut préciser où sont les fichiers à renommer

strOldName = strPath & arrFileName(i, 1) & ".xlsx" ' Chemin complet de l'ancien fichier

Définir le nom complet (avec le chemin) du fichier à renommer. Je soupçonne que vos images sont des .jpg ou .png il faut donc supprimer & ".xlsx"

strNewName = strPath & arrFileName(i, 2) & ".xlsx" ' Chemin complet du nouveau fichier

Idem pour le nom du nouveau fichier

Rechercher des sujets similaires à "renommer liste fichiers partir feuille"