OVH Cloud OVH Cloud

macro pr éviter 25000 formules

4 réponses
Avatar
squeepy
Bonjour,
Hier j'ai soumis un problème de lenteur(voir solution pour lenteur); c'était
dû au fait qu'il y ait 25000 formules réparties dans 13 feuilles. on m'a
donné comme solution pour éviter ça : une boucle, mais j'avoue que ça me
parait complqiué.
Une feuille = un service.
Un service = 140 produits (en ligne)
Un service = 12 mois (en colonne); Il y a 13 services, donc 13 * 12 *140 =
25000

Je vais vous donner 2-3 exemples de formules
1er exemple de la 1er ligne: pour le produit stylo du service informatique
=SI(site!$C$1=6;SI(ESTERREUR(SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="stylo
bic")*(Detail_produit!$J$2:$J$65536)));"";SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="stylo
bic")*(Detail_produit!$J$2:$J$65536)));"")
2e exemple de la 2e ligne pour un otre produit : classeu
=SI(site!$C$1=6;SI(ESTERREUR(SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="classeur")*(Detail_produit!$J$2:$J$65536)));"";SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="classeur")*(Detail_produit!$J$2:$J$65536)));"")

Comment faire une boucle vu que le produit n'est jamais le même?
--
Merci de votre aide

4 réponses

Avatar
Daniel
Bonjour.
Tu dis : une feuille = un service; c'est quoi, la feuille "Detail_produit" ?
Cordialement.
Daniel
"squeepy" a écrit dans le message de
news:
Bonjour,
Hier j'ai soumis un problème de lenteur(voir solution pour lenteur);
c'était
dû au fait qu'il y ait 25000 formules réparties dans 13 feuilles. on m'a
donné comme solution pour éviter ça : une boucle, mais j'avoue que ça me
parait complqiué.
Une feuille = un service.
Un service = 140 produits (en ligne)
Un service = 12 mois (en colonne); Il y a 13 services, donc 13 * 12 *140 > 25000

Je vais vous donner 2-3 exemples de formules
1er exemple de la 1er ligne: pour le produit stylo du service informatique
=SI(site!$C$1=6;SI(ESTERREUR(SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="stylo
bic")*(Detail_produit!$J$2:$J$65536)));"";SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="stylo
bic")*(Detail_produit!$J$2:$J$65536)));"")
2e exemple de la 2e ligne pour un otre produit : classeur
=SI(site!$C$1=6;SI(ESTERREUR(SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="classeur")*(Detail_produit!$J$2:$J$65536)));"";SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="classeur")*(Detail_produit!$J$2:$J$65536)));"")

Comment faire une boucle vu que le produit n'est jamais le même?
--
Merci de votre aide


Avatar
squeepy
c la feuille ou il y a toutes les données
il y a certains produits qui sont consommés par certains services avec
certaines quantites
Tous les services ne consomment pas tous les produits
donc on a une liste
Et les formules que tu as vu font une somme des quantités consommées par
rapport au produit et au service


Bonjour.
Tu dis : une feuille = un service; c'est quoi, la feuille "Detail_produit" ?
Cordialement.
Daniel
"squeepy" a écrit dans le message de
news:
Bonjour,
Hier j'ai soumis un problème de lenteur(voir solution pour lenteur);
c'était
dû au fait qu'il y ait 25000 formules réparties dans 13 feuilles. on m'a
donné comme solution pour éviter ça : une boucle, mais j'avoue que ça me
parait complqiué.
Une feuille = un service.
Un service = 140 produits (en ligne)
Un service = 12 mois (en colonne); Il y a 13 services, donc 13 * 12 *140 > > 25000

Je vais vous donner 2-3 exemples de formules
1er exemple de la 1er ligne: pour le produit stylo du service informatique
=SI(site!$C$1=6;SI(ESTERREUR(SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="stylo
bic")*(Detail_produit!$J$2:$J$65536)));"";SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="stylo
bic")*(Detail_produit!$J$2:$J$65536)));"")
2e exemple de la 2e ligne pour un otre produit : classeur
=SI(site!$C$1=6;SI(ESTERREUR(SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="classeur")*(Detail_produit!$J$2:$J$65536)));"";SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="classeur")*(Detail_produit!$J$2:$J$65536)));"")

