Bonjour,
J'utilise actuellement ce code afin de générer une case à cocher sur tous mes onglets :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub Creation_bouton()
Dim PosG As Integer
Dim PosH As Integer
Dim Hauteur As Integer
Dim Longueur As Integer
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Activate
'Position en fonction d'une cellule
   With Range("E1")
       PosG = .Left
       PosH = .Top
       Hauteur = .Height
       Longueur = .Width
   End With
   With ActiveSheet.CheckBoxes
      .Add(PosG, PosH, Longueur, Hauteur).Select
      .OnAction = "cmdCacherAfficher_Click"
      .Caption = "2015"
 
   End With
 
   Next ws
End Sub
Ces cases activent la macro suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub cmdCacherAfficher_Click()
 
    With Range("F1:F1").EntireColumn
    .Hidden = Not .Hidden
 
    End With
    With Range("I1:I1").EntireColumn
    .Hidden = Not .Hidden
 
    End With
        With Range("G1:G1").EntireColumn
    .Hidden = Not .Hidden
 
    End With
    With Range("j1:J1").EntireColumn
    .Hidden = Not .Hidden
 
    End With
End Sub
Lorsque je veux créer une 2e case j'utilise le même code en modifiant la cellule de destination :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Sub Creation1_bouton()
...
   With Range("H1")
...
End Sub
Cela se génère bien.
Mais je dois aussi changer le nom et elles doivent activer une autre macro. Lorsque je change quelque chose sur ces lignes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Sub Creation1_bouton()
...
   ...
      .OnAction = "cmdCacherAfficher1_Click"
      .Caption = "2014"
...
End Sub
A ce moment la les cases à cocher se génèrent par dessus la première case à cocher...

Je n'arrive pas à comprendre pourquoi.