• Initiateur de la discussion Initiateur de la discussion Calvus
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Calvus

XLDnaute Barbatruc
Bonjour le forum,

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

Merci.
 
Re : Syntaxe VBA

Bonjour,

il faut préciser où appliquer l'instruction :
Code:
Sub Format()
Dim Ws As Worksheet
For Each Ws In ThisWorkbook.Worksheets
    'Renvoie le nom de chaque feuille

WS.Range("s38").Value = 125
        
Next Ws

End Sub

bon après midi
@+
 
Re : Syntaxe VBA

Re,

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

Merci
 
Re : Syntaxe VBA

salut

à tester pour les changements sur les 3 feuilles
Code:
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
 
Re : Syntaxe VBA

Hello 00 !

J'en reviens pas qu'en plus tu te paies ma tête ! 😉😉

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...🙄

A bientôt 🙂🙂
 
Re : Syntaxe VBA

Re

Pour éviter de noyer le poisson *

WorkSheets désigne la collection des onglets.

Pour les traiter 1 par 1 et séparément, on utilsera :

WorkSheets("feuil1"), WorkSheets("feuil2"), WorkSheets("feuil3 ") …

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
 
Re : Syntaxe VBA

Bonsoir,

Meuh non, Calvus 😉,

Moi 🙄 pas me payer la tête de toi 😀

Et en plus tu te débines !!! 🙂🙂🙂😉


Pour éviter de noyer le poisson *

Tu as presque réussi ! 🙂🙂

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.

Bonne soirée à tous 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
835
Réponses
10
Affichages
630
Réponses
3
Affichages
213
Retour