Bonjour à tous ,

j'ai une macro (ci dessous) qui fonctionne avec un ToggleButton. Dans un premier temps cette Macro me permet d'afficher des onglets Masqués, puis dans un second temps de les remasquer et de faire une mise en page sur d'autre 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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Private Sub ToggleButton1_Click()
Application.ScreenUpdating = False
'Afficher/Masquer Onglet
        Sheets("Extraction ESV TER PA").Visible = Me.ToggleButton1.Value
        Sheets("Extraction ESV TER CA").Visible = Me.ToggleButton1.Value
        Sheets("Extraction ET PACA").Visible = Me.ToggleButton1.Value
        Sheets("Extraction EV TGV PACA").Visible = Me.ToggleButton1.Value
        Sheets("Extraction TC PACA").Visible = Me.ToggleButton1.Value
        Sheets("Extraction Rhumba").Visible = Me.ToggleButton1.Value
        Sheets("Extraction Globale").Visible = Me.ToggleButton1.Value
        Sheets("Extraction DR PACA").Visible = Me.ToggleButton1.Value
        Sheets("Liste").Visible = Me.ToggleButton1.Value
 
'Personnalisation du Bouton
            Me.ToggleButton1.Caption = IIf(Me.ToggleButton1, "Masquer", "Afficher")
            Me.ToggleButton1.BackColor = IIf(Me.ToggleButton1, vbRed, vbGreen)
 
 
'Mise en page des Onglets
    If Me.ToggleButton1.Caption = "Afficher" Then
    Dim WS As Worksheet
 Application.ScreenUpdating = False
 For Each WS In ActiveWorkbook.Worksheets
WS.Activate
Range("N3") = Format(Date, "dd/mm/yyyy")
  If WS.Name <> "Tableau de bord" And WS.Name <> "Extraction DR PACA" And WS.Name <> "Extraction ESV TER CA" And WS.Name <> "Extraction ESV TER PA" And WS.Name <> "Extraction EV TGV PACA" And WS.Name <> "Extraction ET PACA" And WS.Name <> "Extraction TC PACA" And WS.Name <> "Extraction Rhumba" And WS.Name <> "Extraction Globale" Then
     Columns("S:S").Copy
    Columns("T:T").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Sheets("Tableau de Bord").Select
End If
 Next WS
 
    ActiveWorkbook.RefreshAll
 
    End If
 
Application.ScreenUpdating = True
 
End Sub
La partie afficher/masquer fonctionne très bien mais pas la 2e partie:
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
If Me.ToggleButton1.Caption = "Afficher" Then
    Dim WS As Worksheet
 Application.ScreenUpdating = False
 For Each WS In ActiveWorkbook.Worksheets
WS.Activate
Range("N3") = Format(Date, "dd/mm/yyyy")
  If WS.Name <> "Tableau de bord" And WS.Name <> "Extraction DR PACA" And WS.Name <> "Extraction ESV TER CA" And WS.Name <> "Extraction ESV TER PA" And WS.Name <> "Extraction EV TGV PACA" And WS.Name <> "Extraction ET PACA" And WS.Name <> "Extraction TC PACA" And WS.Name <> "Extraction Rhumba" And WS.Name <> "Extraction Globale" Then
     Columns("S:S").Copy
    Columns("T:T").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Sheets("Tableau de Bord").Select
End If
 Next WS
 
    ActiveWorkbook.RefreshAll
 
    End If
 
Application.ScreenUpdating = True
 
End Sub
Lorsque je mets celle ci dans un bouton (contrôle de formulaire) elle fonctionne mais dans mon ToggleButton, celle ci ne fonctionne que sur l'onglet actif "Tableau de Bord" ce qui ne devrais pas être le cas, et elle ne touche pas aux autres onglets (ce qui devrais être le cas)
Je ne sais pas comment faire pour la "réparer", j'en appel donc à votre savoir!!!

Désolé si mon code est plutôt "laid", je suis débutant et j'essaie de comprendre petit à petit
Je vous remercie par avance pour toute les aides et les propositions apportées !