Trier mini en fonction de produits

13classeur1.xlsx (10.26 Ko)

Bonjour à tous

je viens d'arriver sur le forum et j'espere que vous pourrez m'aider, j'ai un fichier excel ou sur une feuille notée "mat1" j'ai des codes de matieres. Sur une autre feuille nomée "prixmat" j'ai : dans la colonne A le code des matieres premieres et en colonne C : le prix d'achat de cette matiere. Mais dans ce tableau il y a différent prix d'achat pour une matieres premiere (exemple pour un code matiere premiere= 1 il y a 2 prix d'achats) .

Ce que je n'arrive pas à faire c'est "d'extraire" en VBA (car j'utilise un userform qui lorsque je sélectionne un code matiere premiere j'ai le prix le moins chers qui apparait ) le prix le moins chers pour la matiere premiere...

Donc j'ai réussi à creer dans mon userform la comboBox avec les differents codes de matiere mais pour trouver le prix le moins chers pour la matiere premiere c'est la galere :/

Je vous transmet un fichier excel pour "illustrer" mes propos

Merci ..

Bonsoir,

=SI(A2<>"";MIN(SI(prixmat1!A:A=A2;prixmat1!C:C));"")

Formule matricielle (à valider par Ctrl+Maj+Entrée).

Cordialement.

Bonjour merci pour la reponse y a t il un moyen de le recuperer en code vba que je puisse le mettre dans ma textBox ?

Pas de userform dans ton fichier.

15classeur.xlsm (18.53 Ko)

ah oui pardon je me suis trompé de fichier voila le meme fichier avec le userform ajouté

merci encore

Ton Initialize épurée pour commencer :

Private Sub UserForm_Initialize()
    Dim i%
    ' remplissage de la combobox n°matiere
    With Sheets("mat1°")
        For i = 2 To .Range("A" & Rows.Count).End(xlUp).Row
            ComboBox1.AddItem .Cells(i, 1)
        Next i
    End With
End Sub

Explications: au chargement du Userform, la ComboBox ne peut être plus "Clear" ! Et ensuite, Initialize ne se déclenchera plus, donc...

Il est recommandé de déclarer ses variables avant utilisation... mais au cas particulier on peut se passer de variables sans que le code s'en trouve allongé.

Ensuite, je veux bien aller charcher le prix le moins cher pour le mettre dans une TextBox, mais cela me paraît incohérent dans une ListBox.

Cordialement.

Avec david69 on te remerci beaucoup (on bosse ensemble) on est preneur d'idée pour notre probleme.. sachant que nous voulons passer par un userform pour que ca soit plus agreable pour le futur utilisateur , comment faire apparaitre alors le prix le moins chers pas code de matiere dans l'userform ?

Re,

Voilà par exemple pour afficher dans une TextBox :

Private Sub ComboBox1_Change()
    Dim n%, pmin
    With Sheets("prixmat1")
        If ComboBox1.ListIndex > -1 Then
            n = .Columns("A").Find(ComboBox1.Value).Row
            pmin = .Cells(n, 3).Value
            Do While .Cells(n + 1, 1) = .Cells(n, 1)
                n = n + 1
                If .Cells(n, 3) < pmin Then pmin = .Cells(n, 3)
            Loop
            TextBox1.Value = pmin
        Else
            TextBox1.Value = ""
        End If
    End With
End Sub

13200 = code postal ?

Cordialement.

génial ton code marche à merveille ! oui code postale ^^

Je ferai bien un tour au marché après-demain (si pas trop changé...)

Haha tu peux y aller c tj le meme !

Je vais y penser pour l'été prochain... Là un peu difficile !

Rechercher des sujets similaires à "trier mini fonction produits"