OVH Cloud OVH Cloud

Bouton bascule à 3 positions

7 réponses
Avatar
stephanie thibault
Bonjour,
Je voudrais cr=E9er un bouton qui ressemblerait =E0 un bouton bascule mais
=E0 3 positions.
Je voudrais pouvoir faire:
- je clique 1 fois, le bouton prend la valeur "A"
- je clique 2 fois, le bouton prend la valeur "B"
- je clique 3 fois, le bouton prend la valeur "
Est-ce que =E7a existe ?
Merci

7 réponses

Avatar
MichD
Bonjour,

Tu peux ajouter un bouton de commande émanant de la boîte à outils "contrôle"
et en double-cliquant sur le bouton, tu copies cette macro en prenant soin de
modifier le nom de bouton de commande dans la procédure.
Au moment d'ajouter le bouton, tu peux définir la propriété "Caption" = "Départ"

'------------------------------------------------------
Private Sub CommandButton1_Click()
Static État As Integer
Select Case État
Case 0
Me.CommandButton1.Caption = "Action1"
MsgBox "Action1"
État = État + 1
'Code à exécuter
Case 1
Me.CommandButton1.Caption = "Action2"
MsgBox "Action2"
État = État + 1
'Code à exécuter
Case 2
Me.CommandButton1.Caption = "Départ"
MsgBox "Départ"
État = 0
'Code à exécuter
End Select
End Sub
'------------------------------------------------------


MichD
--------------------------------------------
Avatar
stephanie thibault
On 10 mai, 15:45, "MichD" wrote:
Bonjour,

Tu peux ajouter un bouton de commande manant de la bo te outils "contr le "
et en double-cliquant sur le bouton, tu copies cette macro en prenant soi n de
modifier le nom de bouton de commande dans la proc dure.
Au moment d'ajouter le bouton, tu peux d finir la propri t "Caption" = "D part"

'------------------------------------------------------
Private Sub CommandButton1_Click()
Static tat As Integer
Select Case tat
    Case 0
        Me.CommandButton1.Caption = "Action1"
        MsgBox "Action1"
        tat = tat + 1
        'Code ex cuter
    Case 1
        Me.CommandButton1.Caption = "Action2"
        MsgBox "Action2"
        tat = tat + 1
         'Code ex cuter
    Case 2
        Me.CommandButton1.Caption = "D part"
        MsgBox "D part"
        tat = 0
         'Code ex cuter
End Select
End Sub
'------------------------------------------------------

MichD
--------------------------------------------



Merci, ça marche.
J'aimerais faire la même chose pour les 60 boutons de mon formulaire.
Comment puis-je faire ?
Une boucle genre
for i=1 to 60
private sub CommandButton & i_Click()
...
Mais ça ne marche pas !
Avatar
MichD
C'est plus simple si tu utilises un module de classe !

Voici un fichier exemple :

http://cjoint.com/?AEkqWQy6dYq

Maintenant reste à voir ce que chaque bouton doit faire de particulier ?



MichD
--------------------------------------------
"stephanie thibault" a écrit dans le message de groupe de discussion :


On 10 mai, 15:45, "MichD" wrote:
Bonjour,

Tu peux ajouter un bouton de commande manant de la bo te outils "contr le"
et en double-cliquant sur le bouton, tu copies cette macro en prenant soin de
modifier le nom de bouton de commande dans la proc dure.
Au moment d'ajouter le bouton, tu peux d finir la propri t "Caption" = "D part"

'------------------------------------------------------
Private Sub CommandButton1_Click()
Static tat As Integer
Select Case tat
Case 0
Me.CommandButton1.Caption = "Action1"
MsgBox "Action1"
tat = tat + 1
'Code ex cuter
Case 1
Me.CommandButton1.Caption = "Action2"
MsgBox "Action2"
tat = tat + 1
'Code ex cuter
Case 2
Me.CommandButton1.Caption = "D part"
MsgBox "D part"
tat = 0
'Code ex cuter
End Select
End Sub
'------------------------------------------------------

MichD
--------------------------------------------



Merci, ça marche.
J'aimerais faire la même chose pour les 60 boutons de mon formulaire.
Comment puis-je faire ?
Une boucle genre
for i=1 to 60
private sub CommandButton & i_Click()
...
Mais ça ne marche pas !
Avatar
stephanie thibault
On 10 mai, 16:49, "MichD" wrote:
C'est plus simple si tu utilises un module de classe !

Voici un fichier exemple :

http://cjoint.com/?AEkqWQy6dYq

Maintenant reste à voir ce que chaque bouton doit faire de particulier ?

