Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

une même macro pour plusieurs boutons

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 !

loic_nl

XLDnaute Nouveau
Bonjours,
Un petit problème assez simple je pense, mais dont je ne trouve pas la solution.

J'ai une macro identique qui doit etre utilisé par plusieurs boutons (au total 51).
J'utilise des checkBox, qui vont de 1 à 51.

la macro ci-dessous:

Private Sub CheckBox1_Click()

Select Case CheckBox1.Value
Case True: CheckBox1.Caption = "C"
Case False: CheckBox1.Caption = " "
Case Else: CheckBox1.Caption = " "
End Select

If CheckBox1.Caption = "C" Then
Range("P12").Select
ActiveCell.FormulaR1C1 = "C"
End If

End Sub



Merci pour votre aide.
 
Re : une même macro pour plusieurs boutons

bonsoir

tu vas devoir en faire 50 pour le clic !
sinon c'est plus complexe avec module de classe !?
et passer le control avec tes données et le range à un seul Sub
exemple

Code:
Private Sub CheckBox1_Click()
TraiteCheckBox CheckBox1, "P12"
End Sub
Private Sub CheckBox2_Click()
TraiteCheckBox CheckBox2, "P13" ' < !? à voir
End Sub
'Private Sub CheckBox3_Click() ...

Private Sub TraiteCheckBox(CB As Control, R$)
Select Case CB.Value
  Case True: CB.Caption = "C": Range(R$).FormulaR1C1 = "C"
  Case Else: CB.Caption = " ": Range(R$) = "" ' < !? je sais pas !?
End Select
End Sub
 
Re : une même macro pour plusieurs boutons

bonjour,

application.caller te renvoie le nom de l'évenement qui a déclenché la macro
Si tu y mets un chiffre en derniere position, tu peux extraire ce chiffre et l'utiliser dans une seule macro qui fonctionnera pour tous les boutons ...
 
Re : une même macro pour plusieurs boutons

Bonjour à tous

attention, il me semble bien que pour un contrôle de la "boite à outils contrôles", application.caller renverra un message d'erreur...

bonne journée
@+
 
Re : une même macro pour plusieurs boutons

bonjour

effectivement Application.Caller ça ne marche pas !
il garde le premier appel !
exemple le nom du bouton que a lancé un userform
mais pas ses contrôles !?
ou clic une page (de multipage) pas quand clic ses contrôles !?
j'avais déjà essayé car confronté à ce genre de problème (ctrl en nombtre)
que l'on peut simplifié par un module de classe et événement !
si je retrouve mon exemple je le fais parvenir !?
 
Re : une même macro pour plusieurs boutons

Salut soenda. C'est un exemple pour un bouton, que je vais répéter 51 fois.

Sinon j'ai trouvé plus simple, il faut déclarer le numéro de la box comme variable que tu fais varié de 1 à 51, plus quelque bidouillage et sa a l'air de fonctionner.

merci pour votre aide.
 
Re : une même macro pour plusieurs boutons

Sinon une autre question pour les checkBox.
J'ai 50 checkbox et aprés avoir sélectionné quelque'une, comment je peux faire pour toutes les réinitialiser.

Merci,
buen dia.
Hasta luego.
Loic.
 
Re : une même macro pour plusieurs boutons

Bonjour le fil, Roland, Mutzik, pierrot, loic

On peut utiliser les cellules liées (propriétés "ControlSource", pour les CheckBox), très pratique et très simple d'utilisation.

Ex: Si les 50 CheckBox sont liés à la plage Feuil3.[A1:A50],
pour mettre les 50 CheckBox à Faux, on écrit :
Code:
Feuil3.[A1:A50] = False
A plus
 

Pièces jointes

  • Capturer.JPG
    26.4 KB · Affichages: 118
  • Capturer.JPG
    26.4 KB · Affichages: 118
  • Capturer.JPG
    26.4 KB · Affichages: 117
- 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

Réponses
7
Affichages
308
Réponses
4
Affichages
519
Réponses
6
Affichages
510
Réponses
2
Affichages
561
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…