nommer une feuille via vba

cmalifarge

XLDnaute Nouveau
bonjour,
j'essaie de créer un classeur pour automatiser mes devis. Depuis hier je bloque sur le problème du nom de feuille.
j'ai construit une macro qui me permet d'automatiser certaines fonctions et notamment de créer un devis lorsque j'ai terminé de remplir les différentes cellules. Ce devis (qui est une nouvelle feuille) j'aimerais le nommer automatiquement du texte d'une cellule spécifique (A5 dans mon exemple) dans laquelle se trouve une date.
ma feuille de départ s'appelle "vierge FEX" et voilà ce que j'ai écrit qui ne marche pas:

Sheets("vierge FEX").Select
Sheets("vierge FEX").Copy Before:=Sheets(17)
Sheets("vierge FEX (2)").Select
Range("A5").Select
Selection.Copy
Sheets("vierge FEX (2)").Name = "A5"


Ma nouvelle feuille se nomme alors A5 au lieu de prendre le contenu de cette cellule.
D'autre part, comment créer de nouveau une autre feuille avec cette même date et qu'elle se nomme également avec la valeur de la cellule A5 sans provoquer de bug.

merci pour votre aide

cordialement
C. Malifarge
 

Matheop

XLDnaute Occasionnel
Re : nommer une feuille via vba

Hello C. Malifarge,

Je pars du principe que ton classeur contient deux feuilles nommées "vierge FEX" et "vierge FEX (2)". Il te suffit alors d'écrire :

Code:
Sheets("vierge FEX (2)").Name = Sheets("vierge FEX").Range("A5").Value
ThisWorkbook.Sheets.Add after:=Sheets(ThisWorkbook.Sheets.Count)
ActiveSheet.Name = Sheets("vierge FEX").Range("A5").Value & "bis"
La première ligne renomme ta feuille "vierge FEX (2)" avec la valeur contenue dans la cellule A5 de ta feuille "vierge FEX".
La deuxième ligne permet d'ajouter une feuille à la fin du classeur, par conséquent elle devient la feuille active.
La dernière ligne permet de renommer la feuille active (celle qui vient d'être ajoutée donc) par la valeur contenue dans la cellule A5 de ta feuille "vierge FEX" ; je me permets de rajouter un "bis" dans le nom de la feuille sinon elle va prendre le nom d'une feuille déjà existante/ayant déjà ce nom, ce qui est impossible et provoque une erreur.
 

Matheop

XLDnaute Occasionnel
Re : nommer une feuille via vba

Re C. Malifarge.

Le problème vient du fait que tu tentes de nommer ta feuille avec le contenu de ta cellule A5 de la feuille "vierge FEX" qui n'est autre qu'une date sous la forme JJ/MM/AAAA ; hors les noms de feuilles ne peuvent pas être composés de "/".

Essaie comme ça ?
Code:
Sheets("vierge FEX (2)").Name = Format(Sheets("vierge FEX").Range("A5").Value, "dd-mm-yyyy")
ThisWorkbook.Sheets.Add after:=Sheets(ThisWorkbook.Sheets.Count)
ActiveSheet.Name = Format(Sheets("vierge FEX").Range("A5").Value, "dd-mm-yyyy") & "bis"
Cela prend la cellule A5 de ta feuille "vierge FEX" et formate sa valeur sous la forme dd-mm-yyyy au lieu de dd/mm/yyyy comme c'est actuellement le cas. En théorie cela devrait fonctionner. :p
 

cmalifarge

XLDnaute Nouveau
Re : nommer une feuille via vba

mieux qu'en théorie: ça marche.

reste encore un problème, si je crée une deuxième feuille toujours depuis ma feuille de référence "vierge FEX" elle ne prend pas la valeur de la cellule A5 avec (2) en dernier mais reste à la valeur vierge FEX (2).

existe t-il une solution pour créer autant de feuille que je veux prenant comme base de nom la valeur de la cellule "A5" de la feuille "vierge FEX"?

cordialement
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
117

Statistiques des forums

Discussions
312 215
Messages
2 086 314
Membres
103 176
dernier inscrit
jean.yvesjean.yves