Recherche soluton Couleur&Catégorie

Bonjour à tous,

Je gère une base de données sous Excel qui me permet de réaliser un classement de course à pied. Je possède ainsi différentes colonnes, notamment :
Classement, Dossard, Nom coureurs / Catégorie / Points
j'aimerais pouvoir mettre en couleur le meilleur résultat en point par catégorie sur base d’une table de référence exemple ci joint.
Qui connait la formule VBA pour que ce soit automatique ?
Un grand merci par avance :)

7 réponses

  1. Contributeur
    Bonjour,

    Qui connait la formule VBA pour que ce soit automatique ?
    Pourquoi VBA ?
    une mise en forme conditionnelle devrait faire l'affaire.
    0
    1. Bonjour,

      tu n'as pas besoin de VBA pour ça

      sélectionne ton tableau A2:F50 par exemple
      Mise en forme conditionnelle
      la formule pour le meilleur temps est
      =$F2=GRANDE.VALEUR($F$2:$F$50;1)
      Format
      choisir la couleur de remplissage

      recommencer l'opération pour le second temps
      =$F2=GRANDE.VALEUR($F$2:$F$50;2)
      et idem pour le 3éme
      =$F2=GRANDE.VALEUR($F$2:$F$50;3)
      A+
      Mike-31

      Je suis responsable de ce que je dis, pas de ce que tu comprends...
      0
      1. merci pour la réponse, la fonction mise en forme conditionnelle je connais, je reformule ma demande :
        je recherche à mettre en évidence le meilleur résultat en point par catégorie sur une base d'une table de référence couleur qui est situer sur une autre feuil.

        @+
        Maton-54
        0
    2. Contributeur
      Bonjour

      en attendant VBA qui sera sans doute la meilleure option, vous pouvez avec une colonne supplémentaire masquée (ou non) détecter quels sont dans chaque catégorie les lignes qui contiennent le maxi:
      par exemple en G de ligne 1 à LIGNE 1000, en plaçant la formule suivante:

      =SI(MAX(SI($1:$E$1000=E1;$F$1:$F$100)=F1;E1;"")

      formule matricielle à entrer avec la touche enter en maintenant les touches ctrl et shift enfoncées.
      elle s'affiche automatiquement entre accolades dans la barre des formules

      Vu le poids de la formule, il vaut mieux la limiter au nombre de lignes utiles (ici de 1 à 1000)

      Cette formule vous renvoyant en G le nom de la catégorie en ligne avec la valeur max correspondante, il suffit de placer les MFC pour chaque couleur avec chacun des codes

      crdlmnt

      0
      1. Bonjour,

        Tu selectionnes ta colonne E, et comme formule de MFC, pour le gris clair :

        =$e2=max(si(e2:e100="A1";f2=f100)

        etc...
        0
        1. Contributeur
          Salut djidji
          peux tu vérifier chez toi?
          chez moi ça ne fonctionne pas... cette formule est matricielle et les MFC ne l'acceptent pas? Si elle fonctionne chez toi, ça m'intèresse de savoir pourquoi!
          à te lire
          crdlmnt
          0
        2. @VaucluseC'est une formule que j'avais vérifiée avant de la mettre.
          Ce n'est pas la première fois que je mets des matricielles, et pour moi, même si je valide a 3doigts (et que ça ne se voit pas), ça me paraissait naturel.
          Paraissait ......
          J'ai donc recommencé et la, plus de MFC !. 100 sur le métier .....
          Et..... (pourquoi ?) .....elle fonctionne.
          https://www.cjoint.com/c/GLeo5CAV4L7
          Fichier :
          https://www.cjoint.com/c/GLeo7p1wzH7
          0
      2. Re,
        je reviens sur ma proposition si cette fois j'ai bien compris
        tu veux mette en forme conditionnelle la valeur Max de ta colonne F en fonction de ta catégorie colonne E

        alors si c'est cela pour ta mise en forme conditionnelle pour la catégorie S
        =ET($E2="S";$F2=MAX(SI($E$2:$E$50="S";$F$2:$F$50)))

        et autant de règle que de catégorie

        si tu veux faire référence à ta liste je crois que S est en L9
        =ET($E2=$L$9;$F2=MAX(SI($E$2:$E$50=$L$9;$F$2:$F$50)))

        maintenant si tu veux passer par du VBA on verra cet après midi
        A+
        Mike-31

        Je suis responsable de ce que je dis, pas de ce que tu comprends...
        0
        1. Bonjours à tous, voilà je partage avec vous une proposition que j'ai reçu en privé, le tout en code VBA.

          Option Explicit

          Dim tabloC, i&, ln&

          Sub Couleurs()

          Application.ScreenUpdating = False
          tabloC = Sheets("categorie").Range("B2:C" & Sheets("categorie").Range("B" & Rows.Count).End(xlUp).Row)
          For i = 1 To UBound(tabloC, 1)
          tabloC(i, 1) = Sheets("categorie").Range("B" & i + 1)
          tabloC(i, 2) = Sheets("categorie").Range("B" & i + 1).Interior.Color
          Next i
          For i = 1 To UBound(tabloC, 1)
          For ln = 2 To Range("D" & Rows.Count).End(xlUp).Row
          If tabloC(i, 1) = Range("E" & ln) Then
          Range("B" & ln & ":F" & ln).Interior.Color = tabloC(i, 2)
          Exit For
          End If
          Next ln
          Next i
          End Sub

          @+
          Maton-54
          0
          1. Contributeur
            Bonjour,

            Voilà une solution à adapter:

            https://www.cjoint.com/c/HBgrTmhplgQ

            0