Macro Renommage

Boujour,

Suite à la création d'un fichier de renommage de document, ce dernier fonctionne parfaitement bien à un détail prêt.

Lors de l'exécution (renommage), je souhaite remodifier un nom de fichier et ré-executer la macro mais celle ci me fait une belle erreur '53' Fichier Introuvable.

La macro en question :

Sub modifieNom()
For Each c In Range([A2], [A2].End(xlDown))
   If c.Offset(0, 2) <> "" Then
     x = [G2].Value & "\" & c.Value
     y = [G2].Value & "\" & c.Offset(0, 2).Value
     Name x As y
   End If
Next c

MsgBox "Terminé"

End Sub

Aurais-je oublier un "reset" de macro quelque part ?

Merci d'avance pour votre participation à la réponse.

Rubidium68

Bonjour Rubidium, bonjour le forum,

Il me semble que le caractère \ est interdit dans le nom de fichier !...

Bonjour,

je pense aussi que c'est interdit

Les caractères suivants sont réservés pour des usages spéciaux et ne doivent pas être utilisés dans le nom lui-même :

< (plus petit que; less than)

> (plus grand que; greater than)

: (deux points; colon)

" (double appostrophe; double quote)

/ (slash; barre de fraction; forward slash)

(antislash; backslash)

| (barre verticale; vertical bar; pipe)

? (point d'interrogation; question mark)

* (astérisque; asterisk)

Je ne suis pas certain que le problème viens d'ici car lors d'une première execution, le fichier est parfaitement renommé et au bon endroit.

De plus, ce "\" sert de séparateur pour l'emplacement du fichier et non pas dans son nom :

C:\Program Files (x86)\Adobe\Monfichier.truc

Dans la macro, X et remplacé par Y. Et c'est la ligne "Name x As y" que me retourne le debug lors de la seconde exécution...

re,

et si tu déposais un bout de fichier(s) avec ton code

ps= la synthase Name x As y est elle autorisée ? le "AS" est plutôt dédié à la déclaration d'une variable

P.

J'ai ajouter mon fichier dans le premier message.

J'ai fais quelques recherches sur le sujet et je suis tombé sur ce code :

Name Statement Example

This example uses the Name statement to rename a file. For purposes of this example, assume that the directories or folders that are specified already exist. On the Macintosh, “HD:” is the default drive name and portions of the pathname are separated by colons instead of backslashes.

Dim OldName, NewName

OldName = "OLDFILE": NewName = "NEWFILE" ' Define file names.

Name OldName As NewName ' Rename file.

OldName = "C:\MYDIR\OLDFILE": NewName = "C:\YOURDIR\NEWFILE"

Name OldName As NewName ' Move and rename file.

re,

c'est un code pour Mac ...non ?

ça doit être différent sur pc

P.

Je viens de comprendre en faisant des recherches sur le sujet.

En fait, quand je renomme une première fois le fichier, ça fonctionne car x existe (ancien nom du fichier) et y le remplace (nouveau nom du fichier).

Lors d'une deuxième exécution, x n'existe plus car je n'ai pas déclaré le nouveau nom pour l'ancien dans la base.

Il faut donc que je trouve une solution pour actualisé x (colonne A)

EDIT : pour les intéressé :

Sub modifieNom()
For Each c In Range([A2], [A2].End(xlDown))
   If c.Offset(0, 2) <> "" Then
     x = [G2].Value & "\" & c.Value
     y = [G2].Value & "\" & c.Offset(0, 2).Value
     Name x As y
     c.Value = c.Offset(0, 2).Value
   End If
Next c

MsgBox "Terminé"

End Sub

OK

c'eut été bien de marquer le sujet comme résolu mais en changeant le titre, ce n'est pas un bug, mais un renommage

P.

C'est chose faites;

Merci pour ta participation

Rechercher des sujets similaires à "macro renommage"