MichD
--------------------------------------------
"stephanie thibault"  a écrit dans le message de groupe de discussion :


On 10 mai, 15:45, "MichD" wrote:



> Bonjour,

> Tu peux ajouter un bouton de commande manant de la bo te outils "contr le"
> et en double-cliquant sur le bouton, tu copies cette macro en prenant s oin de
> modifier le nom de bouton de commande dans la proc dure.
> Au moment d'ajouter le bouton, tu peux d finir la propri t "Caption" = "D part"

> '------------------------------------------------------
> Private Sub CommandButton1_Click()
> Static tat As Integer
> Select Case tat
>     Case 0
>         Me.CommandButton1.Caption = "Action1"
>         MsgBox "Action1"
>         tat = tat + 1
>         'Code ex cuter
>     Case 1
>         Me.CommandButton1.Caption = "Action2"
>         MsgBox "Action2"
>         tat = tat + 1
>          'Code ex cuter
>     Case 2
>         Me.CommandButton1.Caption = "D part"
>         MsgBox "D part"
>         tat = 0
>          'Code ex cuter
> End Select
> End Sub
> '------------------------------------------------------

> MichD
> --------------------------------------------

Merci, ça marche.
J'aimerais faire la même chose pour les 60 boutons de mon formulaire.
Comment puis-je faire ?
Une boucle genre
for i=1 to 60
      private sub CommandButton & i_Click()
      ...
Mais ça ne marche pas !



Mes boutons sont indépendants.
Mon formulaire permet à l'utilisateur de saisir 60 paires.
Le premier caractère est un nombre entre 1 et 60.
Le deuxième est A ou B ou "".
Donc je voudrais que pour chaque deuxième caractère, s'il veut le
renseigner il clique sur le bouton une, deux ou trois fois, ce qui
correspond à A, B, "".
Donc je vais recopier 60 fois la macro que tu m'as données dans ton
premier message, et je voulais savoir si je pouvais éviter de recopier
60 fois la même chose.

Merci
Avatar
MichD
Je t'ai répondu dans le message précédent.

Tu dois utiliser un module de classe, le fichier exemple démontre comment.

Dans le module de classe "MesBoutons", la procédure du premier message est là.
Tu l'as modifié comme si ce n'était que pour un bouton.

Tu utilises cet objet "GroupeBouton" du module de classe comme si c'était un
bouton de commande... et que tu codais en employant Commandbutton1....

Ce code va s'appliquer à tous les boutons du formulaire.

Pour que cela fonctionne, tu ajoutes un module de classe à ton projet
et tu le renommes du même nom que celui dans mon exemple en utilisant
la propriété "Name" du module de classe.

Tu utilises le même nom des variables de mon classeur exemple dans ton classeur.
en quelques minutes, tu as tout le code dont tu auras besoin et de manière concise...

C'est trop long ici pour t'expliquer ce qu'est un module de classe, mais tu peux quand
même l'utiliser sans vraiment tout comprendre !

MichD
--------------------------------------------
"stephanie thibault" a écrit dans le message de groupe de discussion :


On 10 mai, 16:49, "MichD" wrote:
C'est plus simple si tu utilises un module de classe !

Voici un fichier exemple :

http://cjoint.com/?AEkqWQy6dYq

Maintenant reste à voir ce que chaque bouton doit faire de particulier ?

MichD
--------------------------------------------
"stephanie thibault" a écrit dans le message de groupe de discussion :


On 10 mai, 15:45, "MichD" wrote:



> Bonjour,

> Tu peux ajouter un bouton de commande manant de la bo te outils "contr le"
> et en double-cliquant sur le bouton, tu copies cette macro en prenant soin de
> modifier le nom de bouton de commande dans la proc dure.
> Au moment d'ajouter le bouton, tu peux d finir la propri t "Caption" = "D part"

> '------------------------------------------------------
> Private Sub CommandButton1_Click()
> Static tat As Integer
> Select Case tat
> Case 0
> Me.CommandButton1.Caption = "Action1"
> MsgBox "Action1"
> tat = tat + 1
> 'Code ex cuter
> Case 1
> Me.CommandButton1.Caption = "Action2"
> MsgBox "Action2"
> tat = tat + 1
> 'Code ex cuter
> Case 2
> Me.CommandButton1.Caption = "D part"
> MsgBox "D part"
> tat = 0
> 'Code ex cuter
> End Select
> End Sub
> '------------------------------------------------------

> MichD
> --------------------------------------------

