Gestion de Nom et VBA

Bonjour Le Forum,

Dans un module de Classe voir code ci-dessous:

Public WithEvents GroupeCmdb As MSForms.CommandButton
Public Cmdb As MSForms.CommandButton

Private Sub GroupeCmdb_Click()
             If GroupeCmdb.Caption = "MO1_25" Then
                    MsgBox ("Trouvé")
            End If
End Sub

J'utilise un nom "MO1-25" que j'ai défini Grace au gestionnaire de nom.

(Petite explication j'ai 4 bouton 2 portent un nom qui se trouve dans cette liste "MO1_25" et lorsque je clic sur eux je veux le message "trouvé")

Le code fonctionne si je met exactement le bon nom d'un des boutons mais dès lors que je souhaite utiliser ce Gestionnaire de nom pas moyen ça ne fonctionne pas. Pourtant "MO1_25" fait bien référence a ma plage de cellule.

Savez-vous pourquoi ?

Bonjour,

Euh... Il n'est pas certain que tu aies vraiment compris à quoi servent les modules de classe ?

Tu as 4 boutons dont les captions sont

MO1,

MO2,

MO3 et

MO4 :

Aucun module de classe ni Gestionnaire de quoi que soit ne fera que l'un d'eux réponde à cette condition :

...Caption = ("MO1_25")

Le module de classe sert juste à identifier le bouton sur lequel tu as cliqué. en modifiant dans ton module de classe :

Private Sub GroupeCmdb_Click()
    MsgBox "Vous avez cliqué " & GroupeCmdb.Caption
End Sub

A+

bonjour,

je ne sais pas si je réponds à ta question

mais j'ai essayé

Bonjour,

Tu n'es pas loin gullaud ça y ressemble, tu as redéfinie une Table..

Je veux juste savoir pourquoi ma table nommé "MO1_25" ne fonctionne pas dans mon code ?

je ne veux pas toucher à mon code

Aucun module de classe ni Gestionnaire de quoi que soit ne fera que l'un d'eux réponde à cette condition :

...Caption = ("MO1_25")

Je veux dire:

Si le nom du bouton sur lequel je click est égale à un nom qui fait partie de la Liste "MO1_25" alors.........

Mais il ne prend pas ma liste en compte, Liste définie par mon gestionnaire de nom. C'est juste ça...

Là je n'ai que 4 boutons mais si j'en ai 100... je passe par mon module de Classe pour effectuer ma code au lieu de l'écrire 100 fois dans chaque bouton

je ne sais pas trop pourquoi ni comment mais avec un bout d'écriture de gullaud j'ai réussi à obtenir ce que je voulais:

Public WithEvents GroupeCmdb As MSForms.CommandButton
Public Cmdb As MSForms.CommandButton

Private Sub GroupeCmdb_Click()
             If GroupeCmdb.Caption = Feuil1.Range("MO1_25").Cells(GroupeCmdb.Index, 1) Then
                    MsgBox ("Trouvé")
            End If
End Sub

C'est parfait !

Mais si quelque comprend pourquoi ce code fonctionne et le mieux ne fonctionnait pas je suis preneur pour les explications

dis moi exactement ce que tu veux, je ne sais ce que tu cherches

(pour moi il ne peur avoir de lien direct avec le gestionnaire de nom)

les numéros de ligne de ma table correspondent aux index de tes boutons

ce sera plus simple

J'ai réussi, ce Excel répond exactement à ce que je souhaite.

Mais peut être qu'il y avait plus simple niveau code je ne sais pas...

Rechercher des sujets similaires à "gestion nom vba"