Macro pour changer l'intitulé d'un bouton
rasoir 74
-
rasoir 74 -
rasoir 74 -
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
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:
- Macro pour changer l'intitulé d'un bouton
- Changer dns - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Changer carte graphique - Guide
- Changer extension fichier - Guide
- Changer wifi chromecast - Guide
14 réponses
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
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
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
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
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
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
Bonjour,
Une autre solution ?
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)
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)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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
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
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.
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.
AH ! intéressant !
changer la couleur du bouton en fonction de sa valeur ?
je prends ! je peux avoir le code STP
merci encore
changer la couleur du bouton en fonction de sa valeur ?
je prends ! je peux avoir le code STP
merci encore
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
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
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 ?
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 ?
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
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
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 ..
Dans chaque code des boutons..(exemple pour 2 boutons mais tu peu en ajouter autant que tu veux)
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)
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)