Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Mise en forme conditionnel / vba

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

pierrof

XLDnaute Occasionnel
Bonjour,

Je souhaite sur mon projet mettre en évidence des valeurs d'un tableau par rapport à un autre. Les tableaux peuvent être de dimension variables.
A l'aide d'un code VBA, j'aimerais pouvoir mettre en forme la MFC et d'un autre la supprimer.

Je vous laisse un fichier exemple pour plus de clarté.

Merci d'avance de votre aide.

Cordialement
 

Pièces jointes

Solution
Bonjour Pierrof,
Un essai en PJ sans passer par des MFC XL, avec :
VB:
Sub MFC()
    Application.ScreenUpdating = False
    For Col = 3 To 10                           ' Toutes les colonnes
        For Lig = 2 To [A65500].End(xlUp).Row   ' Toutes les lignes
            If Cells(Lig, Col) = Cells(Lig, Col + 28) Then
                Cells(Lig, Col).Interior.Color = RGB(150, 200, 80)  ' Si = alors Vert
            ElseIf Cells(Lig, Col) < Cells(Lig, Col + 28) Then
                Cells(Lig, Col).Interior.Color = RGB(255, 200, 0)   ' Si < alors Orange
            Else
                Cells(Lig, Col).Interior.Color = RGB(255, 0, 0)     ' Sinon Rouge
            End If
        Next Lig
    Next Col
End Sub
Sub RazColor()
    Range("C2:J" &...
Bonjour Pierrof,
Un essai en PJ sans passer par des MFC XL, avec :
VB:
Sub MFC()
    Application.ScreenUpdating = False
    For Col = 3 To 10                           ' Toutes les colonnes
        For Lig = 2 To [A65500].End(xlUp).Row   ' Toutes les lignes
            If Cells(Lig, Col) = Cells(Lig, Col + 28) Then
                Cells(Lig, Col).Interior.Color = RGB(150, 200, 80)  ' Si = alors Vert
            ElseIf Cells(Lig, Col) < Cells(Lig, Col + 28) Then
                Cells(Lig, Col).Interior.Color = RGB(255, 200, 0)   ' Si < alors Orange
            Else
                Cells(Lig, Col).Interior.Color = RGB(255, 0, 0)     ' Sinon Rouge
            End If
        Next Lig
    Next Col
End Sub
Sub RazColor()
    Range("C2:J" & [A65500].End(xlUp).Row).Interior.Color = xlNone
End Sub
J'ai supposé que les deux tableaux commençaient en colonne B et AE, sinon il faut reprendre le code.
Les tableaux peuvent être de dimension variables.
J'ai supposé que c'est leurs longueur qui change.
 

Pièces jointes

- 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
6
Affichages
229
Réponses
2
Affichages
153
Réponses
3
Affichages
415
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…