Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Bonjour à toutes et à tous,
Dans le fichier joint, j'ai créé dans un formulaire un ruban avec des boutons de commande. Le ruban s'affiche bien, mais je n'arrive pas à déclencher une action après un clic sur un bouton. Pouvez-vous m'aider s'il vous plaît ?
Je vous en remercie par avance
voici
c'est la base de chez base dans son ecriture la plus simple on peut utiliser une collection aussi a la place d ela variable boutonsmais on l'ecrit autrement
là je t'ai donné le basique
Bonjour Patrick,
Dois-je faire cela pour chaque bouton ? J'ai du mal à comprendre. C'est quand même dommage d'achopper là-dessus... Peut-être la fatigue. Faut-il numéroter chaque CommandButton pour avoir une action différente ?
Non bt marche pour tous les boutons
Et ce n'est pas la fatigue c'est un manque de connaissance.
Dans le bt_click tu fais un select case bt.caption par exemple et dans les case tu appelles tes subs ou ce que tu veux
C’est ca le principe d'une classe un seul events pour x boutons
tu pourrais tout aussi bien créer autant de publicevents bt1 bt2 etc mais ca serait absurde autant les créer direct en VBE
Donc bouton créés dynamico=classement d'events module classe ou intra userform comme je viens de te proposer
Non bt marche pour tous les boutons
Et ce n'est pas la fatigue c'est un manque de connaissance.
Dans le bt_click tu fais un select case bt.caption par exemple et dans les case tu appelles tes subs ou ce que tu veux
C’est ca le principe d'une classe un seul events pour x boutons
tu pourrais tout aussi bien créer autant de publicevents bt1 bt2 etc mais ca serait absurde autant les créer direct en VBE
Donc bouton créés dynamico=classement d'events module classe ou intra userform comme je viens de te proposer
N'est-ce pas ce que j'ai commencé à faire avec ce code :
VB:
Private Sub CommandButton_Click()
'Gestion des clics sur les boutons du ruban
Dim Btn As Msforms.CommandButton
'Vérifie que le contrôle actif est bien un bouton
If TypeName(Me.ActiveControl) = "CommandButton" Then
Set Btn = Me.ActiveControl
'Gestion des actions selon le bouton
Select Case Btn.Caption
Case "Enregistrer une recette"
Unload Me
UserForm1.Show
Case "Rechercher une recette"
UserForm2.Show
Case Else
MsgBox "Action non définie pour ce bouton :" & Btn.Caption, vbInformation
End Select
Else
MsgBox "Le contrôle actif n'est pas un bouton", vbExclamation
End If
End Sub
non rien avoir
là ce que tu me montre c'est un events Build du commandbutton
Qui n'a ni queue ni tête
les controls added dynamiqualy n'ont pas d'events
tu peux tourner tant que tu veux ils faut classer
pour crer un event c'est
public withevents bt as msforms.commandbutton
regarde ce que tu fait
VB:
Private Sub CommandButton_Click()
'Gestion des clics sur les boutons du ruban
Dim Btn As Msforms.CommandButton
'Vérifie que le contrôle actif est bien un bouton
If TypeName(Me.ActiveControl) = "CommandButton" Then
Set Btn = Me.ActiveControl
dans l'event build du commandbutton si tant est qu'il existe ce bouton tu test si c'est btn le control actif
comment btn pourrait être le control actif si l'event du commandbutton est declanché a mon avis tu confont
public btn as msforms.commandbutton
et
public withevents btn as msforms.commandbutton
les deux ne sont pas la même chose
le premier tu instancies un commandbutton comme object(donc !!!!! pas d'event)
le second tu instancies un event (en gros une telecomande a distance)
et pour classer plusieurs boutons c'est
public withevents btn as msforms.commandbutton
dim trucbidule(1 to 5) as new nom de la classe ou de l'userform si c'est intra
et l'instanciation quand ils sont créés dynamico
set trucbidule(1).btn=commandbutton1 set trucbidule(2).btn=commandbutton2 set trucbidule(3).btn=commandbutton3 set trucbidule(4).btn=commandbutton4 set trucbidule(5).btn=commandbutton5
et levent
private sub btn_Click()
msgbox btn.name
end sub
Voilà comme tu vois tu étais loin
En gros c'est 5 télécommandes pour 5 boutons
ET IL N'Y A PAS D'AUTRES METHODE
donc non ce n'est pas ce que tu avais commencé a faire dans le sens ou ton event commandbutton ne sert strictement a rien et n'a pas de sens
je t'ai donné la base tu n'a plus qu'a retenir
non rien avoir
là ce que tu me montre c'est un events Build du commandbutton
Qui n'a ni queue ni tête
les controls added dynamiqualy n'ont pas d'events
tu peux tourner tant que tu veux ils faut classer
pour crer un event c'est
public withevents bt as msforms.commandbutton
regarde ce que tu fait
VB:
Private Sub CommandButton_Click()
'Gestion des clics sur les boutons du ruban
Dim Btn As Msforms.CommandButton
'Vérifie que le contrôle actif est bien un bouton
If TypeName(Me.ActiveControl) = "CommandButton" Then
Set Btn = Me.ActiveControl
dans l'event build du commandbutton si tant est qu'il existe ce bouton tu test si c'est btn le control actif
comment btn pourrait être le control actif si l'event du commandbutton est declanché a mon avis tu confont
public btn as msforms.commandbutton
et
public withevents btn as msforms.commandbutton
les deux ne sont pas la même chose
le premier tu instancies un commandbutton comme object(donc !!!!! pas d'event)
le second tu instancies un event (en gros une telecomande a distance)
et pour classer plusieurs boutons c'est
public withevents btn as msforms.commandbutton
dim trucbidule(1 to 5) as new nom de la classe ou de l'userform si c'est intra
et l'instanciation quand ils sont créés dynamico
set trucbidule(1).btn=commandbutton1 set trucbidule(2).btn=commandbutton2 set trucbidule(3).btn=commandbutton3 set trucbidule(4).btn=commandbutton4 set trucbidule(5).btn=commandbutton5
et levent
private sub btn_Click()
msgbox btn.name
end sub
Voilà comme tu vois tu étais loin
En gros c'est 5 télécommandes pour 5 boutons
ET IL N'Y A PAS D'AUTRES METHODE
donc non ce n'est pas ce que tu avais commencé a faire dans le sens ou ton event commandbutton ne sert strictement a rien et n'a pas de sens
je t'ai donné la base tu n'a plus qu'a retenir
Bonjour Patrick,
Merci pour toutes ces explications. Je vais m'y atteler de ce pas. Je viens ici pour apprendre, alors désolé si j'ai des lacunes, je suis déjà satisfait d'avoir pu arriver à créer ce bidule...
A plus tard
voici
c'est la base de chez base dans son ecriture la plus simple on peut utiliser une collection aussi a la place d ela variable boutonsmais on l'ecrit autrement
là je t'ai donné le basique
voici
c'est la base de chez base dans son ecriture la plus simple on peut utiliser une collection aussi a la place d ela variable boutonsmais on l'ecrit autrement
là je t'ai donné le basique
voici
c'est la base de chez base dans son ecriture la plus simple on peut utiliser une collection aussi a la place d ela variable boutonsmais on l'ecrit autrement
là je t'ai donné le basique
re
bien c'est clean
Tu peux simplifier mais si tu comprends mieux les choses comme ça, ça me va
Tu peux supprimer l'ajoute du bouton dans le frame aussi je suppose
Tu vois ce n’est pas compliqué de faire propre
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD