Barrer le premier doublon/triplon d'une valeur MAX

Bonjour à l'équipe.

Voici un petit problème que j'aimerais résoudre.

Je ne pense cependant pas qu'il soit possible d'y arriver juste avec une Mise en Forme Conditionnelle.

Le petit fichier est en annexe.

Il s'agit d'une série horizontale de valeurs et de textes.

Je voudrais voir la première valeur MAX qui est reprise plusieurs fois (doublons, triplons, ...) être simplement barrée.

On ne traite pas les doublons éventuels des textes.

Il n'y aura donc qu'une seule valeur barrée en cas de doublon/triplon...

Merci.

18doublons-max.xlsx (27.31 Ko)

Bonjour,

Formule de MFC :

=ET(I$10=MAX($I$10:$P$10);NB.SI($I$10:I$10;MAX($I$10:$P$10))<=1)

Dans votre fichier :

10doublons-max.xlsx (27.15 Ko)

Merci Pedro pour cette réponse rapide et fonctionnelle.

En complément, si je peux me permettre de poursuivre les investigations:

1. pourquoi n'est-il pas possible de changer la taille de la police dans cette MFC

2. si nous considérerions maintenant qu'une cellule Texte représente le MAX. Comment pourrions nous barrer la première cellule texte rencontrée. Qu'elle soit simple, doublon, triplon ... ?

Déjà merci.

1. pourquoi n'est-il pas possible de changer la taille de la police dans cette MFC

La taille de police n'est à priori pas modifiable en MFC, ce n'est pas propre à celle-ci en particulier.

2. si nous considérerions maintenant qu'une cellule Texte représente le MAX. Comment pourrions nous barrer la première cellule texte rencontrée. Qu'elle soit simple, doublon, triplon ... ?

Je ne suis pas sûr de comprendre le sens de votre question. Un texte n'étant par définition pas un nombre, il n'y a pas de notion de maximum...

Si vous souhaitez appliquer votre MFC sur un texte, il vous suffit de changer cette partie : MAX($I$10:$P$10)

=ET(I$10="MonTexte";NB.SI($I$10:I$10;"MonTexte")<=1)

Salut Zorgloub,

Salut Pedro,

Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim iTot%, iTotMAX%, iMAX%
'
If Not Intersect(Target, Range("I10:P10")) Is Nothing Then
    cancel = True
    Range("I10:P10").Font.Underline = xlUnderlineStyleNone
    For x = 1 To WorksheetFunction.Max(Range("I10:P10"))
        iTot = WorksheetFunction.CountIf(Range("I10:P10"), x)
        If iTot >= iTotMAX Then
            iTotMAX = iTot
            iMAX = x
        End If
    Next
    If iMAX > 1 Then
        For x = 9 To 16
            Cells(10, x).Font.Underline = IIf(Cells(10, x) = iMAX, xlUnderlineStyleSingle, xlUnderlineStyleNone)
        Next
    Else
        MsgBox "Pas de doublons!"
    End If
End If
'
End Sub

A+

Re Pedro,

Je comprends votre remarque relative aux cases texte qui ne sont bien sûr pas des nombres.

En fait, dans le cadre d'un classement d'une compétition sportive, ce résultat "texte" implique un "résultat pénalisant", de valeur numérique connue, qui est plus grande que le plus grand chiffre.

Donc, dans le cas où apparaîtrait une cellule texte, ce serait la première à prendre en considération, qu'il faudrait barrer, et négliger ensuite toutes les autres valeurs texte et chiffres.

Et il peut y avoir plusieurs "codes textes" différents !

un "mon texte" dans la formule est trop réducteur dans ce cas.

Hi Curulis,

Je vais lire votre réponse avec attention.

Bonjour à tous.

Curulis, j'ai testé mais le message "pas de doublon" survient lorsqu'il il y pourtant des doublons.

J'ai testé d'autres combinaisons de MFC et je m'approche du résultat.

MAIS, je ne comprends pas pourquoi la case "interrompre les MFC si vrai" ne fonctionne pas ! (Excel2010)

En effet, je traite d'abord les cases texte et ensuite les cellules nombres.

Je voudrais interrompre le contrôle MFC des nombres si une cellule texte a été rencontrée.

Une idée ?

Merci.

10doublons-max03.xlsx (42.35 Ko)
Rechercher des sujets similaires à "barrer premier doublon triplon valeur max"