Macro pour changer l'intitulé d'un bouton

Fermé
rasoir 74 - 10 déc. 2010 à 21:11
 rasoir 74 - 12 déc. 2010 à 18:25
Bonjour,
voilà, je poste de nouveau mon sujet :
est-il possible de changer l'intitulé d'un bouton de sorte que au début il soit 0.........je clique dessus, il devient 1.............je reclique dessus, il devient 2, etc...?
j'attends vos propositions
merci


A voir également:

14 réponses

Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 082
10 déc. 2010 à 22:22
Salut,

C'est mieux d'avoir ouvert une discussion séparée.
en supposant que ton bouton ou plus exactement un CommandButton et qu'il soit le premier CommandButton1

deux propositions simples
la première, on se sert d'une cellule pour créer un compteur exemple A1 que l'on peut masquer en mettant le bouton dessus

Private Sub CommandButton1_Click()
[A1] = [A1] + 1
CommandButton1.Caption = [A1]
End Sub

ou ce code, on place la variable compteur au dessus du code

Private compteur As Long
Private Sub CommandButton1_Click()
compteur = compteur + 1
CommandButton1.Caption = compteur
End Sub
0
Mike-31, tu es génial !
c'est exactement ce que je cherchais
ça correspond tout à fait à mes attentes

je suppose que pour que le bouton revienne à 0, il faut que je crée un autre bouton avec une macro d'effacement ou y-a-t-il une autre solution ?

merci encore
0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 082
10 déc. 2010 à 23:56
Re,

Tout dépend du code que tu as retenu, pour le premier, compteur dans une cellule exemple en A1, il suffit de saisir simplement -1 dans la cellule et clic sur le bouton pour le mettre à zéro.
Si la cellule est caché sous le bouton Atteindre saisir la référence cellule A1 et saisir -1 et clic sur le bouton pour le mettre à zéro

ou on crée un deuxième bouton

Private Sub CommandButton2_Click()
CommandButton1.Caption = 0
[A1] = 0
End Sub

Si tu retiens le code compteur il faut créer un deuxième bouton

Private Sub CommandButton2_Click()
CommandButton1.Caption = 0
compteur = 0
End Sub
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 11/12/2010 à 03:24
Bonjour,
Une autre solution ?
Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) 
Static Num As Integer 
    If Button = 1 Then 
        If Shift = 0 Then
            Num = Num + 1
        ElseIf Num > 0 Then
            Num = Num - 1
        End If
    Else 
        Num = 0 
    End If 
    CommandButton1.Caption = Num 
End Sub

Clic gauche incrémente la variable.
Clic droit remet à zéro.
Clic gauche + Ctrl ou Maju décrémente la variable
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 082
11 déc. 2010 à 11:52
Re,

Pour éviter un effacement accidentel avec un seul bouton et une boite de dialogue. un clic le compteur est croissant, double clic une boite de dialogue propose l'effacement

Private compteur As Long
Private Sub CommandButton1_Click()
compteur = compteur + 1
CommandButton1.Caption = compteur
End Sub


Private Sub CommandButton1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
MyValue = MsgBox("Souhaitez vous continuer", _
vbYesNo + vbCritical + vbDefaultButton1, "Le compteur va être remis à zéro ?")
If MyValue = vbYes Then
CommandButton1.Caption = 0
compteur = 0
End If
End Sub

la msgbox peut également être ajouté à l'excellent code de Lermite que je salue
0
OH la que de propositions !!!!
je regarde tout ça et je vous tiens au courant.

petite question : si je veux avoir un bouton de couleur différente que le gris, je suppose qu'il faut un activex et non un bouton de commande ?
je ne crois pas que l'on puisse changer la couleur d'un bouton de commande? ou alors je me trompe?
merci
0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 082
Modifié par Mike-31 le 11/12/2010 à 16:17
Re,

Il est tout à fait possible de changer la couleur du bouton, lorsque tu es en mode création, double clic sur le bouton ou clic droit et visualiser le code
cherches Backcolor et choisis une couleur sur la palette.
il est également possible de changer la couleur du bouton, dans ton cas en fonction de sa valeur en ajoutant une ligne de code par conditionnelle
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
AH ! intéressant !
changer la couleur du bouton en fonction de sa valeur ?
je prends ! je peux avoir le code STP
merci encore
0
pour lermite222,
le code ma plait beaucoup, mais comme je veux créer des graphiques à partir de la valeur sur le bouton, je m'aperçois qu'il n'est pas relier à une cellule; donc je ne peux pas me servir de la valeur pour les graphs.
PS : j'intègre plusieurs boutons dans mon application !
merci
0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 082
11 déc. 2010 à 18:00
Re,

oui mais je ne suis pas devin, comme pour la mise en forme conditionnelle il faut avoir des bornes, exemple de 0 à 5 la couleur de 6 à 10 la couleur etc ...
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 11/12/2010 à 18:23
Bonjour Mike,

Rasoir !! : Tu peu ajouter...
 End If  
    CommandButton1.Caption = Num  
    [A1] = Num 
