Excel macros repeter sur plusieurs feuilles

MOMO -  
 picard -
Bonjour,
J'ai les mêmes opérations à exécuter sur 4 feiulles différentes portant chacune un nom particulier. Je voudrais pouvoir ne pas répèter 3 fois supplémentaires les mêmes instructions.
Si quelqu'un a une solution, merci.

3 réponses

tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   435
 
salut,
tu peux faire un truc du genre :
For Each ws In ActiveWorkbook.Worksheets
    If ws.Name = "Feuil1" Or ws.Name = "Feuil2" Then
        toncode
    End If
Next ws

0
MOMO
 
Bonsoir,
Je te remercie, mais avec moi, ça ne marche pas.
J'ai pourtant essayé de respecter srupuleusement ton écriture.
Je ne comprends pas.
0
tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   435
 
Re,
peux-tu stp mettre ton code, qu'on regarde ou ça cloche ?
0
MOMO
 
Salut et merci,
mon code, c'est 3 fois ça: (pour 3 feuilles différentes)

Sheets("GENERAL").Select
For z = 1 To 50
If Cells(z + 2, 18) = SUPPRIM Then
Range(Cells(z + 2, 18), Cells(z + 2, 41)).Select
Selection.Delete Shift:=xlUp
End If
Next z
J'ai remplacé par:

For Each ws In ActiveWorkbook.Worksheets
If ws.Name = "GENERAL" Or ws.Name = "DROITE" Or ws.Name = "MATERIAU" Then
For z = 1 To 50
If Cells(z + 2, 18) = SUPPRIM Then
Range(Cells(z + 2, 18), Cells(z + 2, 41)).Select
Selection.Delete Shift:=xlUp
End If
Next z
End If
Next ws

J'ai aussi esayé ceci:

Sub Macro1()
For Each ws In ActiveWorkbook.Worksheets
If ws.Name = "Feuil1" Or ws.Name = "Feuil3" Or ws.Name = "Feuil4" Then
If Cells(2, 1) <> "" Then Cells(1, 1).Copy Destination:=Cells(4, 5)
End If
Next ws
End Sub

ça n'opère que sur la feuille active même sur la 2 ou la 5...
0
tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   435
 
Salut,
Il fauut que tu précises sur quelle feuille tu travailles dans la boucle, par défaut c'est la feuille active (ActiveSheet) :
Sub Macro1()
For Each ws In ActiveWorkbook.Worksheets
If ws.Name = "Feuil1" Or ws.Name = "Feuil3" Or ws.Name = "Feuil4" Then
If ws.Cells(2, 1) <> "" Then ws.Cells(1, 1).Copy Destination:=ws.Cells(4, 5)
End If
Next ws
End Sub

0
picard
 
Merci, cette fois, ça marche.
0