Comment faire une boucle vu que le produit n'est jamais le même?
--
Merci de votre aide







Avatar
Daniel
Regarde le classeur :
http://cjoint.com/?gkq1f8g1uU
J'ai ajouté les dates en colonne A, n'ayant pas compris où elles se
trouvaient.
Cordialement.
Daniel
"squeepy" a écrit dans le message de
news:
c la feuille ou il y a toutes les données
il y a certains produits qui sont consommés par certains services avec
certaines quantites
Tous les services ne consomment pas tous les produits
donc on a une liste
Et les formules que tu as vu font une somme des quantités consommées par
rapport au produit et au service


Bonjour.
Tu dis : une feuille = un service; c'est quoi, la feuille
"Detail_produit" ?
Cordialement.
Daniel
"squeepy" a écrit dans le message de
news:
Bonjour,
Hier j'ai soumis un problème de lenteur(voir solution pour lenteur);
c'était
dû au fait qu'il y ait 25000 formules réparties dans 13 feuilles. on
m'a
donné comme solution pour éviter ça : une boucle, mais j'avoue que ça
me
parait complqiué.
Une feuille = un service.
Un service = 140 produits (en ligne)
Un service = 12 mois (en colonne); Il y a 13 services, donc 13 * 12
*140 >> > 25000

Je vais vous donner 2-3 exemples de formules
1er exemple de la 1er ligne: pour le produit stylo du service
informatique
=SI(site!$C$1=6;SI(ESTERREUR(SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="stylo
bic")*(Detail_produit!$J$2:$J$65536)));"";SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="stylo
bic")*(Detail_produit!$J$2:$J$65536)));"")
2e exemple de la 2e ligne pour un otre produit : classeur
=SI(site!$C$1=6;SI(ESTERREUR(SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="classeur")*(Detail_produit!$J$2:$J$65536)));"";SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="classeur")*(Detail_produit!$J$2:$J$65536)));"")

Comment faire une boucle vu que le produit n'est jamais le même?
--
Merci de votre aide









Avatar
Daniel
Bonjour.
Précision :
C'est la macro Test1 qu'il faut utiliser.
Je pense qu'un TCD fera miieux l'affaire.
Cordialement.
Daniel
"Daniel" a écrit dans le message de news:

Regarde le classeur :
http://cjoint.com/?gkq1f8g1uU
J'ai ajouté les dates en colonne A, n'ayant pas compris où elles se
trouvaient.
Cordialement.
Daniel
"squeepy" a écrit dans le message de
news:
c la feuille ou il y a toutes les données
il y a certains produits qui sont consommés par certains services avec
certaines quantites
Tous les services ne consomment pas tous les produits
donc on a une liste
Et les formules que tu as vu font une somme des quantités consommées par
rapport au produit et au service


Bonjour.
Tu dis : une feuille = un service; c'est quoi, la feuille
"Detail_produit" ?
Cordialement.
Daniel
"squeepy" a écrit dans le message de
news:
Bonjour,
Hier j'ai soumis un problème de lenteur(voir solution pour lenteur);
c'était
dû au fait qu'il y ait 25000 formules réparties dans 13 feuilles. on
m'a
donné comme solution pour éviter ça : une boucle, mais j'avoue que ça
me
parait complqiué.
Une feuille = un service.
Un service = 140 produits (en ligne)
Un service = 12 mois (en colonne); Il y a 13 services, donc 13 * 12
*140 >>> > 25000

Je vais vous donner 2-3 exemples de formules
1er exemple de la 1er ligne: pour le produit stylo du service
informatique
=SI(site!$C$1=6;SI(ESTERREUR(SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="stylo
bic")*(Detail_produit!$J$2:$J$65536)));"";SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="stylo
bic")*(Detail_produit!$J$2:$J$65536)));"")
2e exemple de la 2e ligne pour un otre produit : classeur
=SI(site!$C$1=6;SI(ESTERREUR(SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="classeur")*(Detail_produit!$J$2:$J$65536)));"";SOMMEPROD((Detail_produit!$D$2:$D$65536="informatique")*(Detail_produit!$H$2:$H$65536="classeur")*(Detail_produit!$J$2:$J$65536)));"")

Comment faire une boucle vu que le produit n'est jamais le même?
--
Merci de votre aide