Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 [Résolu] renommer des dossiers en masse par rapport à une liste

damsleretour

XLDnaute Nouveau
Bonsoir,

J'ai des dossiers qui portent un nom :

Arbre
Buche
Cadenas...

Je souhaiterais renommer ces dossiers en masse par rapport à une liste :

00001 - Arbre
00003 - Buche
00002 - Cadenas

En fait ce sera une recherchev pour trouver à quel numéro indexer le nom du dossier.

Je bloque car je n'ai pas de connaissance VBA.

J'espère que mon explication sera assez claire et que vous pourrez m'aider à ce sujet.

Merci pour votre aide.

Bonne soirée.

Cordialement,

Damien.
 

job75

XLDnaute Barbatruc
Bonsoir damsleretour,

Téléchargez le fichier et dossiers zippés joints dans le même répertoire (le bureau).

Ouvrez le fichier .xlsm et exécutez la macro du bouton :
VB:
Sub Renommer_dossiers()
Dim chemin$, ancien, nouveau, i%
chemin = ThisWorkbook.Path & "\"
ancien = Array("Arbre", "Buche", "Cadenas")
nouveau = Array("00001 - Arbre", "00003 - Buche", "00002 - Cadenas")
For i = 0 To UBound(ancien)
    If Dir(chemin & ancien(i), vbDirectory) <> "" Then Name chemin & ancien(i) As chemin & nouveau(i)
Next
End Sub
A+
 

Pièces jointes

  • Zip.zip
    34.1 KB · Affichages: 7

job75

XLDnaute Barbatruc
Avec les noms des dossiers dans la feuille de calcul :
VB:
Sub Renommer_dossiers()
Dim chemin$, i&, n&
chemin = ThisWorkbook.Path & "\"
With [A1].CurrentRegion
    For i = 2 To .Rows.Count
        If Dir(chemin & .Cells(i, 1), vbDirectory) <> "" Then
            n = n + 1
            Name chemin & .Cells(i, 1) As chemin & .Cells(i, 2)
        End If
    Next
End With
MsgBox n & " dossier(s) renommé(s)"
End Sub
 

Pièces jointes

  • Zip(1).zip
    35.4 KB · Affichages: 9

damsleretour

XLDnaute Nouveau
Bonsoir job75,

Merci pour le fichier.

C'est ce que je recherche le second fichier. La seule chose que j'aimerais c'est pouvoir avoir la liste des dossiers (colonne A) en automatique car j'aurais des centaines de dossiers et en colonne B, ce sera une formule qui ira chercher dans un second onglet le nom du dossier car ça pourra changer chaque semaine selon différents critères. Une question : Est-ce que le script pour renommer les dossiers ira au bout de son action même si certains dossiers gardent le même nom ?

Merci pour votre aide, c'est vraiment top. Il me manque ce morceau de VBA pour arriver à construire mon fichier complètement.

Bonne soirée.
 

job75

XLDnaute Barbatruc
Si la colonne A peut être dynamique et récupérer la liste des sous-dossiers d'un dossier, ce serait super.
Pour lister les dossiers en colonne A à partir de A2 exécutez cette macro :
VB:
Sub Liste_dossiers()
Dim fso As Object, chemin$, dossier As Object, n&
Set fso = CreateObject("Scripting.FileSystemObject")
chemin = ThisWorkbook.Path
Application.ScreenUpdating = False
Range("A2:A" & Rows.Count).ClearContents 'RAZ
For Each dossier In fso.GetFolder(chemin).SubFolders
    n = n + 1
    Cells(n + 1, 1) = dossier.Name
Next
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…