Peoblème sumproduct en vba

  • Initiateur de la discussion Initiateur de la discussion KIM
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

KIM

XLDnaute Accro
Bonjour le forum, bonjour les ami(e)s,
J'ai besoin de votre aide pour finaliser la génération automatique d'un tableau de bord.
Je créé ce tableau de bord avec des formules sommeprod sans problème.
Avec du vba, je n'ai pas réussi à retrouver les bons résultats vec la formule sumproduct.

La même formule fonctionne manuellement (voir fichier joint, onglet Recap, col K) par contre sous vba elle ne fonctionne pas.
J'ai essayé plusieurs codes sans résultat.

Merci d'avance pour votre aide.
KIM
 

Pièces jointes

Re : Peoblème sumproduct en vba

Les deux procédures se ressemblent tellement que j'ai eu envie de n'en faire qu'une !
Et puis comme ça, si vous avez envie d'ajouter d'autre colonnes derrière, ce sera facile de sortir le récapitulatif.
J'ai aussi équipé le classeur de MDictionnArbo, et quelques autres modules qui s'en servent, mais ils ne sont pas utilisés pour le moment.


Oups. Un petit oubli: laissé un 16 au lieu de ColCol. Et aussi une ligne inutile.
 

Pièces jointes

Dernière édition:
Re : Peoblème sumproduct en vba

Re le fil,
@Dranreb,
Merci, cette dernière version me permet de traiter plusieurs tableaux de bord. Je vais aussi regarder votre module MDictionnArbo. Les titres des fonctions sont très intéressants. Par hasard avez-vous un exemple d'utilisation de module.
J'ai voulu contrôler le calcul des données de cette nouvelle version. dans l'onglet Base, la somme de la col N = 160 948 201.
Dans les onglets de récap, j'ai la somme de chaque type de récap est = 160 948 196. J'ai donc une différence de 5€ que je n'arrive pas à trouver. Par contre dans les 1ères versions de GrpOrg, j'ai le m^me total dans les 2 onglets Base et recap de 160 948 201. Est-ce un problème de format ? Comment avoir le même total afin d'avoir de la cohérence dans les tableaux?
@gosselien, Un TCD peut régler ce cas général. Mais je suis à la recherche de procédure vba pour automatiser plusieurs tâches d'une procédure via un bouton d'exécution.

Merci encore
KIM
 
Re : Peoblème sumproduct en vba

Vu. Les dépenses de la feuille base ne sont pas toujours des nombres entiers tels qu'affichés par le format de la colonne N.
Or Som est déclaré avec "&" au bout, ce qui veut dire As Long. Il faut mettre "#" ou "@" à la place.
Avec "#" (ou bien As Double) vous risquer des erreurs d'arrondi aux cumuls des totaux.
Avec "@" (ou bien As Currency) vous êtes obligé de revoir les formats dans les récap. À vous de voir.

Cherchez "ComboBoxLiés", vous trouverez de nombreux exemples de réalisations.
 
Re : Peoblème sumproduct en vba

Re le fil,
Merci à vous tous,
Merci à Dranreb pour ce fameux GrpOrg et toutes les explications données.
Ton aide est précieuse, solution adoptée pour mes tableaux de bord.
@Dranreb
Une dernière question concernant ton poste du 25/02/2015 à 16h39. Je souhaite seulement comprendre mon erreur avec sommeprod. Une fonction que j'utilise régulièrement.
J'ai appliqué ton exemple. Manuellement Sommeprod fonctionne mais dans la procédure j'ai "0" dans l'onglet Recap2.
ci-joint le fichier xls
Merci d'avance.
KIM
 

Pièces jointes

Re : Peoblème sumproduct en vba

Dans le classeur joint je vois des années entrées sous forme de textes à partir de Tbl(1, 3) alors qu'elles sont en nombres dans la plage ColO. Même problème avec Mot(1): c'est un String alors que ce sont des Double dans la colonne ColC. En faisant Tbl(L, 2) = CDbl(Mot(1)) ça marche.
 
Re : Peoblème sumproduct en vba

Bonjour le fil,
@Dranreb,
Je reviens vers toi concernant ton post #10 du 25/02/2015 à 16h49:
Pour mon information seulement, Quelle est la signification du "N" avant chaque condition dans ta formule ci-dessous ?
=SOMMEPROD(N(ColA=$A8);N(ColC=$B8);N(ColO=$F$4);ColN)

Merci d'avance et Bonne fin de journée
Cordialement
KIM
 
Re : Peoblème sumproduct en vba

Bonjour.

C'est une fonction Excel qui convertit les données ayant une représentation interne numérique en cette valeur numérique.
une date en son numéro de série, nombre de jours par rapport au 1/1/1900, et surtout, pour ce cas ci, les logiques VRAI en 1 et FAUX en 0.

Remarque: Cette fonction est peu utilisée parce que la conversion est en générale automatique quand les expressions sont impliquées dans un calcul. Le tout c'est de savoir si on veut que les multiplications de la somme de produits soient effectuées par SOMMEPROD, comme c'est son rôle, ou par un autre système qui pré-traite les expressions matricielles dans ses paramètres.

Un juste compromis pour ne pas l'utiliser c'est de n'effectuer en dehors de SOMMEPROD que les multiplications de conditions :
Code:
=SOMMEPROD((ColA=$A8)*(ColC=$B8)*(ColO=$F$4);ColN)
Mais je suis hostile au principe de ne passer qu'un seul paramètre à SOMMEPROD qui est alors relégué au rôle de n'effectuer qu'une simple somme.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
536
Réponses
8
Affichages
2 K
Réponses
3
Affichages
951
Retour