Bonjour a tous,
Je suis nouveau sur ce Forum et d'ailleurs peu habitué à les consulter, donc je risque peut-être de ne pas respecter scrupuleusement la charte d'utilisation. je m'en excuse d'avance.
J'ai créé un programme d'offre (Excel VBA) pour ma société et les filiales belges que je remets à jour chaque année.
Ce programme contient une base de donnée de +/- 3000 lignes d'articles avec 10 colonnes d'informations par article que nos partenaires ont voulu intégrée dans un onglet de la feuille Excel.
La réalisation d'une offre nécessite, lors du choix d'un article, une multitude d'information puisée d'une part dans la base de donnée et sur d'autres onglets comprenant des résultats de calculs. Soit en tout 62 colonnes par ligne d'article et une offre peut comprendre 3000 articles.
la plupart des 62 cellules comprennent ce genre de formule
=SI(B7="";"";INDEX(INDIRECT(RECHERCHEH(C7;entry1!$P$6:$R$11;2;FAUX));BI7;BJ7))
ou
=SIERREUR(RECHERCHEV(AH20;FDO!$C$26:$M$420;10;0);"code fdo!")
etc
Le problème :
Au delà de 2000 lignes pour une offre, la feuille devient très lente. Le résultat,après l'encodage d'un article, apparaît endéans les 2 secondes. c'est beaucoup trop long.
Les questions :
Le fait de supprimer l'onglet de la base de donnée du fichier excel et utiliser une base SQL pourrait-il alléger le processus ?
Pourrait-on également utiliser une autre syntaxe dans les formules reprise ci-dessus ?
Remarques:
On ne peut désactiver le calcul automatique car le contrôle d'erreur serait inactif.
Software:
Excel 2013 et 2016 64 bit
Windows 10 et Windows 7
J'espère ne pas avoir été trop nébuleux dans mes explications.
Toute réponse est la bienvenue.
Merci.
Je suis nouveau sur ce Forum et d'ailleurs peu habitué à les consulter, donc je risque peut-être de ne pas respecter scrupuleusement la charte d'utilisation. je m'en excuse d'avance.
J'ai créé un programme d'offre (Excel VBA) pour ma société et les filiales belges que je remets à jour chaque année.
Ce programme contient une base de donnée de +/- 3000 lignes d'articles avec 10 colonnes d'informations par article que nos partenaires ont voulu intégrée dans un onglet de la feuille Excel.
La réalisation d'une offre nécessite, lors du choix d'un article, une multitude d'information puisée d'une part dans la base de donnée et sur d'autres onglets comprenant des résultats de calculs. Soit en tout 62 colonnes par ligne d'article et une offre peut comprendre 3000 articles.
la plupart des 62 cellules comprennent ce genre de formule
=SI(B7="";"";INDEX(INDIRECT(RECHERCHEH(C7;entry1!$P$6:$R$11;2;FAUX));BI7;BJ7))
ou
=SIERREUR(RECHERCHEV(AH20;FDO!$C$26:$M$420;10;0);"code fdo!")
etc
Le problème :
Au delà de 2000 lignes pour une offre, la feuille devient très lente. Le résultat,après l'encodage d'un article, apparaît endéans les 2 secondes. c'est beaucoup trop long.
Les questions :
Le fait de supprimer l'onglet de la base de donnée du fichier excel et utiliser une base SQL pourrait-il alléger le processus ?
Pourrait-on également utiliser une autre syntaxe dans les formules reprise ci-dessus ?
Remarques:
On ne peut désactiver le calcul automatique car le contrôle d'erreur serait inactif.
Software:
Excel 2013 et 2016 64 bit
Windows 10 et Windows 7
J'espère ne pas avoir été trop nébuleux dans mes explications.
Toute réponse est la bienvenue.
Merci.