[resolu] Mise en forme conditionnelle par VBA pour chaque onglet

  • Initiateur de la discussion Initiateur de la discussion cissou69
  • 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 !

C

cissou69

Guest
Bonjour,

Suite à plusieurs de mes postes, j'ai voulu combiner deux macros mais le résultat n'est pas au rendez-vous...
L'idée est d'établir une mise en forme conditionnelle à l'aide d'une macro qui s'applique à tous les onglets d'un classeur actif.
Or lorsque je lance la macro, elle ne s'applique que sur l'onglet actif !!

Le code est le suivant:

Code:
Sub Mise_en_forme()

Application.ScreenUpdating = False

Dim s As Worksheet

For Each s In Worksheets
Set Plg = Range("F2:AS" & Cells(Rows.Count, 1).End(xlUp).Row)
    For Each C In Plg
        Select Case C.Value
            Case "M"
                C.Interior.ColorIndex = 35
            Case "P"
                C.Interior.ColorIndex = 37
            Case "C"
                C.Interior.ColorIndex = 44
            Case "F"
                C.Interior.ColorIndex = 46
            Case Else
                C.Interior.ColorIndex = xlNone
        End Select
    Next C
Next s

Application.ScreenUpdating = True

End Sub

Merci de votre aide
 
Dernière modification par un modérateur:
Re : Mise en forme conditionnelle par VBA pour chaque onglet

Bonjour,

Manque juste des 's.'

Code:
Set Plg = s.Range("F2:AS" & s.Cells(s.Rows.Count, 1).End(xlUp).Row)
et éventuellement devant le C

Code:
Sub Mise_en_forme()
 
Application.ScreenUpdating = False
 
Dim s As Worksheet
 
For Each s In Worksheets
Set Plg = s.Range("F2:AS" & s.Cells(s.Rows.Count, 1).End(xlUp).Row)
    For Each C In Plg
        Select Case C.Value
            Case "M"
                C.Interior.ColorIndex = 35
            Case "P"
                C.Interior.ColorIndex = 37
            Case "C"
                C.Interior.ColorIndex = 44
            Case "F"
                C.Interior.ColorIndex = 46
            Case Else
                C.Interior.ColorIndex = xlNone
        End Select
    Next C
Next s
 
Application.ScreenUpdating = True
 
End Sub

A+
 
Dernière modification par un modérateur:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
345
Réponses
7
Affichages
2 K
Retour