Comment renommer fichier sans l'ouvrir ?

F

FDI

Guest
Bonjour le Forum,

Dans un répertoire, j'ai environ 200 fichiers en .csv séparés par des ";" et sans guillemets en extremites de ligne.
Le nom de chaque fichier est du type : XX_045165A.slk

Je veux les renommer tous en : EX045164.txt, en conservant l'absence de guillemets et le séparateur ";".

(Bien entendu, "045164" est un n° qui change d'un fichier à l'autre)

Grace aux post déja publiés, j'ai testé la fonction filesearch mais en vain : elle m'oblige à ouvrir le fichier pour le réenregistrer sous un autre nom, ce qui pose les pb suivants :
a) le séparateur devient la virgule
b) des guillemets sont ajoutés en début et fin de ligne (sauf sur la premier ligne)
c) le séparateur de décimales d'origine est la virgule, et il devient le point ce qui ne me va pas

COMMENT puis je faire pour simplement renommer les fichiers du répertoire qui répondent à mes critères, selon une règle de renommage que je maîtrise, sans en changer le contenu ?

N'est il pas possible d'appeler la fonction windows de renonmmage de fichier et de la mettre dans une boucle ?

Un grand merci attend celui qui voudra et pourra bien me décoincer...
 
T

Ti

Guest
pour renommer un fichier sans l'ouvrir utilise l'instruction "Name" tout simplement
ex :

Dim OldName as String, NewName as String
OldName = "ANCIEN.txt": NewName = "NOUVFICH.txt" ' Définit les noms de fichiers.
Name OldName As NewName ' Renomme le fichier.

éviemment, dans un exemple réel, il te faudrait récupérer le chemin complet de tes fichiers et leur attribuer un nouveau nom selon tes critères, mais ce Name agit exactement comme l'ancien Rename du DOS.
 
F

FDI

Guest
Merci bcp Ti,

hélas, cela effectue aussi les transformations indésirables sus mentionnées : le séparateur de décimale devient un point, les guillements, les virgules au lieu du point-virgule.

Ben j'en suis pour renommer à la main mes 186 fichiers
 
T

Ti

Guest
je pense que tu confonds plusieurs choses. Ce que tu demandais dans ton premier message, c'était une fonction pour renommer un fichier sans l'ouvrir. Name fait cela, maintenant ce qu'il y a dans le fichier, il s'en fiche complètement, vu qu'il ne l'ouvre pas !. Donc je pense que logiquement si tes guillemets sont transformés etc, c'est plus tard, quand tu ouvres le fichier. A ce moment il te faudra une autre macro permettant de gérer ça.

Ca devrait être facile à faire via le menu Données...Données externes...importer des données. Tu fais ça une fois avec l'enregistreur de macros et tu reprends la procédure générée pour les fichiers suivants.
 
@

@+Thierry

Guest
Bonsoir Ti, FDI et le Forum

Oui dacodac, Ti, je ne vois pas comment une procédure Name, puisse changer quoique ce soit dans un fichier, même pas l'heure de dernière modification !!!

Je pense aussi que FDI a un autre problème que ceci, mais ce n'est pas Name.

Bonne Soirée
@+Thierry
 

Discussions similaires

  • Question
XL pour MAC mise en forme
Réponses
2
Affichages
105

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 211
Membres
103 158
dernier inscrit
laufin