Recherche des 3 plus grande valeur

souza

XLDnaute Nouveau
Bonjour a tous,

Je suis debutant sur Excel et souhaiterait creer un petit fichier permettant le suivant de consommation de vehicules.

J'ai plusieurs vehicules (Pick Up, truck, bus). Pour chaque chaque vehicule, j'ai la consommation moyenne depuis le debut qu'on utilise ce vehicule.

J'aimerai donc rechercher les 3 vehicules consommants le plus. En filtrant par type. J'ai donc commence avec mes pick up, en utilisant la petite macro ci dessous.

Cette macro fonctionne mais pas tout le temps !!!! Je ne comprend pas pourquoi.

Par moment elle veut me trouver que 2 valeur si j'en veux 3 un message d'erreur s'affiche, parfois qu'une seule. J'ai l'impression que ca soit en fonction des valeurs du tableau. J'ai pourtant fais attention a ne pas avoir de valeurs identiques, nul et de bien avoir 3 valeur a sélectionner.

Si quelqu'un pourrais m'aider ca serait super sympa. Merci a vous tous.

Dim i As Integer
Dim ValMax As Long




Dim txt As Variant, cel As Range
Dim plage As Range

Sheets("Data").Select

'Selection de la plage de recherche

txt = "PICK UP"

Sheets("Data").Select
For Each cel In Range("B6", [B3100].End(xlUp))
If UCase(cel) = txt Then _
Set plage = Union(cel.Offset(0, 3), IIf(plage Is Nothing, cel.Offset(0, 3), plage))

Next
If Not plage Is Nothing Then _
plage.Select: MsgBox "Nombre de zones : " & plage.Areas.Count


'Je recherche mes 3 plus grosses valeurs
For i = 1 To 3
'Récupération des 3 plus grande valeur
ValMax = Application.WorksheetFunction.Large(Selection, i)
'Recherche de la valeur dans la meme plage de recherche
With Selection.Find(ValMax, , xlValues).Font
'On met en gras
.Bold = True
'On colore en rouge
.Color = vbRed
End With

Next

Voici egalement ma liste de valeur, que j'utilise pour tester cette macro. Avec cette liste, la macro ci dessus me trouve que 2 grandes valeur, 92 et 45. si j'en demande 3 ca m'affiche un message d'erreur. '91'

Merci a vous tous

1,00

2,00

3,00

4,00

5,00

32,00

45,00

21,00

92,00

38,00
 

Modeste

XLDnaute Barbatruc
Re : Recherche des 3 plus grande valeur

Bonjour souza et bienvenue sur ce sacré forum!!

Deux choses, si tu le permets:
- Sans fichier exemple, ça ne va pas faciliter le travail de ceux qui seraient prêts à t'aider!
- Pourquoi une macro plutôt qu'une formule et une MFC?
 

souza

XLDnaute Nouveau
Re : Recherche des 3 plus grande valeur

Bonjour,

Tout d'abord merci pour votre réponse.

Je n'avais pas transmis le fichier car je ne voulais pas encombrer le forum. Je vous le transmets donc.

J'ai utilise une macro car c'est a ma connaissance le seul moyen de faire mon tri des grandes valeurs. Mais peut etre qu'il y a un moyen plus simple. Je ne connais pas les MFC.

Merci a vous
 

Pièces jointes

  • Gasoil_V5.xls
    255 KB · Affichages: 72

hbenalia

XLDnaute Occasionnel
Re : Recherche des 3 plus grande valeur

Bonjour à tous,

Remplaces ton code par :


Code:
Dim i As Integer
Dim ValMax As Long
Dim txt As Variant, cel As Range
Dim plage As Range

Sheets("Data").Select

'Sélection de la plage de recherche

txt = "PICK UP"

Set MyRange = Range("B6", [B3100].End(xlUp))

For Each cel In MyRange
If UCase(cel) = txt Then _
Set plage = Union(cel.Offset(0, 3), IIf(plage Is Nothing, cel.Offset(0, 3), plage))

Next
If Not plage Is Nothing Then _
plage.Select: MsgBox "Nombre de zones : " & plage.Areas.Count

'Je recherche mes 3 plus grandes valeurs
For i = 1 To 3

'Récupération des 3 plus grandes valeurs

ValMax = Application.WorksheetFunction.Large(MyRange, i)

'Recherche de la valeur dans la même plage de recherche

With MyRange.Find(ValMax, , xlValues).Font

'On met en gras
     .Bold = True

'On colore en rouge
     .Color = vbRed

End With

Next

Cordialement
 

Modeste

XLDnaute Barbatruc
Re : Recherche des 3 plus grande valeur

Re-bonjour souza, Balot57, bonjour aussi hbenalia,

Sans remettre en cause la proposition d'hbenalia (pas encore examinée comme il se doit), une proposition avec formule en R1:R3 puis, sur la plage E6:E25, une Mise en Forme Conditionnelle (alias MFC ;))
 

Pièces jointes

  • Gasoil_V5(MFC).xls
    247 KB · Affichages: 93

souza

XLDnaute Nouveau
Re : Recherche des 3 plus grande valeur

Merci a tous pour vos réponses,

J'ai essaye vos diverses solutions, le code ne fonctionne pas. J'ai toujours le meme probleme. Exactement le meme blocage, a la meme ligne. Vraiment je vois pas ce qui se passe.

Pour la solution de la MFC (maintenant que je sais ce aue c'est :) ). Merci a vous, ca marche super et effectivement c'est beaucoup plus simple. Mais je ne maitrise absolument pas les formules matricielles. Je me creuse la tete depuis le debut de l'apres midi, pour essayer (en copiant vos formules, en bidouillant avec mes petites neuronnes), d'obtenir le numero du vehicule dans une autre case que celle qui retourne la consommation.

Quelqu'un pourrait il m'aider et ensuite j'arrête de vous déranger, promis !!!!

Merci a tous
 

Modeste

XLDnaute Barbatruc
Re : Recherche des 3 plus grande valeur

Bonsoir,

Si hoerwind ne m'en tient pas rigueur, il parlait vraisemblablement de la consommation moyenne: si deux véhicules consomment 92,00 (litres ?) en colonne E, la formule en R1:R3 mentionnera 2 fois 92,00. Simplement, en cas de doublons, la formule EQUIV ne peut renvoyer que la première occurence trouvée ... elle renverra donc l'identité du même véhicule à 2 reprises!

A toi de voir, en fonction de cette info, s'il faut tenter d'y trouver une solution!
 

Discussions similaires

Réponses
2
Affichages
284

Statistiques des forums

Discussions
314 017
Messages
2 104 582
Membres
109 083
dernier inscrit
Stef06