End Sub
0
re,
tu n'es pas devin............dommage par les temps qui courts; ça pourrait servir :)
non sérieusement, peu importe les couleurs que tu emploies, j'adapterais.
ai-je compris ta question ?
en fonction des boutons j'adapterais.
merci
0
pour lermite222

merci beaucoup de la réponse, ça va me servir.
je vois si j'ai d'autres choses qui me pose problème
et je poste
merci encore
0
lermitte222
petite question : j'ai plusieurs boutons programmés comme tu me l'a conseillé.
maintenant, comment puis je faire pour que tous reviennent à 0, en appuyant sur 1 seul par exemple.
je ne sais pas encore si :
* il faudrait appuyer sur 1 pour remettre à 0 tous
* ou si un bouton me permettrait cela

qu'en penses-tu ?
0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 082
11 déc. 2010 à 21:33
Re,

ci dessous trois codes, deux pour deux bouton compteur avec changement de couleur et un pour remise à zéro des deux autres

Private compteur As Long
'la variable compteur est placé hors code
Private Sub CommandButton1_Click()
compteur = compteur + 1
CommandButton1.Caption = compteur
'Conditionnelle couleur bouton
If CommandButton1.Caption >= 0 Then CommandButton1.BackColor = &H8000000F
If CommandButton1.Caption >= 3 Then CommandButton1.BackColor = &HFFFF&
If CommandButton1.Caption >= 6 Then CommandButton1.BackColor = &HFF&
End Sub


Private Sub CommandButton2_Click()
compteur = compteur + 1
CommandButton2.Caption = compteur
If CommandButton2.Caption >= 0 Then CommandButton2.BackColor = &H8000000F
If CommandButton2.Caption >= 3 Then CommandButton2.BackColor = &HFFFF&
If CommandButton2.Caption >= 6 Then CommandButton2.BackColor = &HFF&
End Sub

Private Sub CommandButton3_Click()
'Macro remet compteurs à zéro
CommandButton1.Caption = 0
compteur = 0
CommandButton1.BackColor = &H8000000F
CommandButton2.Caption = 0
compteur = 0
CommandButton2.BackColor = &H8000000F
End Sub
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 12/12/2010 à 01:27
Re,
Mike : Un petit bug dans ton dernier exemple.
Pour que ton exemple fonctionne il faut autant de variable que de bouton :-)

rasoir :
Pour éviter d'ajouter un bouton de remise à zéro
Dans le haut du module coller ..
Dim Coul As Long 

Sub RAZ() 
Dim Obj As OLEObject 
Dim Cel As Range, Plage As Range 
    'boucle sur les objets de la Feuil1 
    For Each Obj In Sheets("Feuil1").OLEObjects 
        'verifie s'il s'agit d'un bouton 
        If TypeOf Obj.Object Is MSForms.CommandButton Then 
            Obj.Object.Caption = "0" 
            Obj.Object.BackColor = &H8000000F 
        End If 
    Next Obj 
    Set Plage = Range("A1:B1") 'Adapter la plage aux boutons 
    For Each Cel In Plage 
        Cel = 0 
    Next Cel 
End Sub 

Private Function BT(ByVal Button As Integer, ByVal Shift As Integer, Num As Integer) As Integer 
    If Button = 1 Then 
        If Shift = 0 Then 
            Num = Num + 1 
        ElseIf Num > 0 Then 
            Num = Num - 1 
        End If 
    Else 
        Num = 0 
        If Shift <> 0 Then RAZ 
    End If 
    BT = Num 
    Select Case Num 
        Case Is >= 6: Coul = &HFF& 
        Case Is >= 3: Coul = &HFFFF& 
        Case Is >= 0: Coul = &H8000000F 
    End Select 
End Function


Dans chaque code des boutons..(exemple pour 2 boutons mais tu peu en ajouter autant que tu veux)

Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) 
    CommandButton1.Caption = BT(Button, Shift, Val(CommandButton1.Caption)) 
    CommandButton1.BackColor = Coul 
    [A1] = CommandButton1.Caption 
End Sub 

Private Sub CommandButton2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) 
    CommandButton2.Caption = BT(Button, Shift, Val(CommandButton2.Caption)) 
    CommandButton2.BackColor = Coul 
    [B1] = CommandButton2.Caption 
End Sub

Clic gauche incrémente le bouton.
Clic droit remet le bouton à zéro.
Clic gauche + Ctrl ou Maju décrémente le bouton
Clic droit + Ctrl ou Maju remet TOUT les boutons à zéro.
Tu dis,
Edit : au cas ou c'est pas clair, un exemple avec 4 boutons
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
ok, merci à tous les deux
je vérifie ça !
petite question : y a- t -il un moyen pour paramétrer la taille des boutons ?
quand on en a beaucoup à faire et que l'on veut qu'ils soient tous pareils en terme de taille, peut-on paramétrer cela ?

merci d'avance
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
12 déc. 2010 à 15:27
Si tu a beaucoup de boutons
0
oh la !
c'est un peu compliqué pour moi, tout ça !
il faut que je vois
merci en tout cas
0