Boucle pour plusieiurs feuilles

  • Initiateur de la discussion Olette
  • Date de début
O

Olette

Guest
Bonjour,

Je souhaiterai traiter des données sur différents onglets.
Le tratietment pour une feuille est deja ecroit mais je n'arrive pas à passer de feuille en feuille pour lui faire executer ma macro ...

Quelqu'un aurait-il une soluce ?

D'avance, Merci

Olette
 
@

@Christophe@

Guest
Bonjour,

Place le code suivant dans un module:

Option Explicit
Dim WS As Worksheet

Sub test()
For Each WS In Worksheets

'''Ton code
MsgBox WS.Name
'''

Next WS
End Sub


Bonne chance

@Christophe@
 
O

Olette

Guest
J'ai pris un classeur vierge et j'ai voulu tester ta macro dont voila le code:


Option Explicit
Dim WS As Worksheet

Sub Macro1()

For Each WS In Worksheets
Range("A1").Select
ActiveCell.Value = "OK"
MsgBox WS.Name
Next WS

End Sub

Au résultat, Ok n'est inscrit que sur la première feuille ... et pas sur les autres.
C'est sans doute moi qui n'est pas su la mettre en place mais je sollicite une fois de plus ton aide !!!
Merci pour le coup de main.

Olette
 
@

@Christophe@

Guest
Bonjour,

Tu as oublié de lui dire WS. devant range

Sans le WS. il fait ce que tu demande sur la feuille active:

Voila le code:

Option Explicit
Dim WS As Worksheet

Sub Macro1()

For Each WS In Worksheets
WS.Range("A1").Value = "OK"
Next WS
End Sub

Bonne chance

@Christophe@
 
@

@Christophe@

Guest
Re

Non, t'inquite

Il te suffit alors d'activer la feuille en début de macro, comme cela.
J'ai mes des App...Screenupdating pour que tu ne vois pas la macro s'exécuter.


Option Explicit
Dim WS As Worksheet

Sub Macro1()
Application.ScreenUpdating = False 'Pour ne pas voir les changement s'éffectuer
For Each WS In Worksheets
WS.Activate
Range("A1").Value = "OK"
Next WS
Application.ScreenUpdating = True 'Pas oublier de remettre à true!
End Sub


Et voila

@Christophe@
 

Discussions similaires

Statistiques des forums

Discussions
312 360
Messages
2 087 598
Membres
103 604
dernier inscrit
CAROETALEX59