Bonjour,
Afin d'alléger une macro, j'aimerai automatiser le tri effectué sur chaque Ws par une boucle. En effet, le "programme" dure 15 minutes ce qui exaspère mes collègues !
Malgré le fait que je définisse la Ws en précisant les onglets sur lesquels l'action doit être effectuée, cela me met un message d'erreur justement sur la Ws. Il s'agit des 10 premiers onglets de ce Workbook.
Il doit certainement manquer quelque chose.
Quelqu'un pourrait m'aider.
Merci
[/CODE]
' Périodes quadrimestres
DateDebQ1 = #3/1/2022#
DateFinQ1 = #4/30/2022#
DateDebQ2 = #2/5/2022#
DateFinQ2 = #8/27/2022#
DateDebQ3 = #8/29/2022#
DateFinQ3 = #12/31/2022#
For Each Ws In ActiveWorkbook.Worksheets(Array("voiture", "camion", "avion", "train", "bateau", "vélo", "moto", "trottinette", "voiturette", "paquebot"))
If DateExtraction <= DateFinQ1 Then
With Worksheets(Ws)
With .Range("A1:AA" & Cells(.Rows.Count, "R").End(xlUp).Row)
[A1].AutoFilter field:=1, _
Criteria1:=">=" & Format(DateDebQ1, "mm/dd/yy"), Operator:=xlAnd, _
Criteria2:="<=" & Format(DateFinQ1, "mm/dd/yy")
End With
End With
Else
If DateExtraction > DateDebQ2 And DateExtraction <= DateFinQ2 Then
With Worksheets(Ws)
With .Range("A1:AA" & Cells(.Rows.Count, "R").End(xlUp).Row)
[A1].AutoFilter field:=1, _
Criteria1:=">=" & Format(DateDebQ2, "mm/dd/yy"), Operator:=xlAnd, _
Criteria2:="<=" & Format(DateFinQ2, "mm/dd/yy")
End With
End With
Else
If DateExtraction > DateDebQ3 And DateExtraction <= DateFinQ3 Then
With Worksheets(Ws)
With .Range("A1:AA" & Cells(.Rows.Count, "R").End(xlUp).Row)
[A1].AutoFilter field:=1, _
Criteria1:=">=" & Format(DateDebQ3, "mm/dd/yy"), Operator:=xlAnd, _
Criteria2:="<=" & Format(DateFinQ3, "mm/dd/yy")
End With
End With
End If
End If
End If
Next Ws
End Sub
Afin d'alléger une macro, j'aimerai automatiser le tri effectué sur chaque Ws par une boucle. En effet, le "programme" dure 15 minutes ce qui exaspère mes collègues !
Malgré le fait que je définisse la Ws en précisant les onglets sur lesquels l'action doit être effectuée, cela me met un message d'erreur justement sur la Ws. Il s'agit des 10 premiers onglets de ce Workbook.
Il doit certainement manquer quelque chose.
Quelqu'un pourrait m'aider.
Merci
[/CODE]
' Périodes quadrimestres
DateDebQ1 = #3/1/2022#
DateFinQ1 = #4/30/2022#
DateDebQ2 = #2/5/2022#
DateFinQ2 = #8/27/2022#
DateDebQ3 = #8/29/2022#
DateFinQ3 = #12/31/2022#
For Each Ws In ActiveWorkbook.Worksheets(Array("voiture", "camion", "avion", "train", "bateau", "vélo", "moto", "trottinette", "voiturette", "paquebot"))
If DateExtraction <= DateFinQ1 Then
With Worksheets(Ws)
With .Range("A1:AA" & Cells(.Rows.Count, "R").End(xlUp).Row)
[A1].AutoFilter field:=1, _
Criteria1:=">=" & Format(DateDebQ1, "mm/dd/yy"), Operator:=xlAnd, _
Criteria2:="<=" & Format(DateFinQ1, "mm/dd/yy")
End With
End With
Else
If DateExtraction > DateDebQ2 And DateExtraction <= DateFinQ2 Then
With Worksheets(Ws)
With .Range("A1:AA" & Cells(.Rows.Count, "R").End(xlUp).Row)
[A1].AutoFilter field:=1, _
Criteria1:=">=" & Format(DateDebQ2, "mm/dd/yy"), Operator:=xlAnd, _
Criteria2:="<=" & Format(DateFinQ2, "mm/dd/yy")
End With
End With
Else
If DateExtraction > DateDebQ3 And DateExtraction <= DateFinQ3 Then
With Worksheets(Ws)
With .Range("A1:AA" & Cells(.Rows.Count, "R").End(xlUp).Row)
[A1].AutoFilter field:=1, _
Criteria1:=">=" & Format(DateDebQ3, "mm/dd/yy"), Operator:=xlAnd, _
Criteria2:="<=" & Format(DateFinQ3, "mm/dd/yy")
End With
End With
End If
End If
End If
Next Ws
End Sub