[VBA] Renommer un fichier au nom inconnu [Résolu/Fermé]

Signaler
Messages postés
20
Date d'inscription
jeudi 30 octobre 2008
Statut
Membre
Dernière intervention
1 octobre 2010
-
Messages postés
918
Date d'inscription
samedi 21 novembre 2009
Statut
Membre
Dernière intervention
20 mars 2013
-
Bonjour à toutes et à tous,

Ci-dessous un petit souci que je ne parviens pas à résoudre... =S

Je souhaiterai, en VBA, renommer un fichier dont je ne connais pas le nom avec un nom définit dans une variable.

Exemple:

Le fichier toto.csv se trouve dans le répertoire C:\test\
Je ne connais pas le nom de toto.csv et je souhaiterai le renommer en titi.csv
Il n'y a systématiquement qu'un seul et unique fichier dans le répertoire C:\test\ (mais son nom est variable...)

Dans mon cas, impossible d'utiliser la fonction ci-dessous car je ne connais pas le nom original:

Sub Test()
Name "C:\Test\toto.csv" As "C:\Test\titi.csv"
End Sub

J'ai tenté (l'illusion du débutant...) des astuces telles que:

Sub Test()
Name "C:\Test\*.csv" As "C:\Test\titi.csv"
End Sub

En vain, le rêve a ses limites =)

J'ai également tenté de récupérer le nom du fichier dans une variable (Avec une fonction de type Application.FileSearch...) en vain, je n'y arrive pas.

Auriez vous une petite idée ?

Merci d'avance,

Dan

2 réponses

Messages postés
918
Date d'inscription
samedi 21 novembre 2009
Statut
Membre
Dernière intervention
20 mars 2013
283
Bonjour,
Tu peux utiliser la fonction Dir pour récupérer le nom de ton fichier :
fichier = Dir("C:\Test\*.csv")

Ton fichier n'a pas besoin d'être le seul fichier csv, tu peux appeler la commande dir comme indiqué ci-dessus, puis appeler les autres à l'aide d'une boucle :
For ...
   fichier = Dir 'sans arguments
Next ...

Messages postés
20
Date d'inscription
jeudi 30 octobre 2008
Statut
Membre
Dernière intervention
1 octobre 2010

Yesss, ça marche impec !!! =)

Merci Gord21.
Messages postés
918
Date d'inscription
samedi 21 novembre 2009
Statut
Membre
Dernière intervention
20 mars 2013
283
De rien, c'est un plaisir de résoudre un problème clairement posé :-)