Bonjour @Bruno77, Cow18,
merci d’avoir transmis ton fichier Excel avec les 62 cases à cocher.
il y a un gros problème : c’est totalement ingérable à cause des noms des
cases à cocher ; c’est pour ça que j’ai renommé tous ces noms.
a) pour la 1ère case à cocher de B3 : nom = "Trav01" ; pour celle en dessous :
"Trav02" à "Trav31" ; "Trav" est mon abréviation de "Travail".
b) pour la 1ère case à cocher de C3 : nom = "Reps01" ; pour celle en dessous :
"Reps02" à "Reps31" ; "Reps" est mon abréviation de "Repos".
j’ai fait 3 versions différentes ; voici la 1ère version : Essai v1.xlsm (46,8 Ko)
coche ou décoche des cases en colonne B et en colonne C (celles que tu veux),
puis clique sur le bouton "MAJ" ➯ mise à jour de D4 et D6.
code VBA du module de Feuil1 :
Option Explicit
Private Sub MAJ_Click()
Dim T As Byte, R As Byte, i As Byte: Application.ScreenUpdating = 0
For i = 1 To 31
ActiveSheet.Shapes("Trav" & Format(i, "00")).Select
If Selection.Value = 1 Then T = T + 1
ActiveSheet.Shapes("Reps" & Format(i, "00")).Select
If Selection.Value = 1 Then R = R + 1
Next i
[D4] = T: [D6] = R: [D8].Select
End Sub
voici la 2ème version : Essai v2.xlsm (47,5 Ko)
c’est comme la 1ère version, où j’ai ajouté la possibilité d’utiliser
le raccourci clavier Ctrl m pour faire la mise à jour ; ainsi, c’est
plus simple et rapide que de devoir cliquer sur le bouton "MAJ".
j’ai modifié le code VBA comme indiqué ci-dessous.
code VBA de Module1 :
Option Explicit
Sub DoMAJ()
Dim T As Byte, R As Byte, i As Byte: Application.ScreenUpdating = 0
For i = 1 To 31
ActiveSheet.Shapes("Trav" & Format(i, "00")).Select
If Selection.Value = 1 Then T = T + 1
ActiveSheet.Shapes("Reps" & Format(i, "00")).Select
If Selection.Value = 1 Then R = R + 1
Next i
[D4] = T: [D6] = R: [D8].Select
End Sub
code VBA du module de Feuil1 :
Private Sub MAJ_Click()
DoMAJ
End Sub
voici la 3ème version : Essai v3.xlsx (10,1 Ko)
j’ai supprimé toutes les cases à cocher ; à la place : saisis un "x" ou supprime-le ;
gros avantage : la mise à jour se fait automatiquement, sans devoir cliquer sur
un bouton, ni devoir faire Ctrl m.
formule en D4 : =NB.SI(B3:B33;"x")
formule en D6 : =NB.SI(C3:C33;"x")
perso, je préfère la version 3 ; et toi, quelle version tu préfères ?
regarde aussi la solution de @Cow18 ; et vois avec lui pour la suite,
car ça ne me dit rien de faire ceci :
moi aussi, j’ai trop travaillé ; je vais prendre un jour de repos. 