OVH Cloud OVH Cloud

Nom des feuilles créées

2 réponses
Avatar
Emmanuel Valette
Autre question pour résoudre un autre problème :
Lorsque l'on insère une nouvelle feuille (Insertion, Feuille) son nom
est Feuil1, puis Feuil2, etc... Si l'on enregistre une macro qui crée
une feuille puis la renomme, la macro utilise le nom d'origine pour
renommer, et donc ... ne fonctionne qu'une seule fois.
Comment résoudre ce problème ?

Remarque : la commande Annuler ne fonctionne pas derriere l'insertion
d'une feuille (pourquoi ?)

Emmanuel

2 réponses

Avatar
Daniel
Bonjour.
Quand tu ajoutes une feuille, celle-ci devient la feuille active.récupère le
nom de la nouvelle feuille dans une variable :
Sheets.Add
NomFeuil = ActiveSheet.Name
Ou renomme la feuille crée :
Sheets.Add
ActiveSheet.Name = "toto"
Cordialement.
Daniel
"Emmanuel Valette" a écrit dans le message de
news: 42f1e89e$0$29802$
Autre question pour résoudre un autre problème :
Lorsque l'on insère une nouvelle feuille (Insertion, Feuille) son nom
est Feuil1, puis Feuil2, etc... Si l'on enregistre une macro qui crée une
feuille puis la renomme, la macro utilise le nom d'origine pour renommer,
et donc ... ne fonctionne qu'une seule fois.
Comment résoudre ce problème ?

Remarque : la commande Annuler ne fonctionne pas derriere l'insertion
d'une feuille (pourquoi ?)

Emmanuel


Avatar
PMO
Bonjour,

Si vous voulez avoir une persistance de feuille il faut utiliser
la propriété CodeName au lieu de la propriété Name.
Pour en garder trace il est nécessaire d'avoir une variable publique
qui en retiendra la valeur. Ci-dessous un exemple.

Marche à suivre
1) Lancez la macro AjoutFeuille qui crée une feuille nommée "zaza"
et récupère son CodeName dans la variable publique NomCode
2) Dans Excel (pas dans le VBE) changez le nom "zaza" par "toto"
et langez la macro QuelNom. Un message vous éditera "toto".
On a bien fait référence à la bonne feuille. Si cela vous amuse
vous pouvez changer le nom de la feuille autant de fois que vous
voulez et lancez, à chaque fois, la macro QuelNom.

Copiez le code suivant dans un module standard
'**********
Public NomCode As String
'________________________
Sub AjoutFeuille()
Sheets.Add
NomCode = ActiveSheet.CodeName
ActiveSheet.Name = "zaza"
End Sub
'________________________
Sub QuelNom()
Dim S As Worksheet
For Each S In Worksheets
If S.CodeName = NomCode Then _
MsgBox S.Name
Next S
End Sub
'**********

Cordialement.

--
PMO
Patrick Morange



Autre question pour résoudre un autre problème :
Lorsque l'on insère une nouvelle feuille (Insertion, Feuille) son nom
est Feuil1, puis Feuil2, etc... Si l'on enregistre une macro qui crée
une feuille puis la renomme, la macro utilise le nom d'origine pour
renommer, et donc ... ne fonctionne qu'une seule fois.
Comment résoudre ce problème ?

Remarque : la commande Annuler ne fonctionne pas derriere l'insertion
d'une feuille (pourquoi ?)

Emmanuel