Macro ToggleButton multi onglets
Bonjour à tous :D:D,
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:
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:
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 !