Simplification de macro

Bonjour le forum,

Petite question : Dans un fichier, je fais la même macro sur plusieurs feuilles. A chaque fois, je selectionne la feuille, je fais ma macro.

Existe t-il un code plus simple pour dire : "faire la même macro sur la feuille1, la feuille2, la feuille3, etc..."

D'avance, merci de votre aide.

Patsyl60

Bonjour,

Faut voir : ya macro et macro...

Si la macro est vraiment trop longue tu nous donnes que 15 ou 20 lignes,

Dans un premier temps ça suffira pour se faire une idée.

A+

screen

Merci pour ta réponse . Petit bout de macro qui résume :

Sub sup()

Sheets("T").Select

Application.ScreenUpdating = False

Dim i As Long

For i = Range("A65536").End(xlUp).Row To 2 Step -1

If Cells(i, 16).Value > 899999 Or _

Cells(i, 2).Value = "Z1" Or _

Cells(i, 2).Value = "D8" Then _

Rows(i).Delete

Next i

Application.ScreenUpdating = True

Sheets("M").Select

Application.ScreenUpdating = False

For i = Range("A65536").End(xlUp).Row To 2 Step -1

If Cells(i, 16).Value > 899999 Or _

Cells(i, 2).Value = "D8" Then _

Rows(i).Delete

Next i

Application.ScreenUpdating = True

End Sub

bonsoir,

Essaie voir ça : (travaille d'abord sur une copie de ton fichier hein !)

Sub test()
Dim i&, j&, k%, Arr
Application.ScreenUpdating = False
Arr = Split("Feuil3 Feuil4 Feuil5 Feuil6 Feuil7 Feuil8 Feuil9")
For k = 0 To UBound(Arr)

With Sheets(Arr(k))
j = .Range("A65536").End(xlUp).Row
For i = j To 2 Step -1
If .Cells(i, 16).Value > 899999 Or _
.Cells(i, 2).Value = "Z1" Or _
.Cells(i, 2).Value = "D8" Then _
.Rows(i).Delete
Next i
End With

Application.ScreenUpdating = True

Next k
End Sub

Tu remplaces juste Feuil1, Feuil2... par le vrai nom de tes feuilles avec le séparateur espace.

Important : Si le nom de tes feuilles comporte des espaces, ça ne va pas marcher... dans ce cas me consulter !

A+

Merci galopin01,

tout fonctionne parfaitement.

Patsyl60

Rechercher des sujets similaires à "simplification macro"