Merci, ça marche.
J'aimerais faire la même chose pour les 60 boutons de mon formulaire.
Comment puis-je faire ?
Une boucle genre
for i=1 to 60
private sub CommandButton & i_Click()
...
Mais ça ne marche pas !



Mes boutons sont indépendants.
Mon formulaire permet à l'utilisateur de saisir 60 paires.
Le premier caractère est un nombre entre 1 et 60.
Le deuxième est A ou B ou "".
Donc je voudrais que pour chaque deuxième caractère, s'il veut le
renseigner il clique sur le bouton une, deux ou trois fois, ce qui
correspond à A, B, "".
Donc je vais recopier 60 fois la macro que tu m'as données dans ton
premier message, et je voulais savoir si je pouvais éviter de recopier
60 fois la même chose.

Merci
Avatar
stephanie thibault
On 10 mai, 17:41, "MichD" wrote:
Je t'ai répondu dans le message précédent.

Tu dois utiliser un module de classe,  le fichier exemple démontre co mment.

Dans le module de classe "MesBoutons", la procédure du premier message est là.
Tu l'as modifié comme si ce n'était que pour un bouton.

Tu utilises cet objet "GroupeBouton" du module de classe comme si c'éta it un
bouton de commande... et que tu codais en employant Commandbutton1....

Ce code va s'appliquer à tous les boutons du formulaire.

Pour que cela fonctionne, tu ajoutes un module de classe à ton projet
et tu le renommes du même nom que celui dans mon exemple en utilisant
la propriété "Name" du module de classe.

Tu utilises le même nom des variables de mon classeur exemple dans ton classeur.
en quelques minutes, tu as tout le code dont tu auras besoin et de mani ère concise...

C'est trop long ici pour t'expliquer ce qu'est un module de classe, mais tu peux quand
même l'utiliser sans vraiment tout comprendre !

MichD
--------------------------------------------
"stephanie thibault"  a écrit dans le message de groupe de discussion :


On 10 mai, 16:49, "MichD" wrote:



> C'est plus simple si tu utilises un module de classe !

> Voici un fichier exemple :

>http://cjoint.com/?AEkqWQy6dYq

> Maintenant reste à voir ce que chaque bouton doit faire de particulie r ?

> MichD
> --------------------------------------------
> "stephanie thibault"  a écrit dans le message de groupe de discussi on :
>

> On 10 mai, 15:45, "MichD" wrote:

> > Bonjour,

> > Tu peux ajouter un bouton de commande manant de la bo te outils "cont r le"
> > et en double-cliquant sur le bouton, tu copies cette macro en prenant soin de
> > modifier le nom de bouton de commande dans la proc dure.
> > Au moment d'ajouter le bouton, tu peux d finir la propri t "Caption" = "D part"

> > '------------------------------------------------------
> > Private Sub CommandButton1_Click()
> > Static tat As Integer
> > Select Case tat
> >     Case 0
> >         Me.CommandButton1.Caption = "Action1"
> >         MsgBox "Action1"
> >         tat = tat + 1
> >         'Code ex cuter
> >     Case 1
> >         Me.CommandButton1.Caption = "Action2"
> >         MsgBox "Action2"
> >         tat = tat + 1
> >          'Code ex cuter
> >     Case 2
> >         Me.CommandButton1.Caption = "D part"
> >         MsgBox "D part"
> >         tat = 0
> >          'Code ex cuter
> > End Select
> > End Sub
> > '------------------------------------------------------

> > MichD
> > --------------------------------------------

> Merci, ça marche.
> J'aimerais faire la même chose pour les 60 boutons de mon formulaire.
> Comment puis-je faire ?
> Une boucle genre
> for i=1 to 60
>       private sub CommandButton & i_Click()
>       ...
> Mais ça ne marche pas !

Mes boutons sont indépendants.
Mon formulaire permet à l'utilisateur de saisir 60 paires.
Le premier caractère est un nombre entre 1 et 60.
Le deuxième est A ou B ou "".
Donc je voudrais que pour chaque deuxième caractère, s'il veut le
renseigner il clique sur le bouton une, deux ou trois fois, ce qui
correspond à A, B, "".
Donc je vais recopier 60 fois la macro que tu m'as données dans ton
premier message, et je voulais savoir si je pouvais éviter de recopier
60 fois la même chose.

Merci



Merci. Et après je voudrais récupérer le libellé de chaque bouton,
mais mon code ne marche pas:
Toto = "CommandButton" & i.Value
Avatar
MichD
Si tu ne veux pas utiliser un module de classe,
voici un autre fichier exemple qui n'utilise pas de module de classe

http://cjoint.com/?AElm7TIRjBO

MichD
--------------------------------------------