Recherche soluton Couleur&Catégorie

Maton-54 Messages postés 7 Statut Membre -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
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. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Qui connait la formule VBA pour que ce soit automatique ?
    Pourquoi VBA ?
    une mise en forme conditionnelle devrait faire l'affaire.
    0
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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. Maton-54 Messages postés 7 Statut Membre
       
      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
  3. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    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
  4. DjiDji59430 Messages postés 4280 Date d'inscription   Statut Membre Dernière intervention   718
     
    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. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      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
      1. DjiDji59430 Messages postés 4280 Date d'inscription   Statut Membre Dernière intervention   718 > Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention  
         
        C'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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  7. Maton-54 Messages postés 7 Statut Membre
     
    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
  8. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Voilà une solution à adapter:

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

    0