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

Comment accéder à plusieurs toggle button dans une frame ActiveX ?

hzdvd

XLDnaute Nouveau
Bonjour à tous et merci par avance pour l'aide que vous m'apportez.

Evidemment, je suis un débutant...
Je cherche à créer un groupe de contrôles ToggleButton mutuellement exclusifs dans une frame ActiveX sachant que je ne souhaite pas utiliser de Userform car je veux que mes éléments soient intégrés dans ma feuille de calcul.
J'ai trouvé une réponse sur le site microsoft :
XL97: How To Create a Group of Mutually Exclusive ToggleButtons

Tout fonctionne à merveille mais uniquement avec un UserForm.
Même si je suis sûr que la réponse est ultra simple, je bloque sur le code du module si je fais une frame ActiveX sans UserForm !.
Et particulièrement là où le code est en rouge :

'Variable to hold name of ToggleButton that was clicked.
Public Clicked As String

Sub ExclusiveToggleButtons()

Dim Toggle As Control​

'Loop through all of the ToggleButtons on Frame1
For Each Toggle In UserForm1.Frame1.Controls

'If Name of ToggleButton matches name of ToggleButton
'that was clicked...​
If Toggle.Name = clicked Then​
'...select the button
Toggle.Value = True​
Else
'...deselect the button
Toggle.Value = False​
End If​
Next​
End Sub

En d'autres termes, je ne sais pas accéder à ma frame ActiveX qui n'est pas dans un Userform.

Pouvez-vous m'aider ?
De plus je ne sais pas où insérer ce bout de code. Toujours dans un module ?
Et où insérer le code des event MouseUp des ToggleButton dans mon cas ?

Merci !
 

mécano41

XLDnaute Accro
Re : Comment accéder à plusieurs toggle button dans une frame ActiveX ?

Bonjour,

Avec ceci dans le code de la feuille qui porte les boutons ToggleButton1 et ToggleButton2, si tu cliques sur le premier, le second prend la position opposée et inversement (mais ai-je bien compris...). Il n'y a pas de frame.

Code:
Option Explicit

Private Sub ToggleButton1_Click()
If ToggleButton1 = True Then
ToggleButton2 = False
ElseIf ToggleButton1 = False Then
ToggleButton2 = True
End If
End Sub

Private Sub ToggleButton2_Click()
If ToggleButton2 = True Then
ToggleButton1 = False
ElseIf ToggleButton2 = False Then
ToggleButton1 = True
End If
End Sub

Cordialement
 

hzdvd

XLDnaute Nouveau
Re : Comment accéder à plusieurs toggle button dans une frame ActiveX ?

Merci beaucoup pour cette réponse.

Cette méthode ne comportant pas de frame fut ma première approche.
La difficulté de cette méthode est la gestion de mes 264 boutons !
Si je ne peux pas les regrouper en frames, je ne vais probablement pas pouvoir m'y retrouver et le code va probablement être terrible.

J'ai 6 parties dans ma feuille de calcul.
Chaque partie contient 11 éléments et pour chaque élément, il y a 4 boutons...

D'autres idées ?
Dois-je me limiter à un UserForm ?

En tout cas, merci !
David
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Comment accéder à plusieurs toggle button dans une frame ActiveX ?

Bonjour à tous,
La difficulté de cette méthode est la gestion de mes 264 boutons !
ces 264 boutons sont-ils indispensables
cette maladie se nomme Varicelle

J'ai 6 parties dans ma feuille de calcul.
Chaque partie contient 11 éléments et pour chaque élément, il y a 4 boutons...
Pour autant que les 6 parties et que chaque groupe de 11 éléments soient bien disposés sur la feuille
............ je verrais:

1 userform qui permettrais de travailler sur une des 6 parties de la feuille (6 optionbutton dans 1 frame)
11 optionbutton (dans une frame) pour choisir l"élément concerné
4 boutons = 4 procédures à écrire au lieu de 264

à+
Philippe
 

mécano41

XLDnaute Accro
Re : Comment accéder à plusieurs toggle button dans une frame ActiveX ?

