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 :
Macro pour trouver le prix le plus cher :
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
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
Dernière modification par un modérateur: