MFC double condition avec priorité à appliquer via VBA

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

JNP

XLDnaute Barbatruc
Bonjour à tous 🙂,
Mon problème consiste à appliquer une MFC (au final, je l'appliquerai par VBA car le tableau est changeant... ce qui sera peut-être pas simple non plus...),où je voudrais si le même code est présent dans au moins 2 des colonnes D, H, L et P (pas forcément en face) que la cellule soit en vert. Si par contre le code est présent 2 fois dans la même colonne, la cellule est en rouge. Le rouge est prioritaire sur le vert.
Si rien ou singleton, cellule normale.
J'ai essayé avec NB.SI, mais je dois pas être doué pour les formules.
Je vous joint un exemple où les explications sont jointes aussi.
Merci d'avance de vos réponses.
Bonne journée 😎
 

Pièces jointes

Re : MFC double condition avec priorité à appliquer via VBA

Bonjour,
Macro événementielle, peu bourrin 🙄, mais ça fonctionne, enfin je crois
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 Or Target.Count > 1 Or Target = "" Then Exit Sub
For i = 4 To 16 Step 4
    If Target.Column <> i Then
        Set Trouve = Columns(i).Find(Target)
            If Not Trouve Is Nothing Then
            Target.Interior.ColorIndex = 43
            Trouve.Interior.ColorIndex = 43
            End If
     End If
        If Target.Column = i Then
            For j = 2 To Cells(2, i).End(xlDown).Row
                If Cells(j, i) = Target And Cells(j, i).Address <> Target.Address Then
                Target.Interior.ColorIndex = 3
                Cells(j, i).Interior.ColorIndex = 3
                End If
            Next
        End If
Next
Set Trouve = Nothing
End Sub
A+
kjin
 
Re : MFC double condition avec priorité à appliquer via VBA

Bonjour,

Sans VBA, à essayer

Condition 1 (Rouge)
=NB.SI(D$2 : D$8;D2)>1

Condition 2 (Vert)
=(SOMMEPROD(($B$2:$Q$8=D2)*(MOD(COLONNE($B$2:$Q$8);4)=0))>1)*(D2<>"")

Le fichier est joint
 

Pièces jointes

Re : MFC double condition avec priorité à appliquer via VBA

Re 🙂,
Effectivement kjin, un peu bourrin 😀. Le problème, c'est que je remplis toutes mes cellules via VBA, donc, l'événementiel ne prends pas... D'où ma recherche en MFC... Merci quand même, c'est toujours un début.
Bonne journée 😎
 
Re : MFC double condition avec priorité à appliquer via VBA

Re 🙂,
Merci Monique, ça me parrait effectivement ce que je cherche. Je vais prendre 2, 3 aspirines et chercher à comprendre pour l'adapter, avec insertion en VBA ensuite...
Je ne peux pas analyser tout de suite, mais je reviens sur le fil dès que possible.
Encore merci 😎
 
Re : MFC double condition avec priorité à appliquer via VBA

Re 🙂,
La solution de Monique est vraiment nickel, même si je comprends pas bien le sommeprod et serait incapable de le reproduire 😱. Quand j'essaie de le saisir moi même, que dalle, mais quand je copie le format de Monique, ça marche...
Finalement, il est plus simple de l'appliquer sur la feuille avant les VBA, ce qui me simplifie la vie...
Merci pour tout 😎
 
- 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

O
Réponses
1
Affichages
900
Olocsob
O
N
Réponses
0
Affichages
796
nakajima
N
J
Réponses
2
Affichages
2 K
J
Retour