Nom de feuille code vba

Résolu
guillaume gdco Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   -  
guillaume gdco Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

dans tous mes codes, je fait appel à un nom de feuille qui correspond à ma feuille bien évidement.

cependant le nom de mes feuilles changeant quotidiennement, existe-il un moyen d'éviter de renommer les feuilles ou le code.

Merci

Configuration: Windows / Firefox 60.0
A voir également:

4 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
1
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
Bonjour Guillaume, bonjour le forum

Si tu vas dans VBE (Visual Basic Editor) et que tu double-cliques dans un onglet, Feuil1(Feuil1), par exemple et que tu regardes la fenêtre des propriétés tu t'apercevras qu'il y a deux type de nom pour cet onglet : (Name) et Name. C'est d'ailleurs pour cela qu'il se nomme Feuil1(Feuil1).
Le premier nom c'est la propriété (Name) et pour y acceder en VBA il faut utiliser le mot clé CodeName
Le second (entre parenthèse) c'est Name et le mot clé VBA qui le caractérise c'est Name.
C'est assez paradoxal, le CodeName, propriété (Name) est le nom qui n'est pas entre parenthèses dans le nom du composant VBA et le Name, propriété Name est le nom qui est entre parenthèses... Mais peu importe...
Si tu veux accéder à un onglet qui peut changer de nom, Name sélectionne le via son CodeName.
Par exemple, le premier onglet, Feuil1(Feuil1) a été renommé Jean. Dans VBE il s'appelle Feuil1 (Jean)
Workseets("Feuil1").Select 

va provoquer une erreur tandis que
Feuil.Select 

va le sélectionner

En résumé, utilise le CodeName, propriété (Name) pour sélectionner un onglet et tu n'auras plus de problèmes...
1
M-12 Messages postés 1332 Date d'inscription   Statut Membre Dernière intervention   285
 
Bonjour,

macro à placer dans les feuilles intéressées

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveSheet.Name <> "Nom de la feuille" Then
ActiveSheet.Name = "Nom de la feuille"
End If
End Sub
0
guillaume gdco Messages postés 68 Date d'inscription   Statut Membre Dernière intervention  
 
Merci à vous
0