Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

macro bouclée sur certaines feuilles

  • Initiateur de la discussion Initiateur de la discussion cabsen
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cabsen

XLDnaute Junior
Bonjour tout le monde,

Mon problème du jour est le suivant :
J'ai enregistré une macro de formatage que je lance à l'aide d'un raccourci. Elle fonctionne très bien mais elle concerne 52 feuilles sur 56 présentes dans mon classeur. À la main, c'est un peu long, mais c'est surtout fastidieux…

Mes 52 feuilles en question sont nommées sem01, sem02,… , sem52.
Existe-t-il une boucle simple (genre "if… until") à insérer quelque part (au début ?) dans la macro pour automatiser le processus ?

Merci de m'avoir lu et de vos éventuelles réponses.
 
Re : macro bouclée sur certaines feuilles

bonjour cabsen

en admettant que le nom des autres feuilles ne commence pas par "sem",essaie:

Code:
Dim Wks As Worksheet

For Each Wks In Worksheets
     If Left(Wks.Name, 3) = "sem" Then
     
     ' ton code ici
    
     
     End If

Next Wks
Attention à la casse: "Sem" n'est pas "sem" ni "SEM"
 
Re : macro bouclée sur certaines feuilles

Pour moi, le code serait le même que Luki avec quelque modifications :
Code:
Option Compare text 'pour éviter les erreurs de casse (maj:minuscule) à mettre en haut du module
Sub MiseEnForme()
    Dim Wks As Worksheet

    For Each Wks In Worksheets
        If Left(Wks.Name, 3) = "sem" Then
     
           ' le nom de ta macro de formatage    
     
        End If

    Next Wks
End sub

Voilà
 
Re : macro bouclée sur certaines feuilles

Merci !

La macro semble fonctionner et parvenir à son terme (elle ne plante pas l'application…) mais les modifications ne sont appliquées qu'à la feuille active au moment du lancement de la macro.

J'ai cru lire dans le forum qu'une feuille devait être active pour pouvoir être modifiée ? Peut-on insérer quelque chose comme "Active.Sheet…" ?
 
Re : macro bouclée sur certaines feuilles

Bonjour cabsen, cops71, Luki

Il faut que tu te réfères à la feuille, faire précéder tes instructions de la variable Wks. Exemple :

Code:
Option Compare Text 'pour éviter les erreurs de casse (maj:minuscule) à mettre en haut du module
Sub MiseEnForme()
Dim Wks As Worksheet
    
    For Each Wks In Worksheets
        If Left(Wks.Name, 3) = "sem" Then
          Wks.Range("A1:C10").Interior.ColorIndex = 4
        End If
    Next Wks
    
End Sub

Ou si tu as beaucoup de chose à faire sur chaque feuille, pour éviter de réecrire Wks, tu utilises l'instruction With/End With.
Dans ce cas tu dois activer la feuille. Exemple:

Code:
Option Compare Text 'pour éviter les erreurs de casse (maj:minuscule) à mettre en haut du module
Sub MiseEnForme()
Dim Wks As Worksheet
   
    For Each Wks In Worksheets
        If Left(Wks.Name, 3) = "sem" Then
           With Wks
             .Activate
             .Range("A1:C10").Interior.ColorIndex = 4
           End With
        End If
    Next Wks
    
End Sub

Bonne fin d'après-midi
 
Re : macro bouclée sur certaines feuilles

Re!

Tout dépend de ce que tu as mis dans ta macro de formatage...

Soit tu rajoutes
Code:
sheets(wks.name).select
'code de ta macro

Soit tu rajoutes dans le code de ta macro avant chaque range utilisé
Code:
Sheets(wks.name).range(...)...

@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…