Trouver le Min et Max d'une série de données en fonction d'un critère

Xenors

XLDnaute Nouveau
Bonjour à tous :)

Sur une feuille Excel se présente un tableau de 3 colonnes (A,B,C) respectivement : CodeMatPrem ; CodeFournisseur ; PrixAchat

Je souhaite, à partir d'un bouton, pouvoir sélectionner à l'aide d'une combobox un code matière première afin d'obtenir le prix le moins cher et le prix le plus cher de cette matière.

Au départ, j'étais parti pour utiliser les fonctions min/max avec la fonction vlookup mais, n'y arrivant pas, j'ai finalement opté pour une autre solution.
Voici ce que j'ai fait.

Macro pour trouver le prix le moins cher :

Code:
Sub PrixMoinsCher()
Dim a As String
a = UserForm6.ComboBox1.Value
Dim b As String
b = Application.WorksheetFunction.Max(Range("C2:C64"))
For Each x In Range("A2:A64")
    If x.Value = a Then
        If x.Offset(0, 2).Value < b Then
            b = x.Offset(0, 2).Value
        End If
    End If
Next
UserForm6.TextBox1.Value = b
End Sub

Macro pour trouver le prix le plus cher :

Code:
Sub PrixPlusCher()
Dim a As String
a = UserForm6.ComboBox1.Value
Dim b As String
b = Application.WorksheetFunction.Min(Range("C2:C64"))
For Each x In Range("A2:A64")
    If x.Value = a Then
        If x.Offset(0, 2).Value > b Then
            b = x.Offset(0, 2).Value
        End If
    End If
Next
UserForm6.TextBox6.Value = b
End Sub

L'introduction étant faite, venons en aux faits.

Lorsque je lance mon userform avec les macros, une seule seulement ne fonctionne (Prix le plus cher) et pourtant pour la réaliser je suis parti de la première macro.

La macro devant afficher le prix le moins cher affiche au final le prix le plus cher de la colonne sans prendre en compte le critère présent dans la combobox et, pourtant, la boucle avec If que j'ai réalisé est la même pour les 2 macros. Dans le cas où il n'y a qu'un seul prix pour une matière, là par contre, la macro défectueuse affiche la bonne valeur :/

J'ai essayé ces 2 macros avec d'autres chiffres dans la colonne C et là, miracle, les deux fonctionnent sauf que ce n'est pas avec les bons chiffres.
Cela fait maintenant 5h que je bloque dessus, je suis carrément perdu et une aide serait donc la bienvenue xD

Ci-joint vous trouverez le fichier Excel, avec le userform et les 2 macros :)

En copiant les valeurs de la colonne J sur celles de la colonne C, les 2 macros se mettent à fonctionner, je n'arrive vraiment pas à comprendre pourquoi :/

Merci d'avance ! :)

Xenors
 

Pièces jointes

  • Min et Max en fonction d'un critère.xlsm
    54.8 KB · Affichages: 40
Dernière modification par un modérateur:

Xenors

XLDnaute Nouveau
Re : Trouver le Min et Max d'une série de données en fonction d'un critère

Bonjour Jocelyn,

Merci pour ta réponse, seulement je souhaite garder le menu de sélection avec le userform :)
Le but étant que lorsque l'on sélectionne un code de matière première, les différentes textbox située en dessous se remplissent automatiquement :

Menu de selection.PNG

En fait il faudrait que lorsque je sélectionne le code de matière, la première ligne de textbox se remplie automatiquement,
les textbox en dessous se remplirai alors à partir des valeurs contenues dans les premières avec une formule comme vlookup ou bien index+match ?
 
Dernière modification par un modérateur:

Xenors

XLDnaute Nouveau
Re : Trouver le Min et Max d'une série de données en fonction d'un critère

J'ai finalement réussi à trouver d'où cela venait ! :)
Je n'avais pas déclaré mes variables dans le bon "type" au lieu de String, j'ai mis Double et tout est rentré dans l'ordre :cool:

Je ne parviens pas, par contre, à lier les Textbox avec les 2 premières pour qu'apparaissent toutes les informations Fournisseurs... :/

Merci d'avance

Bonne soirée :)
 

Discussions similaires

Réponses
16
Affichages
283
Haut Bas