Microsoft 365 Aide pour terminer un code

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 !

NONO14

XLDnaute Impliqué
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
 

Pièces jointes

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
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 Liste de choix...
Réponses
8
Affichages
216
Réponses
4
Affichages
159
Réponses
5
Affichages
340
Réponses
32
Affichages
1 K
Réponses
32
Affichages
1 K
Réponses
3
Affichages
240
Retour