Je cherche à écrire un macro qui permettrait de réaliser une même action (écriture caleur, mise en forme,...) sur plusieurs feuilles d'un même classeur mais pas toutes.
J'ai essayé ce code :
VB:
Dim fl As Worksheet
For Each fl In Worksheets
If fl.Name <> "Récap" And fl.Name <> "Paramètres" Then 'attention aux noms de feuilles avec accent
Range("B10:B1000").Select
Selection.ClearContents
End If
Next fl
Où Récap et Paramètres sont les feuilles où je ne veux pas réaliser mon action.
Or ça ne fonctionne pas, quand je la lance ça ne marche que sur la feuille active.
Quelqu'un a une idée ?
Je sais bien que je pourrais sélectionner toutes les feuilles concernées et faire mon action mais je pourrais avoir besoin de cette macro pour des actions plus spécifiques.
En revanche, y a-t-il un autre moyen de travailler sur certaines feuilles et pas d'autres sans passer par
Code:
If fl.Name <> "Récap"
?
Si je crée d'autres feuilles dans mon classeur sur lesquelles je ne veux pas faire mon action répétitive, comment faire pour ne pas avoir à modifier ma macro à chaque fois ?
Bonjour Castor,
C'est normal, "Range("B10:B1000").Select" n'adresse que la feuille active. Il faut préciser la feuille sur laquelle s'applique l'action. Testez avec :
VB:
Sub essai()
Dim fl As Worksheet
For Each fl In Worksheets
If fl.Name <> "Récap" And fl.Name <> "Paramètres" Then
Sheets(fl.Name).Range("B10:B1000").ClearContents
End If
Next fl
End Sub
Bonjour Castor,
C'est normal, "Range("B10:B1000").Select" n'adresse que la feuille active. Il faut préciser la feuille sur laquelle s'applique l'action. Testez avec :
VB:
Sub essai()
Dim fl As Worksheet
For Each fl In Worksheets
If fl.Name <> "Récap" And fl.Name <> "Paramètres" Then
Sheets(fl.Name).Range("B10:B1000").ClearContents
End If
Next fl
End Sub