Renommer fichier Auto

Bonjour à tous.

J'ai un petit soucis de VBA. Je cherche à renommer des fichiers via un fichier VBA.

J'ai utiliser une base de J.Boisgontier présente ici mais lui renomme les fichiers à l'avant.

Test01.doc -> Nouveau_Test01.doc

Ce que je voudrais réussir à faire c'est rajouter un numéro ou tout autre caractère juste avant l’extension du fichier (.xlsx ou autre) et donc cibler l'insertion de caractère. Est-ce faisable en VBA ? Quelle technique utiliser ?

Test01.doc -> Test01_Nouveau.doc

Merci d'avance pour vos idées.

Cordialement,

Rubidium68

Bonjour,

Tu cherches le point, tu prélèves l'extension dans une variable.

Tu la remplaces par ton ajout, et tu rajoutes l'extension.

Cordialement.

Bonjour MFerrand

Ou plus simple encore, tu fais replace . par _Nouveau.

Mais oui ! Je pensais avoir fait au plus simple !...

Bonne soirée Steelson.

Merci à vous deux pour les idées

Steelson a écrit :

Bonjour MFerrand

Ou plus simple encore, tu fais replace . par _Nouveau.

Effectivement, vu comme ça c'est une excellente idée.

J'ai juste un soucis sur le recherche du point. Si mon nom de fichier à plusieurs points de base, il ne faudrait pas que la macro remplace les deux points.

Test.01.doc -> Test.01_Nouveau.doc

MFerrand a écrit :

Tu cherches le point, tu prélèves l'extension dans une variable.

Tu la remplaces par ton ajout, et tu rajoutes l'extension.

Cette solution serait plus pratique donc, mais je vous avoue honnêtement que je ne saurai la programmer.

Je sais rechercher le point dans la chaine de caractère :

Pos = InStr(1, NomFichier, ".", 1) 

Mais récupérer l'extension complète je ne sais pas...

Je ne suis pas contre un petit coup de main...

Merci d'avance

Bonjour,

Si tu as d'autres points dans le nom du fichier, tu peux rechercher le dernier point avec InStrRev (le dernier sera le premier dans le nom inversé).

Petite illustration :

Sub NNomFichier()
    Dim nf$, ext$, aj$, nnf$
    nf = "Nom.Actuel.Fichier.gif"
    aj = "_Nouveau"
    ext = Mid(nf, InStrRev(nf, "."), 5)
    nnf = Replace(nf, ext, aj) & ext
    MsgBox nnf
End Sub

Cordialement.

Super ! J'ai modifié à ma sauce et ça fonctionne parfaitement

Je ne connaissais pas les deux outils "Mid" et "InStrRev" et j'ai un peu épluché la documentation pour comprendre leur fonctionnement. C'est intéressant mais j'ai eut du mal à tout saisir

En tout cas, merci, ça fonctionne maintenant à merveille

Rechercher des sujets similaires à "renommer fichier auto"