Bonjour à tous,
J'ai trouvé beaucoup de discussions sur le forum sur les checkbox ou sur le lancement des macros, malheureusement je n'ai pas trouvé de réponses à mon problème.
Voilà, j'ai un classeur composé de plusieurs onglets.
Sur chaque onglet il y plusieurs checkbox (nombre différent suivant les feuilles).
La macro créee permet de modifier le format de certaines cellules en fonction de l'état des checkbox (TRUE/FALSE), quelque soit la feuille sur laquelle on se trouve.
Ce que je souhaiterai faire c'est déclencher la macro sur le changement de l'état d'une checkbox (checked/unchecked) mais ceci quelque soit la feuille et quelquesoit la checkbox sur la feuille.
Croyez-vous que c'est possible ?
Ci-joint la macro, mais je ne l'ai pas encore testée ce qui signifie qu'il doit y avoir certainement quelques erreurs
Je vous remercie par avance pour votre aide
NeMoS
J'ai trouvé beaucoup de discussions sur le forum sur les checkbox ou sur le lancement des macros, malheureusement je n'ai pas trouvé de réponses à mon problème.
Voilà, j'ai un classeur composé de plusieurs onglets.
Sur chaque onglet il y plusieurs checkbox (nombre différent suivant les feuilles).
La macro créee permet de modifier le format de certaines cellules en fonction de l'état des checkbox (TRUE/FALSE), quelque soit la feuille sur laquelle on se trouve.
Ce que je souhaiterai faire c'est déclencher la macro sur le changement de l'état d'une checkbox (checked/unchecked) mais ceci quelque soit la feuille et quelquesoit la checkbox sur la feuille.
Croyez-vous que c'est possible ?
Ci-joint la macro, mais je ne l'ai pas encore testée ce qui signifie qu'il doit y avoir certainement quelques erreurs
Je vous remercie par avance pour votre aide
NeMoS
Code:
Private Sub box_change()
Dim i, j, k As Integer
Dim fintab As Integer
Dim ws As Worksheets
Dim cb As CheckBox
i = 7
For Each ws In Workbook
fintab = Range("A" & Rows.Count).End(xlUp).Row
For i = 7 To fintab
If Range(i, 11).Value = "x" Then
For Each cb In Range(Cells(i, 5), Cells(i, 9))
If cb.Value = True Then
For j = 5 To 9
Cells(i, j).Interior.ColorIndex = xlNone
Else
Cells(i, j).Interior.ColorIndex = 6
End If
Next
End If
Next
Next
End Sub