Base DD excel: fonction somme prod ou vba
RodyRody
Messages postés
48
Statut
Membre
-
RodyRody Messages postés 48 Statut Membre -
RodyRody Messages postés 48 Statut Membre -
Bonjour,
Après plusieurs jours de recherche je me permets de me tourner vers vous pr un peu d'aide. Je vais essayer d'être au maximun clair et concis.
Pour plus de clarté j'ai mis à disposition un extrait du fichier sur cjoint.com(lien ci -dessous)
https://www.cjoint.com/?0AtoL3FdWr1
Je dispose d'une première base de donnée (feuille Conca). Celle-ci s'actualise automatiquement tous les jours. Son nombre de ligne et variable et peu aller de 150 lignes à 30 000 lignes
A partir de cette base de donnée j'ai besoin de creer d'autres base de donnée...(sur le fichier du lien feuille "Managed") Celles-ci ont en revanche un nombre de ligne fixe qui ne variera jamais. Dans la feuille "Managed" je dois aller chercher les données de la feuille "Conca" selon trois critères. Pr cela, j'utilise une fonction matricielle "somme prod". Comme la feuille "conca" n'a pas un nombre fixe de ligne, je contourne le problème en demandant à la fonction "somme prod" d'aller chercher dans les 65 536 lignes du fichiers.
Mon problème est que même si ca fonctionne, à chaque update de la feuille conca je bloque excel durant 15 minutes (sans exagérer).
Pensez vous qu'il existe une solution pr améliorer la rapidité d'excution du fichier ?
Je pense que je devrais me tourner vers VBA, mais étant débutant je ne sais même pas par ou commencer. Si au moins je pourrais avoir une ligne directrice pr commencer à coder cela m'aiderait bcp.
En remerciant d'avance pour vos réponses.
Bonne journée à tous.
Après plusieurs jours de recherche je me permets de me tourner vers vous pr un peu d'aide. Je vais essayer d'être au maximun clair et concis.
Pour plus de clarté j'ai mis à disposition un extrait du fichier sur cjoint.com(lien ci -dessous)
https://www.cjoint.com/?0AtoL3FdWr1
Je dispose d'une première base de donnée (feuille Conca). Celle-ci s'actualise automatiquement tous les jours. Son nombre de ligne et variable et peu aller de 150 lignes à 30 000 lignes
A partir de cette base de donnée j'ai besoin de creer d'autres base de donnée...(sur le fichier du lien feuille "Managed") Celles-ci ont en revanche un nombre de ligne fixe qui ne variera jamais. Dans la feuille "Managed" je dois aller chercher les données de la feuille "Conca" selon trois critères. Pr cela, j'utilise une fonction matricielle "somme prod". Comme la feuille "conca" n'a pas un nombre fixe de ligne, je contourne le problème en demandant à la fonction "somme prod" d'aller chercher dans les 65 536 lignes du fichiers.
Mon problème est que même si ca fonctionne, à chaque update de la feuille conca je bloque excel durant 15 minutes (sans exagérer).
Pensez vous qu'il existe une solution pr améliorer la rapidité d'excution du fichier ?
Je pense que je devrais me tourner vers VBA, mais étant débutant je ne sais même pas par ou commencer. Si au moins je pourrais avoir une ligne directrice pr commencer à coder cela m'aiderait bcp.
En remerciant d'avance pour vos réponses.
Bonne journée à tous.
A voir également:
- Base DD excel: fonction somme prod ou vba
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Base de registre - Guide
- Si ou excel - Guide
- Formules excel de base - Guide
9 réponses
je pense vraiment qu'un TCD te reglerait tous les problèmes. Cela supposerait que ta feuille "Manager" change de format à chaque mise à jour. Est-ce possible?
Pour VBA, il y a des spécialistes ici (michel_m par exemple).
Pour VBA, il y a des spécialistes ici (michel_m par exemple).
Bonjour Body5151,
Merci pr ta réponse. Effectivement j'ai pensé à passer par un TCD de la feuille conca et en effet ca résoud quelqu'un de mes soucis. Le problème est que la feuille conca n'est pas très souple. Les intitulés qu'elles utilisent sont incorrectes et je n'ai pas moyen de les corriger sur le TCD. En outre j'aimerai vraiment réussir à compléter les bases de données déjà construites (type feuille "Managed") puisqu'il y a déjà d'autres TCD et graphique qui ont découle. C'est vraiment dommage que les formules matricielle soit si lourde.
michel_m pensez vous que la réponse réside dans un code VBA ?
Merci à tous.
Merci pr ta réponse. Effectivement j'ai pensé à passer par un TCD de la feuille conca et en effet ca résoud quelqu'un de mes soucis. Le problème est que la feuille conca n'est pas très souple. Les intitulés qu'elles utilisent sont incorrectes et je n'ai pas moyen de les corriger sur le TCD. En outre j'aimerai vraiment réussir à compléter les bases de données déjà construites (type feuille "Managed") puisqu'il y a déjà d'autres TCD et graphique qui ont découle. C'est vraiment dommage que les formules matricielle soit si lourde.
michel_m pensez vous que la réponse réside dans un code VBA ?
Merci à tous.
Par contre, en regardant un peu tes formules, je n'ai pas l'impression que l'utilisation de "sommeprod" est adéquate. Peux-tu donner les critères précis qui te permettent de trouver le résultat de la 1ère ligne de la feuille "manager" par exemple?
Oui bien sur :
Pr trouver par exemple 245.2 dans la cellule ("I6") je demande à somme.prod d'aller chercher :
Dans la colonne A de la feuille conca le MC: "BRP01"
Dans la colonne M de la feuille conca l'intitulé:"Manufacturing output"
Dans la colonne L de la feuille conca la ligne (row): "14"
Une fois qu'xls a trouvé cette matrice je luis demande qu'il prenne la valeur trouvée dans la colonne "O".
Donc si je résume la formule ne fait pas de somme, j'utililse "somme prod" juste pr trouver une valeur selon trois critères.
Merci de tes conseils
Pr trouver par exemple 245.2 dans la cellule ("I6") je demande à somme.prod d'aller chercher :
Dans la colonne A de la feuille conca le MC: "BRP01"
Dans la colonne M de la feuille conca l'intitulé:"Manufacturing output"
Dans la colonne L de la feuille conca la ligne (row): "14"
Une fois qu'xls a trouvé cette matrice je luis demande qu'il prenne la valeur trouvée dans la colonne "O".
Donc si je résume la formule ne fait pas de somme, j'utililse "somme prod" juste pr trouver une valeur selon trois critères.
Merci de tes conseils
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Une des solutions est que tu concatènes tes trois critères dans la feuille Conca, que tu fasses la même choses dans ta feuille "Manager" ; une recherchev avec variable de 2 à 15 pour aller chercher tes valeurs dans les colonnes respectives et l'affaire est dans le sac. Si tu me suis, ok. Sinon, je peux te faire ça moyennant finance (je blague ccm). Sérieusement, ça devrait me prendre 10 mn maxi à partir de ton fichier, mais 'faut que je sois un peu concentré. Je peux te renvoyer la pj par email (je suis nouveau sur le forum et ne sais pas comment faire de lien autrement et oui je dois apprendre aussi)
Loool "moyennant finance" mdr
Effectivement utiliser le "concatené" me parait une bonne solution.
Cependant j'ai un petit souci : je ne peux insérer aucune formule, ligne ou colonne sur la feuille "conca" parce que à chaque update celle ci efface toute les données et reprend son format initial.
La solution pourrait résider dans l'insertion d'une feuille transitoire "Conca_1" qui reprend l'intégralité de la feuille conca et où je pourrais insérer des formules.
Sinon des idées ??
Bonne soirée
Effectivement utiliser le "concatené" me parait une bonne solution.
Cependant j'ai un petit souci : je ne peux insérer aucune formule, ligne ou colonne sur la feuille "conca" parce que à chaque update celle ci efface toute les données et reprend son format initial.
La solution pourrait résider dans l'insertion d'une feuille transitoire "Conca_1" qui reprend l'intégralité de la feuille conca et où je pourrais insérer des formules.
Sinon des idées ??
Bonne soirée
Bonjour,
La formule suivante (cellule [H6] prend en compte que les lignes existantes de la feuille [Conca] :
=SOMMEPROD(((INDIRECT("Conca!$A$2:$A$"&NBVAL(Conca!A:A)))=$C6)*((INDIRECT("Conca!$M$2:$M$"&NBVAL(Conca!A:A)))=$G6)*((INDIRECT("Conca!$L$2:$L$"&NBVAL(Conca!A:A)))=$E6);((INDIRECT("Conca!$n$2:$n$"&NBVAL(Conca!A:A)))))
Note: le temps de travail et nettement plus court.
Salutations.
Le Pingou
La formule suivante (cellule [H6] prend en compte que les lignes existantes de la feuille [Conca] :
=SOMMEPROD(((INDIRECT("Conca!$A$2:$A$"&NBVAL(Conca!A:A)))=$C6)*((INDIRECT("Conca!$M$2:$M$"&NBVAL(Conca!A:A)))=$G6)*((INDIRECT("Conca!$L$2:$L$"&NBVAL(Conca!A:A)))=$E6);((INDIRECT("Conca!$n$2:$n$"&NBVAL(Conca!A:A)))))
Note: le temps de travail et nettement plus court.
Salutations.
Le Pingou