Module de classe et set Focus sur bouton

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 !

carlos

XLDnaute Impliqué
Bonjour

J'ai plusieur bouton de commande nommés "F1P1", "F1P2", "F1P31" ... "F1P4"

j'utilise un module de classe pour lancer une macro spécifique au bouton.

Ca marche bien si je clique sur le bouton.

Le code suivant me permet de prendre le focus d'un bouton :

Tournoi.Controls("F1P" & a).SetFocus

Ca marche aussi.

Mon probleme est que j'aimerai un code qiui me permet de lancer la macro liée au bouton , du genre :

cmd_Click
ou
Userform1.Controls("F1P" & a)_Click

Rq : "cmd " est le module de classe


Merci
 
Re : Module de classe et set Focus sur bouton

Bonjour carlos, MichelXLD, BOISGONTIER, MJ13,

J'ai suivi ce fil et rien compris....

Pourquoi passer par une Combo pour lancer un bouton qui va ensuite simuler la touche Enter.... ?

Mais, comme j'aime bien comprendre et apprendre, je me permets.

Bons voeux à tous.

Jean-Pierre
 
Re : Module de classe et set Focus sur bouton

Bonjour à tous et meilleurs voeux pour cette nouvelle année

Comme Jean-Pierre, vois pas trop le pourquoi de passer par un combo. Sinon pour délencher la classe, essaye peut être les codes ci dessous :

dans le module de classe :
Code:
Option Explicit
Public WithEvents GrBtn As MSForms.CommandButton
[B][COLOR="Red"]Public [/COLOR][/B] Sub GrBtn_Click()
  MsgBox GrBtn.Caption
End Sub

dans le module de l'USF :

Code:
Option Explicit
Dim Btn(1 To 4) As New ClasseBoutons
Private Sub ComboBox1_Change()
Controls("Bouton" & ComboBox1.Value).SetFocus
[B][COLOR="red"]Call Btn(ComboBox1.Value).GrBtn_Click[/COLOR][/B]
End Sub
Private Sub UserForm_Initialize()
Dim b As Byte
  For b = 1 To 4
     Set Btn(b).GrBtn = Me("Bouton" & b)
     ComboBox1.AddItem b
  Next b
End Sub

bon après midi
@+

Edition : b n'était pas déclaré lors de l'initialisation...
2 ème édition : aarf, je n'avais pas mis en gras le bon "public"
 
Dernière édition:
Re : Module de classe et set Focus sur bouton

Re bonjour Pierrot et JP

Meilleurs voeux à tous.

Moi , non plus je ne voyais pas trop le pourquoi comment de la chose. Mais cela me paraissait intéressant surtout que les modules de classes, même si je n'y connais pas grand chose, permettent en général de ne pas avoir à programmer chaque élément d'un USF par exemple.

Merci Pierrot pour ton code qui devrait plaire à Carlos.
 
Dernière édition:
Re : Module de classe et set Focus sur bouton

Bonjour,

et meilleurs vœux à tous

Carlos, en supposant que toutes tes macros différentes se nomment "macro1", "macro2", etc...

Code:
Sub macro1()
MsgBox "vous avez appuyé sur le bouton 1"
End Sub
Sub macro2()
MsgBox "vous avez appuyé sur le bouton 2"
End Sub
Sub macro3()
MsgBox "vous avez appuyé sur le bouton 3"
End Sub
Sub macro4()
MsgBox "vous avez appuyé sur le bouton 4"
End Sub

dans le module de classe, tu mets ceci :

Code:
Private Sub GrBtn_Click()
  Application.Run "macro" & Right(GrBtn.Caption, 1)
End Sub
 
Re : Module de classe et set Focus sur bouton

Bonjour BHBH.


Et bien oui, il me semblait bien que cela pourrait être pour lancer une macro en fonction de chaque bouton et pour avoir le choix entre une combobox ou un bouton.

Mais comme tu viens de donner la solution.

Merci BHBH. Vive la contribution de chacun (en plus cela m'a éviter de chercher, par contre j'ai pas testé, je pense que tu l'as fait).

Maintenant, attendons Carlos.
 
Re : Module de classe et set Focus sur bouton

Bonsoir MichelXLD, BOISGONTIER, MJ13,JeanPierre,bhbh,pierrot 93 et le forum


Merci à tous pour votre interet pour ce sujet.

Je n'ai pas eu le temps de tester vos propositions mais à la première lecture en diagonale , il me parait important de donner le sens du combobox.
Je suis d'accord , ici il ne sert à rien sauf à montrer que chaque bouton est commandé en aval par des evenements d'origine différents.
Combobox1.value = 1 alors evenement 1
Combobox1.value = 2 alors evenement 2
etc...
L'exemple du classeur (2) est très proche de mon projet (Il ne faut pas regarder de tres pres l'interet du combobox1 .

Dans mon projet réel , je n'ai pas de combo ( Eh oui!).......

En fait je gere un tournoi avec 10 matchs simultanés:
La saisie des résultats se fait dans 2 textbox (joueur A et joueur B) à l'aide d'une série de 25 boutons numerotés de 0 à 25 (points mini et maxi).
Quand je clique sur le bouton 3 , la valeur 3 se met dans le textbox du joueur A puis prend le focus du textbox du second joueur B.Je reclique sur le bouton 25 par exemple pour placer le chiffre 25 dans le second textbox.
C'est à ce moment que le focus est mis sur un bouton qui enregistre le match (Le fameux BoutonClasse).
Actuellement , je suis obligé d'utiliser la touche entrée ou de cliquer sur le boutonclasse pour valider ce match et ainsi lancer le module de classe (BoutonClasse).

Une fois ce boutonClasse cliqué , j'ai un ensemble d'événements qui me permettent d'aller chercher dans telle ou telle poule , le prochain match (Joueur C contre joueur D par exemple).
Dans le module de classe , l'expression ClasseBoutons_Click n'est pas reconnu ( En tout cas moi je ne sais pas la faire reconnaitre) et c'est pour ca que j'ai besoin de vous.
Comme pour le classeur(2)
'Procédure quand le bouton a le focus
Userform1.Controls("Bouton" & Combobox1.value)_Click ----> Qui n'est pas reconnu comme classe
Merci à tous , j'espère avoir été plus clair dans mes explications.

Carlos
 
Re : Module de classe et set Focus sur bouton

Re

J'ai vraiment apprécier l'investissement de chacun sur ce fil.

Je pense que mon premier post n'était pas tres clair et je suis désolé de vous avoir fait perdre du temps .Je vois très bien sur le dernier post de MJ13 que mon probleme n'a pas été clairement identifié.

En tout cas , j'ai enfin la solution à mon problème grâce à MJ13.

Application.SendKeys ("~"), True ( me permet de faire mon clique tant désiré sur mon bouton)


Ca marche très bien une fois que le bouton est en setfocus.


Encore merci et excellente année à tous.

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

Retour