...264 boutons, il faut commencer par réfléchir au besoin et voir s'il est réel...

Ensuite tu parles de boutons mutuellement exclusifs mais, dans ton cas, ce serait (je suppose) sur un groupe de 4 boutons.

Les ToggleButtons ont deux positions : TRUE et FALSE qui changent à chaque appui.

donc

- si l'on met l'un quelconque des 4 boutons à TRUE, il faut que les 3 autres passent à FALSE et qu'une certaine action soit lancée
- mais si l'on appuie à nouveau sur le même bouton, on fait quoi? On laisse les boutons en l'état et l'on ne lance aucune action?


Contrairement à ce que tu penses, ce ne sera pas simple. Je pense qu'il faut nommer tes boutons en fonction de leur position ; par ex. un trigramme genre 3B4 ou 3 désigne ta "partie" (de 1 à 6), B désigne ton "élément" ( de 1 à 11 mais je prends un lettre pour faciliter ensuite l'analyse - le Nb. de caractères est fixe) et le 4 désigne le bouton parmi (de 1 à 4). Après, il faut faire un module de classe et analyser la position du bouton pour positionner ensuite les 4 boutons du groupe et lancer les actions nécessaires...

Un Userform te faciliterait certainement la vie...

EDIT : je vois que Phlaurent55 (Bonjour!) penche du même côté...

Cordialement
 

hzdvd

XLDnaute Nouveau
Re : Comment accéder à plusieurs toggle button dans une frame ActiveX ?



Merci Philippe pour ce retour,
étant donné que l'utilisateur devra faire un choix entre 4 options pour chacun des 11 éléments.
Il devra le faire à chaque séance, sur 6 séances sachant que les résultats de ces séances doivent rester visible à l'utilisateur.
Bien sûr que je me suis dit que ces "boutons" devaient être des "option buttons". Le problème est que sur Excel, ces boutons sont petits, trop petits pour mes utilisateurs.
Conclusion : en utilisant des toggle buttons, je peux mettre un caractère de la taille que je veux.

Ceci dit, j'ai bien l'impression qu'il n'existera pas de solution simple à mon besoin. Donc revoir ce besoin pour avoir quelque chose d'intermédiaire...

Bien cordialement,
David
 

hzdvd

XLDnaute Nouveau
Re : Comment accéder à plusieurs toggle button dans une frame ActiveX ?



Merci encore Mécano.
J'avais également analysé le besoin de faire une grille de nommage de mes boutons afin de pouvoir m'y retrouver.
Merci pour ce précieux conseil.

David
 

hzdvd

XLDnaute Nouveau
Re : Comment accéder à plusieurs toggle button dans une frame ActiveX ?

rebonjour,

je viens de trouver ceci qui démontre que mon objectif initial ne pouura être atteint :


la google traduction :

Je considère donc le sujet clos et c'est maintenant à moi de trouver un choix alternatif satisfaisant !
Merci à tous !

David
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Comment accéder à plusieurs toggle button dans une frame ActiveX ?

Re Bonjour,
je viens de trouver ceci qui démontre que mon objectif initial ne pouura être atteint :
Je considère donc le sujet clos et c'est maintenant à moi de trouver un choix alternatif satisfaisant !

David, je pense que tu laisses tomber les bras un peu trop vite d'autant plus que tu ne nous a pas montré le fichier et expliqué le fonctionnement attendu
il n'est pas rare de voir l'impossible se réaliser sur ce forum

à+
Philippe
 

Si...

XLDnaute Barbatruc
Re : Comment accéder à plusieurs toggle button dans une frame ActiveX ?

salut

...
David, je pense que tu laisses tomber les bras un peu trop vite d'autant plus que tu ne nous a pas montré le fichier et expliqué le fonctionnement attendu
il n'est pas rare de voir l'impossible se réaliser sur ce forum
...

je partage ton point de vue Philippe , d'ailleurs voici un exemple de ce que l'on peut faire sans aucun contrôle.
 

Pièces jointes

  • 264 faux boutons (bascule) hors Usf.xlsm
    26.1 KB · Affichages: 80
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…