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! 2 problèmes pour moi cependant:

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

Rechercher des sujets similaires à "repeter macro bouton"