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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| Option Explicit
Option Base 1
Sub FiltrerTousLesMois()
Dim ListeDesMois As Variant
Dim I As Long
Dim Continuer As Boolean
Dim Sh As Worksheet
Dim MoisNonTrouves As String
Application.EnableEvents = False
Application.ScreenUpdating = False
ListeDesMois = Array("Septembre", "Novembre", "Octobre", "Décembre", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout")
MoisNonTrouves = "Les mois suivants n'ont pas été trouvés : " & Chr(10)
With Sheets("MENU")
For I = LBound(ListeDesMois, 1) To UBound(ListeDesMois, 1)
Continuer = False
For Each Sh In Worksheets
If Sh.Name = ListeDesMois(I) Then
Continuer = True
If .Range("OptionFiltre") = "Avec filtre" Then
MiseEnPlaceFiltre Sheets(ListeDesMois(I)), True
Else
MiseEnPlaceFiltre Sheets(ListeDesMois(I)), False
End If
End If
Next Sh
If Continuer = False Then
MoisNonTrouves = MoisNonTrouves & ListeDesMois(I) & Chr(10)
End If
Next I
End With
If MoisNonTrouves <> "Les mois suivants n'ont pas été trouvés : " & Chr(10) Then
MsgBox MoisNonTrouves, vbCritical
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
MsgBox "Fin du filtrage ou défiltrage", vbInformation
End Sub
Sub MiseEnPlaceFiltre(ByVal FeuilleAFiltrer As Worksheet, ByVal AFiltrer As Boolean)
With FeuilleAFiltrer
If Not .AutoFilterMode Then .Range("A1").AutoFilter
If AFiltrer = True Then
If .FilterMode = True Then
.ShowAllData
.Columns(1).AutoFilter Field:=1, Criteria1:="="
Else
.Columns(1).AutoFilter Field:=1, Criteria1:="="
End If
Else
If .FilterMode = True Then .ShowAllData
End If
End With
End Sub |
Partager