Quelqu'un peut il m'expliquer pourquoi ce code ne fonctionne pas ?
Code:
Sub Format()
Dim Ws As Worksheet
For Each Ws In ThisWorkbook.Worksheets
'Renvoie le nom de chaque feuille
Range("s38").Value = 125
Next Ws
End Sub
Du moins il ne fonctionne que sur la première feuille (sur 3)
Pas plus que celui-ci ?
Code:
Sub Format()
With Worksheets("feuil1", "feuil2", "feuil3")
.Range("s38").Value = 125
.Range("S38:Z38").Font.Bold = True
.Range("S38:Z38").Font.Color = RGB(255, 0, 255)
End With
End Sub
Sachant que celui-ci fonctionne :
Code:
Sub Format()
With Worksheets("feuil1")
.Range("s38").Value = 125
.Range("S38:Z38").Font.Bold = True
.Range("S38:Z38").Font.Color = RGB(255, 0, 255)
End With
End Sub
Et pour quelle raison ceci ne fonctionne t'il pas ?
Code:
Sub Format()
With Worksheets("feuil1", "feuil2", "feuil3")
.Range("s38").Value = 125
.Range("S38:Z38").Font.Bold = True
.Range("S38:Z38").Font.Color = RGB(255, 0, 255)
End With
End Sub
Sub Format()
Dim Ws As Worksheet
For Each Ws In Worksheets(Array("feuil1", "feuil2", "feuil3"))
Ws.Range("s38").Value = 125
Ws.Range("S38:Z38").Font.Bold = True
Ws.Range("S38:Z38").Font.Color = RGB(255, 0, 255)
Next
Merci pour l'exemple.
J'aurais juste aimé savoir, éventuellement, pourquoi ça ne marchait pas avec Worksheets("feuil1", "feuil2", "feuil3"), alors que ça marche avec Worksheets("feuil1")..
Mais peut être faut il demander à Krosoft...
J'avais bien compris les autres solutions... pour une fois...
Pour en traiter quelques-uns ensemble, on doit passer par un tableau (Array) .
Je préfère
Code:
Sub Format_2()
Dim Ws As Object
For Each Ws In Worksheets (Array("Feuil1", "Feuil2", "Feuil3"))
Ws.Range("s38").Value = "Coucou, Calvus !"
Ws.Range("s38:z38").Font.Bold = True
Ws.Range("s38:z38").Font.Color = 3128111
Next
End Sub
qui est plus réduit que la double boucle
Code:
Sub Format_1()
Dim n As Byte, Ws As Worksheet
For Each Ws In Worksheets
For n = 0 To 2
If Ws.Name = Array("Feuil1", "Feuil2", "Feuil3")(n) Then
Ws.Range("s38").Value = "Petit poiffon deviendra grand !"
Ws.Range("s38:z38").Font.Bold = True
Ws.Range("s38:z38").Font.Color = 255
End If
Next
Next
End Sub
où la seconde boucle est ici pour caser mon Array en remplacement du test
If Ws.Name = "Feuil1" Or Ws.Name = "Feuil2" Or Ws.Name = "Feuil3" Then
*, je connais le rouge et blanc mais pas l’autre et désolé pour avoir maltraité tes codes
Mer Sissi en tout cas. Bien que restant à digérer, c'est beaucoup plus clair.
J'apprécie la pédagogie que tu apportes à tes réponses dans ce forum. Tu viens encore d'en faire la démonstration.