Bonjour,
Comment agir sur name et sur (name) dans les propriétés d'une feuille.
On peut changer (name) manuellement, mais je voudrais changer (name) par une macro et je ne sais pas comment.
Merci si vous pouvez m'aider.
Version imprimable
Bonjour,
Comment agir sur name et sur (name) dans les propriétés d'une feuille.
On peut changer (name) manuellement, mais je voudrais changer (name) par une macro et je ne sais pas comment.
Merci si vous pouvez m'aider.
Bonjour
Un document qui devrait apporter des réponses
http://silkyroad.developpez.com/VBA/...etesClasseurs/
JP
Ça ne marche pas pour les propriétés d'une feuille, ou bien je n'ai pas su l'adapter.
Bonjour
Pour renommer une feuille
L'enregistreur de macro permet de trouver facilement le vocabulaire et la syntaxe de code à écrire.Code:
1
2
3 Sheets("Feuil1").Select Sheets("Feuil1").Name = "toto"
JP
Bonjour,
Pour renommer une feuille :
Code:Worksheets("Feuil1").Name = "nouveauNom"
Merci, mais ce n'est pas name que je veux changer, mais (name).
Dans la fenêtre VBAProject, on lit par exemple, pour une même feuille :
Feuil3(Feuil1)
Le nom 'Feuil1' peut être changé par l'onglet dans Excel
Le nom 'Feuil3' ne peut être changé que dans VBA, fenêtre Propriétés
C'est Feuil3 que je voudrais changer par une macro.
La macro automatique ne marche pas dans la fenêtre VBA.
Tu veux donc parler du "CodeName".
Pourquoi vouloir changer par macro, quel est l'utilité, le but.
Car à mon avis ce n'est pas hyper simple vu que cette proprieté est en lecture seule tu vas être obligé de passer par les VBCOMPONENT.
Bon même si l'utilité ne me saute pas aux yeux, si on veut le faire, on peut le faire :D
Un exemple :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Sub essai_vb() Dim wb As Workbook Dim VBComp As VBComponent Dim nom As String Set wb = ThisWorkbook nom = "Feuil1" ' Boucle sur les modules For Each VBComp In wb.VBProject.VBComponents If VBComp.Type = 100 Then ' feuilles If VBComp.Name = nom Then VBComp.Name = "NouveauNom" exit for End If Debug.Print VBComp.Type & VBComp.Name End If Next End Sub
Bonsoir
Pour modifier le codename
Citation:
mafeuille.[_codename] = "NouveauNom"
Merci à vous,
J'ignorais l'existence de CodeName, et maintenant je suis débloqué.
J'avais trouvé sur un forum un modèle qui employait 'Name'. C'étqit une erreur. Il suffisait de mettre 'CodeName' pour que ça marche, mais je cherchais ailleurs.
J'avais déjà remercié aalex_38, mais je me suis aperçu que mon message n'était pas parti !
Merci aussi à Pierre Fauconnier pour sa réponse.
Cordialement à tous.
C'est intéressant de pouvoir faire cela lorsque tu crées une nouvelles feuille par VBA et que tu veux "coder" son nom, avec par exemple un préfixe. Ainsi, tu peux atteindre par VBA une feuille dont tu es certain du nom, le nom de l'onglet étant sujet à modification de la part de l'utilisateur, alors que le pour modifier le codename, il faut avoir accès au code VBA...
Bonjour à tous,
Merci Pierre pour la syntaxe, Je ne connaissais pas cette proprièté, il faut dire qu'elle fait partie des membres masqués !Code:mafeuille.[_codename] = "NouveauNom"
La remarque est pertinente merci, jusqu'a maintenant j'utilisais assez souvent le codename mais pour des feuilles déjà créés et dont j'avais modifié le codename manuellement.Citation:
C'est intéressant de pouvoir faire cela lorsque tu crées une nouvelles feuille par VBA et que tu veux "coder" son nom, avec par exemple un préfixe. Ainsi, tu peux atteindre par VBA une feuille dont tu es certain du nom, le nom de l'onglet étant sujet à modification de la part de l'utilisateur, alors que le pour modifier le codename, il faut avoir accès au code VBA