Incrémentation d'un Titre

Bonjour à tous !

Je souhaite enregistrer des fichiers en incrémentant le titre des fichiers à chaque enregistrement. Je vais illustrer mon propos :

_ j'enregistre mon fichier pour la première fois donc le titre du fichier est "Titre_i" avec i = 1 ;

_ j'enregistre mon fichier pour la n-ième fois donc le titre du fichier est "Titre_n" .

J'essaie tant bien que mal à utiliser une boucle "While" mais je ne parviens à aucun programme fonctionnel.

Merci pour votre aide !

Bonsoir,

voici un code pour vous expliquer la solution que je vous propose :

Sub test()
lenom = ThisWorkbook.Name
nbr = Right(lenom, Len(lenom) - 8)
MsgBox nbr
nbr = nbr + 1
MsgBox nbr
lenom = Left(lenom, 8) & nbr
MsgBox = lenom
End Sub

Mon classeur test s'appelle CLASSEUR1

Ce qui vous explique le -8 pour trouver le nombre qui se trouve à la fin du nom.

On prend le nom du classeur et on en extrait la partie droite qui correspond au chiffre en supprimant le nombre de caractère correspondant au nom du fichier sans les chiffres, on incrémente de 1 cette partie, ensuite on "recrée" le nom du futur fichier sauvegardé.

@ bientôt

LouReeD

Merci pour votre aide LouReeD !

En fait, le classeur doit s'enregistrer sous un autre nom. Je pensais quelque chose du type :

i = 0

Tant que Blablatitre_i existe

i = i+1

Titre = Blablatritre_i

J'utilise la fonction FileExisits mais apparemment elle n'est pas sur cette version d'excel (2010). Sinon, je dois faire n'importe quoi. -_-

Novice1

Bonjour,

FileExists [FileExisits... !?] n'est pas une fonction mais une méthode de FileSystemObject...

Suis donc les sages conseils de LouReed au lieu d'écrire n'importe quoi !

Cordialement.

Bonsoir,

vous disiez :

Je souhaite enregistrer des fichiers en incrémentant le titre des fichiers à chaque enregistrement. Je vais illustrer mon propos :

_ j'enregistre mon fichier pour la première fois donc le titre du fichier est "Titre_i" avec i = 1 ;

_ j'enregistre mon fichier pour la n-ième fois donc le titre du fichier est "Titre_n"

Ce que je propose :

Sub test() ' nom de la procédure à lancer lors de la fermeture du fichier
lenom = ThisWorkbook.Name ' dans la variable lenom on met le nom actuel du fichier (qui peut être Blablatritre_18)
nbr = Right(lenom, Len(lenom) - 13) ' on extrait le chiffre du nom en partant de la droite et en prenant le nombre de carractère correspondant au chiffre du nom du fichier. Pour trouver ce chiffre il faut prendre le nombre total de caractère du nom du fichier et retirer la partie contente de ce même nom, dans votre exemple : Blablatritre_ 13 caractères donc Blablatritre_18=15 caractères - Blablatritre_=13 caractères = 2, donc en partant de la droite du nom on récupère 2 caractères donc = à 18 donc nbr = 18
MsgBox nbr ' ici c'est juste pour l'afficher pour voir que ça marche
nbr = nbr + 1 ' Blablatritre_18 existant on incrémente à 19 : 18+1
MsgBox nbr ' ici c'est juste pour l'afficher pour voir que ça marche
lenom = Left(lenom, 13) & nbr ' ici la variable lenom est égale à lenom (Blablatritre_18) mais seulement sur 13 caractères en partant de la gauche donc = Blablatritre_ auquel on "colle" le nouveau nbr soit 19, donc le nouveau nom du fichier sera Blablatritre_19
MsgBox = lenom ' ici c'est juste pour l'afficher pour voir que ça marche
' ensuite ici il faut l'instruction de sauvegarde qui utilisera le nouveau nom du fichier Blablatritre_19
End Sub

Vous avez bien un nouveau fichier incrémenté à chaque sauvegarde... CQFD

Ceci dit je suis d'accord avec vous il y a certainement mieux et plus simple

@ bientôt

LouReeD

PS : MFerrand, bonsoir et merci pour vos encouragements !

Bonjour,

Merci Pour votre aide LouReeD.

Rechercher des sujets similaires à "incrementation titre"