Nom de feuille code vba

Résolu
guillaume gdco Messages postés 75 Statut Membre -  
guillaume gdco Messages postés 75 Statut Membre -
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

4 réponses

  1. ThauTheme Messages postés 1564 Statut Membre 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
  2. M-12 Messages postés 1349 Statut Membre 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
  3. guillaume gdco Messages postés 75 Statut Membre
     
    Merci à vous
    0