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.
Configuration: Windows XP Internet Explorer 6.0

3 réponses

  1. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    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
    1. 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
  2. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    Re,
    peux-tu stp mettre ton code, qu'on regarde ou ça cloche ?
    0
    1. 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
  3. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    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
    1. picard
       
      Merci, cette fois, ça marche.
      0