Renommer un dossier

Bonjour,

Dans la cadre d'une mission, j'ai créé un formulaire de saisie/recherche/modification pour gérer une base de données de composants électroniques.

Ce petit logiciel me permet aussi de créer des dossier une fois que quelqu'un a effectué une nouvelle saisie dans un dossier spécifique. Le dossier reprend certaines cellules qui ont été remplies via la saisie.

Il y a un problème qui se pose : si dans ma saisie, j'ai mis une mauvaise information. Je vais modifier ma saisie mais une fois la modification faite. La modification de la saisie ne modifie pas le dossier de façon automatique.

Je cherche donc à pouvoir modifier le nom d'un dossier.

Je ne sais pas si c'est assez clair mes explication mais je joins bien évidement le fichier ici pour que ce soit plus clair

Bonne journée à tous !

Bonjour,

Voici un exemple à essayer :

sub test()

dim expath$, nvpath$

expath = "C:\Kains1\Dossier"
nvpath = "C:\Kains1\NouveauNom"
name expath as nvpath

end sub

Cdlt,

Salut 3GB,

Merci de ta réponse ! J'ai tenté de l'adapter en faisant cette fonction :

'*************************
'Procédure de modification de dosssier
'*************************
Sub Modif_Dossier()

Dim expath, nvpath, Dossier As String
    Dossier = "Mon dossier"
    expath = Dossier & Cells(i, 1).Text & " " & Cells(i, 4).Text & " " & Cells(i, 12).Text & " " & Cells(i, 6).Text
With ActiveSheet
    For i = 2 To Range("A65536").End(xlUp).Row
    nvpath = Dossier & Cells(i, 1).Text & " " & Cells(i, 4).Text & " " & Cells(i, 12).Text & " " & Cells(i, 6).Text
    Name expath As nvpath
    Next i
End With
End Sub

Il me sort une erreur '1004' : erreur définie par l'application ou l'objet. J'ai mis deux espions sur les variables expath et nvpath pour visualiser leur valeur et ils ne contiennent absolument rien...

NB : J'ai modifié le nom de la variable "Dossier" car il y avait des noms sensibles

Bonne journée !

Attention, iIl faut bien que la variable dossier contienne un répertoire existant de ce type : "C:\Users\Kains1\"

Ensuite, la ligne

expath = Dossier & Cells(i, 1).Text & " " & Cells(i, 4).Text & " " & Cells(i, 12).Text & " " & Cells(i, 6).Text

génère une erreur car i n'est pas initialisé et vaut donc 0.

D'ailleurs, ici, il y a une boucle qui remplace les dossiers pour chaque ligne. Or, il n'y a qu'un seul expath. Ca renverra une erreur. Et quand bien même la ligne se trouvait dans la boucle, les valeurs de expath et de nvpath étant identiques, ça ne produirait pas le résultat espéré.

Voici la présentation standard où il reste à adapter le répertoire du dossier parent et définir les noms des dossiers à remplacer :

'*************************
'Procédure de modification de dosssier
'*************************
Sub Modif_Dossier()

Dim Dossier$, exnom$, nvnom$, expath$, nvpath$

Dossier = "C:\...\" '<<<< ADAPTER
if dir(left(Dossier, len(Dossier)-1), vbdirectory) = "" then msgbox "dossier parent inexistant", 16: exit sub

For i = 2 To Range("A65536").End(xlUp).Row
    exnom = ??? '<<< ADAPTER
    nvnom = Cells(i, 1).Text & " " & Cells(i, 4).Text & " " & Cells(i, 12).Text & " " & Cells(i, 6).Text
    expath = dossier & exnom
    if dir(expath, vbdirectory) <> "" then 'si le dossier existe
        nvpath = dossier & nvnom
        Name expath As nvpath 'on le renomme
    end if
Next i

End Sub

Cdlt,

Rebonjour,

J'ai repris ta solution et elle marche super bien !

J'ai du l'adapter car elle doit récupérer des informations dans différents textbox sur la page modification.

Il fallait donc faire un passage de valeurs

'*************************
'Procédure de modification de dosssier
'*************************
Sub Modif_Dossier(Modif_doss, New_name)

Dim Dossier$, exnom$, nvnom$, expath$, nvpath$

Dossier = "Mon dossier\" 
If Dir(Left(Dossier, Len(Dossier) - 1), vbDirectory) = "" Then MsgBox "dossier parent inexistant", 16: Exit Sub

For i = 2 To Range("A65536").End(xlUp).Row
    exnom = Modif_doss
    nvnom = New_name
    expath = Dossier & exnom
    If Dir(expath, vbDirectory) <> "" Then 'si le dossier existe
        nvpath = Dossier & nvnom
        Name expath As nvpath 'on le renomme
    End If
Next i

End Sub

Merci encore pour l'aide apportée !

Super ! Très bonne idée de passer les variables en paramètres !

Par contre, je ne sais pas si la boucle est utile dans ton cas, j'en ai pas l'impression.

Bonne continuation,

Rechercher des sujets similaires à "renommer dossier"