XL 2019 Somme de plusieurs cellules suivant un critère

Bana XIII

XLDnaute Nouveau
Bonjour la communauté,

J’ai un souci avec une macro depuis 3 jours et je souhaite vous le soumettre pour vos éventuelles contributions qui seront les bienvenues.

J’ai un tableau de 3 colonnes ordonnées comme suit : Code-Libellés-Montant. A l’aide d’un formulaire, je rentre les données de dépenses avec 3 textbox dans les colonnes respectives. Il peut arriver qu’un même code se répète sur plusieurs lignes de suite avec des libellés et des montants correspondants dans leurs colonnes respectives. Les codes représentent des lignes budgétaires pour lesquelles je dois faire un suivi.
CodeLibellésMontant
A1Dépense1
3 500​
A1Dépense2
5 000​
A1Dépense3
2 000​
B1Dépense4
10 000​
B1Dépense5
7 200​
C1Dépense6
15 000​
C1Dépense7
6 300​
C1Dépense8
3 100​
C1Dépense9
2 000​

A cet effet grâce à un combobox, je fais appel avec trie sans doublon des codes de la première colonne. Ce que je souhaite, c’est d’obtenir dans un textbox4, la somme des montants correspondants à ce code qu’on retrouve dans la colonne 3.

J’ai fouillé sur internet à la recherche de macros similaires pour adaptation, mais hélas ! En fait je suis débutant en vba.

Merci d'avance!
 
Solution
Bonjour Bana XIII, Job 75, le forum

@Bana XIII , tu avais posé la même question en septembre dernier pour laquelle @job75 t'avait fait exactement la même réponse que tu as marqué comme solution. Si les données du problème ont changé, il faut que tu précises ta demande.
https://www.excel-downloads.com/thr...onne-selon-un-combobox.20048688/post-20358416

Bonjour Bana XIII, Jacky67, le forum,

Avec SumIf/SOMME.SI il n'est pas nécessaire de limiter les plages :
VB:
VB:
Private Sub ComboBox1_Change()
With Sheets("DONNEES")
TextBox1 = Application.SumIf(.Columns(1), ComboBox1, .Columns(2))
End With
End Sub
Bonne journée.

Bien cordialement, @+

job75

XLDnaute Barbatruc
Bonsoir Bana XIII, Yeahou,

Si la ComboBox se nomme ComboBox1 on peut toujours utiliser ce code dans l'UserForm :
VB:
Private Sub ComboBox1_Change()
TextBox4 = Application.SumIf(Columns(1), ComboBox1, Columns(3)) 'SOMME.SI
'---suite---
End Sub
Mais en effet il vaudrait mieux joindre votre fichier.

A+
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour Bana XIII, Job 75, le forum

@Bana XIII , tu avais posé la même question en septembre dernier pour laquelle @job75 t'avait fait exactement la même réponse que tu as marqué comme solution. Si les données du problème ont changé, il faut que tu précises ta demande.
https://www.excel-downloads.com/thr...onne-selon-un-combobox.20048688/post-20358416

Bonjour Bana XIII, Jacky67, le forum,

Avec SumIf/SOMME.SI il n'est pas nécessaire de limiter les plages :
VB:
VB:
Private Sub ComboBox1_Change()
With Sheets("DONNEES")
TextBox1 = Application.SumIf(.Columns(1), ComboBox1, .Columns(2))
End With
End Sub
Bonne journée.

Bien cordialement, @+
 

Discussions similaires

Réponses
4
Affichages
240

Statistiques des forums

Discussions
312 198
Messages
2 086 153
Membres
103 137
dernier inscrit
Billly