Répéter une macro du bouton n1 au bouton n+10
Bonjour,
Je suis enseignant d'EPS et nouveau en vba, je cherche à mettre au point une feuille d'appel tactile ( Il faut vivre avec son temps). Je suis parvenu à arranger ou établir les différentes macro dont j'avais besoin (pour la majorité en m'aidant de vos apports, milles merci), cependant je suis certain qu'il doit être possible d'ajouter quelque chose au code pour qu'il se répète pour chaque bouton sans avoir à modifier manuellement les valeurs correspondantes, d'autant que vu le nombre de bouton ce serait un travail fort fastidieux!!
Pour plus de clarté je vous joins une de mes formules.
Je souhaiterai que cette dernière s'applique du bouton 1 au bouton 455.
Private Sub ToggleButton1_Change()
If ToggleButton1 Then
ToggleButton1.BackColor = &HFF& 'Vert
ToggleButton1.Caption = "ABSENT"
Else
ToggleButton1.BackColor = &HFF00& 'Rouge
ToggleButton1.Caption = "PRESENT"
End If
End Sub
Private Sub ToggleButton1_Click()
If ToggleButton1.Value Then
Range("O3").Select
ActiveCell = ActiveCell + 1
Else
Range("O3").Select
ActiveCell = ActiveCell - 1
End If
End Sub
Au besoin je vous joins le fichier complet pour une meilleur appréhension du rendu que je souhaite obtenir.
D'avance merci de votre contribution!
Sportivement! ^^
Bonsoir,
Regarde le fichier joint.
Dans celui-ci, 2 codes :
- 1 code d'initialisation, lancé à l'ouverture du fichier, ou lorsque tu cliques sur le bouton Init
- et 1 code utilisant un module de classes ( Il faut vivre avec son temps, lol)
Dans ce code de module de classe, je contrôle la ligne du ToggleButton appuyé.
Et en fonction, colorie icelui, lui met un caption, ou si inaptitude, soit le nombre de semaines, soit "Exeptionnelle"
Bon courage
Edit : et j'oubliais, j'ai aussi modifié le code de l'userform pour les inaptitudes.
Bonsoir,
Edit : Bonsoir CousinHUB, je n'avais pas vu ta réponse,
plutôt que de t'embêter à mettre des boutons et le code associé je te propose une solution avec une macro evénementielle
l'événement déclencheur est le double-click
Private Sub Worksheet_BeforedoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("B3:N104")) Is Nothing Then
Select Case Target.Row Mod 3
Case 0
If Target = "PRESENT" Then Target = "ABSENT": Target.Interior.Color = vbRed Else Target = "PRESENT": Target.Interior.Color = vbGreen
Case 1
If Target = "TENUE OK" Then Target = "OUBLI": Target.Interior.Color = vbRed Else Target = "TENUE OK": Target.Interior.Color = &H99CC00
Case 2
If Target = "APTE" Then Target = "DISPENSE": Target.Interior.Color = vbRed Else Target = "APTE": Target.Interior.Color = vbYellow
End Select
Target.Offset(1, 0).Select
End If
End Sub
Bonsoir,
Merci de votre réactivité et plus encore pour votre efficacité!
C'est parfait! Il ne me reste plus qu'à apprendre et comprendre le fonctionnement des "modules de classes" pour ne pas être un simple consommateur!
Bonne continuation et au plaisir d'apprendre de nouveau!
Sportivement
Bonsoir H2s04,
Effectivement c'est intéressant aussi!
sur la formule proposée l'évènement donne le résultat inverse à celui souhaité.
lorsque "tenue ok" ou "présent" est affiché, il y a un 1 en valeur associé en bout de ligne alors que ce devrait être un 0.
j'ai tenté d'inverser la partie du code qui me paraissait concernée le modifiant de la façon suivante:
Private Sub Worksheet_BeforedoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("B3:N104")) Is Nothing Then
Select Case Target.Row Mod 3
Case 0
If Target = "PRESENT" Then Target = "ABSENT": Target.Interior.Color = vbRed Else Target = "PRESENT": Target.Interior.Color = vbGreen
Case 1
If Target = "TENUE OK" Then Target = "OUBLI": Target.Interior.Color = vbRed Else Target = "TENUE OK": Target.Interior.Color = &H99CC00
Case 2
If Target = "APTE" Then Target = "DISPENSE": Target.Interior.Color = vbRed Else Target = "APTE": Target.Interior.Color = vbYellow
End Select
Target.Offset(0, 1).Select
End If
End Sub
Sans résultats.
Second "problème" puis je associer mon userform lié aux inaptitudes à un l'évènement correspondant? (si oui ça n'est plus un problème
Quoiqu'il en soit merci de cette proposition!
Bonne soirée.
Sportivement
jb schouteten a écrit :Bonsoir H2s04,
sur la formule proposée l'évènement donne le résultat inverse à celui souhaité.
il suffit de modifier les formules que j'ai mises dans la colonne des totaux. Formules qu'apparemment, j'avais mal comprises.
jb schouteten a écrit :Second "problème" puis je associer mon userform lié aux inaptitudes à un l'évènement correspondant? (si oui ça n'est plus un problème
)
tu peux lancer ton userform en première instruction du case 2, je n'ai pas vu que tu utilisais les données récoltées par ce userform.
C est noté ! Encore merci !
Sportivement
Jb