Partager via

Appliquer la même macro à plusieurs onglets

Anonyme
2025-04-04T10:34:45+00:00

Bonjour,

j'ai fait une macro de type Masquer une ligne selon la valeur d'une case.

Cette macro fonctionne très bien sur un onglet actif.

Je souhaiterai appliquer cette macro simultanément sur 3 feuilles de mon classeur grâce à un seul et unique bouton. Le classeur comporte 12 feuilles. Les feuilles à traiter sont les feuilles 3, 4 et 5.

Voici mon code pour le masquage de ligne qui fonctionne à chaque fois que je l'applique sur la feuille active :

Sub MasquerLigneselonValeur()

Debut = 6

Fin = 219

ColNb = 4

For i = Debut To Fin

If Cells(i, ColNb).Value = 0 Then

Cells(i, ColNb).EntireRow.Hidden = True

Else

Cells(i, ColNb).EntireRow.Hidden = False

End If

Next i

End Sub

J'ai tenté de créer une macro TOTO qui va éxécuter la première uniquement sur les feuilles que je souhaite traiter :

Sub TOTO()

Dim fl As Worksheet

For Each fl In Worksheets

If fl.Name <> "Feuil3" And fl.Name <> "Feuil4" And fl.Name <> "Feuil5" Then

Call MasquerLigneselonValeur

End If

Next fl

End Sub

Lorsque j'éxécute TOTO, les lignes se masquent dès la feuille 1. Aucune autre feuille n'est traitée.

Pouvez-vous m'aider ?

Merci

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

2 réponses

  1. Anonyme
    2025-04-04T11:40:36+00:00

    Merci pour l'aide,

    ça marche parfaitement !!!

    Bonne journée

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2025-04-04T11:09:46+00:00

    Ta macro TOTO lance l’exécution de l’autre macro pour les feuilles qui ne sont ni la 3 ni la 4 ni la 5. Plutôt que fl.Name <> And, tu devrais écrire fl.Name = Or

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire