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.
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
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
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)
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
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 !
Partager