VBA : Effectuer une action en boucle sur certaines feuilles d'un classeur uniquement

SophieG

XLDnaute Nouveau
Bonjour,

Je n'arrive pas à trouver le code VBA qui permet d'effectuer plusieurs fois la même action sur certaines feuilles d'un classeur (mais pas toutes !).

Par exemple, pour simplifier, disons que j'ai les feuilles A, B, C, D, E et F dans mon classeur et que je veuille colorier en jaune la première cellule des feuilles B, C et E.

J'ai cherché un peu sur internet et j'ai essayé le code suivant qui donne une erreur de type d'exécution 9 (L'indice n'appartient pas à la sélection).

Dim i As Integer
Dim MySheets As Variant

MySheets = Array("B", "C", "E")

For i = LBound(MySheets) To UBound(MySheets)
Worksheets(i).Select
Range("A1").Select
Selection.Interior.ColorIndex = 6
Next i

Pourriez-vous m'aider svp ??
Merci d'avance,
Sophie
 

tototiti2008

XLDnaute Barbatruc
Re : VBA : Effectuer une action en boucle sur certaines feuilles d'un classeur unique

Bonjour SophieG

Pas loin :)

Dim i As Integer
Dim MySheets As Variant

MySheets = Array("B", "C", "E")

For i = LBound(MySheets) To UBound(MySheets)
Worksheets(MySheets(i)).Select
Range("A1").Select
Selection.Interior.ColorIndex = 6
Next i

Mais tu peux éviter les Select

Code:
Dim i As Integer
Dim MySheets As Variant

MySheets = Array("B", "C", "E")

For i = LBound(MySheets) To UBound(MySheets)
  Worksheets(MySheets(i)).Range("A1").Interior.ColorIndex = 6
Next i
 

Pierrot93

XLDnaute Barbatruc
Re : VBA : Effectuer une action en boucle sur certaines feuilles d'un classeur unique

Bonjour,

peut être en modifiant comme suit :
Code:
Dim i As Integer
Dim MySheets As Variant

MySheets = Array("B", "C", "E")

For i = LBound(MySheets) To UBound(MySheets)
Worksheets(MySheets(i)).Range("A1").Interior.ColorIndex = 6
Next i

bon après midi
@+

Edition : oh la.... un peu en retard moi...; Re toto:)
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia