Fonction recherche

  • Initiateur de la discussion krzeszewski
  • Date de début
K

krzeszewski

Guest
Je possède 6 équipe d'un sport quelconque qui sont identifiées par couleur:
rose, rouge, saumon.....bleu
Ma question est comment doit-on faire pour qu'en B12 apparaisse la valeur AINSI que la couleur de l'equipe qui a le plus gros score, en l'occurence ici la cellule bleu avec la valeur 45?
De cette manière je pourrais generaliser avec mini également
En effet car avec la fonction =MAX(B4:B9) ou =GRANDE.VALEUR(B4:B9;1) , je n'obtiens que la valeur ma pas la couleur.

Merci vraiment de votre AIDE !
 

Pièces jointes

  • equipes.zip
    2.1 KB · Affichages: 11
  • equipes.zip
    2.1 KB · Affichages: 10
  • equipes.zip
    2.1 KB · Affichages: 11
O

omicron

Guest
Bonjour kr

Tu trouveras en pièce jointe une façon de traiter le problème posé avec un peu de programmation VB

Private Sub Worksheet_Change(ByVal Target As Range)
Dim table, total As Range
Set table = Range("B4:B9")
Set total = Range("B12")
If Target.CurrentRegion.Address <> table.Address Then Exit Sub
total.Value = 0
For Each Cel In table.Cells
If total.Value <= Cel.Value Then
total.Value = Cel.Value
total.Interior.Color = Cel.Interior.Color
End If
Next Cel
End Sub

La même chose aurait peut-être pu être faite sans recours à VB, mais j'avoue mon ignorance dans ce domaine.

En espérant avoir répondu à la question ...

A+ Omicron
 

Pièces jointes

  • equipes.zip
    8.3 KB · Affichages: 13
  • equipes.zip
    8.3 KB · Affichages: 10
  • equipes.zip
    8.3 KB · Affichages: 11
O

omicron

Guest
Bonsoir Kr

Voici le code adapté pour traiter n'importe quel nombre de lignes et de colonnes.

Il suffit juste de régler les Ranges Table et Total aux valeurs que tu souhaites.

Le Range Table (ici B4:F9) est la zone contenant les points de chaque équipe
Le Range Total (ici B12:F12) est la zone contenant les scores les plus élevés

------------------------------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Table, Total As Range
Set Table = Range("B4:F9") '<<<<< Paramètre à régler
Set Total = Range("B12:F12") '<<<<< Paramètre à régler
If Target.CurrentRegion.Address <> Table.Address Then Exit Sub
For Each Col In Table.Columns
ActiveSheet.Cells(Total.Row, Col.Column).Value = 0
For Each Cel In Col.Cells
If ActiveSheet.Cells(Total.Row, Col.Column).Value <= Cel.Value Then
ActiveSheet.Cells(Total.Row, Col.Column).Value = Cel.Value
ActiveSheet.Cells(Total.Row, Col.Column).Interior.Color = Cel.Interior.Color
End If
Next Cel
Next Col
End Sub
------------------------------------------------------------------------------------------------

En pièce jointe, la feuille adaptée.


A + Omicron
 

Pièces jointes

  • equipesV2.zip
    9.4 KB · Affichages: 30

Statistiques des forums

Discussions
312 501
Messages
2 089 014
Membres
104 005
dernier inscrit
Maxence