Somme Deux critères VBA

Fermé
Hugo2212 Messages postés 1 Date d'inscription jeudi 28 septembre 2017 Statut Membre Dernière intervention 28 septembre 2017 - 28 sept. 2017 à 19:12
yg_be Messages postés 23349 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 novembre 2024 - 28 sept. 2017 à 19:58
Bonsoir à tous,

Je me trouve dans une situation compliquée. Mon niveau de VBA ne me permet pas de résoudre un problème, qui pour vous, sera probablement une promenade de santé.

Le problème est le suivant:

- J'ai un tableau de trois colonnes est de plusieurs milliers de lignes.
- La première colonne (A) correspond à des devises (USD, GBP, EUR ......)
- La deuxième colonne (B) correspond à des pays (US, GB, FR, DE .....)
- la troisième correspond (C) à la valeur de la transaction, ex : 1,000,000.00

J'aimerai pouvoir faire la somme des transactions remplissant les mêmes critères.
Je m'explique: faire la somme des valeurs en colonne (C) de toutes les lignes ayant en (A) et en (B) les mêmes valeurs. CaD,toutes les lignes ayant "USD" en (A) et "US" en (B), par exemple.

Si cela s'arrêtait à une seule combinaison je me serais contenté d'une formule matricielle ou d'un SUMIF.

Or, dans mon cas, je ne connais pas tous les pays ni les devises présents dans mon tableau.

Est-il possible de créer une macro VBA, en prenant en compte le fait de ne pas connaitre toutes les combinaisons possibles, du style suivant:

= Somme((A1:A1000000="USD")*(B1:B1000000="US")*((C1:C1000000))

Cela, bien sur pour toutes les combinaisons possibles présentes dans le tableau.

J'espère que ce message vous semble clair.

Je vous prie de vouloir recevoir, d'avance, ma plus grande reconnaissance.

Bien à vous, tous,

Hugo2212

1 réponse

yg_be Messages postés 23349 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 novembre 2024 Ambassadeur 1 554
28 sept. 2017 à 19:58
bonsoir, as-tu envisagé de faire cela via un tableau croisé dynamique?
tu n'as pas expliqué comment tu souhaitais que le résultat se présente.
0