recherche formule en VBA un peu similaire à sommeprod

Fabienc75

XLDnaute Nouveau
Bonjour le forum,
Je suis débutant en VBA et je suis actuellement à la recherche d'une formule me permettant de récupérer dans une listbox les données d'une colonne d'un fichier excel sans doublons (il peut y avoir la même donnée plusieurs fois dans cette colonne) et en faisant la somme de ce qui correspond à cette donnée mais pour toutes les valeurs de la même donnée.
Je m'explique avec un exemple pour être plus clair :
Dans une colonne A j'ai des noms de produits, comme beurre, sucre, chocolat .... ces données peuvent apparaitre plusieurs fois dans la même colonne, mais je souhaite que dans ma listbox il n'y ait qu'une seule fois la donnée qui apparaisse.
Dans une colonne B j'ai des nombres qui expriment le stock actuel de ces produits.
Si on prend comme exemple chocolat, je souhaite obtenir dans ma listbox le nom du produit chocolat et en face de ce nom dans une autre colonne de la même listbox la somme du stock pour tous les produits ayant le nom chocolat, mais automatiquement sans avoir à indiquer comme on le ferait dans sommeprod que le produit recherché est chocolat, puisque je veux qu'il fasse je travaille pour tous les noms de produits dans ma colonne A de mon fichier excel.

Voila une copie écran pour étayer mon exemple, donc pour le produit chocolat je souhaiterai obtenir dans une listbox : chocolat 13 ( c'est dire une seule fois l'item chocolat alors qu'il apparait 2 fois dans la liste et 13 en stock car c'est la somme des 2 lignes (6 +7)

NOM ARTICLE STOCK ACTUEL
A 1
beurre 2
beurre 3
Biscuits tablette 4
café 5
chocolat 6
chocolat 7
coca 8
Cotton tige 9
dentifrice 10
dentifrice 11

Voila le code que j'ai fait, mais qui me fait apparaître l'intégralité des lignes :

Sub Remplissagestockcategorieproduit()
Dim i As Integer

For i = 2 To Worksheets("Stock actuel").Range("A65536").End(xlUp).Row
If Worksheets("Stock actuel").Range("B" & i).Value <> Worksheets("Stock actuel").Range("B" & Range("B65536").End(xlUp).Row).Value Then
Usf_stockcategorieproduit.Lbx_categorieproduit_stockcategproduit.AddItem
Usf_stockcategorieproduit.Lbx_categorieproduit_stockcategproduit.List(Usf_stockcategorieproduit.Lbx_categorieproduit_stockcategproduit.ListCount - 1, 0) = Worksheets("Stock actuel").Range("B" & i).Value
Usf_stockcategorieproduit.Lbx_categorieproduit_stockcategproduit.List(Usf_stockcategorieproduit.Lbx_categorieproduit_stockcategproduit.ListCount - 1, 1) = Worksheets("Stock actuel").Range("K" & i).Value
Usf_stockcategorieproduit.Lbx_categorieproduit_stockcategproduit.List(Usf_stockcategorieproduit.Lbx_categorieproduit_stockcategproduit.ListCount - 1, 2) = Worksheets("Stock actuel").Range("J" & i).Value
End If
Next i
End sub

Est ce que quelqu'un aurait une idée pour me dépanner ? Où me suis je lancer dans un cas trop complexe pour débuter ?
Je vous remercie de votre aide.
Cordialement
 

Statistiques des forums

Discussions
312 182
Messages
2 086 004
Membres
103 086
dernier inscrit
jcreant