Bonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une base de
données ... ça représente un tableau de 3500 lignes et 27 colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Bonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une base de
données ... ça représente un tableau de 3500 lignes et 27 colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Bonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une base de
données ... ça représente un tableau de 3500 lignes et 27 colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Bonjour,
réponse dans ton post ci-dessous :
"Vader" a écrit dans le message de
news:Bonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une base de
données ... ça représente un tableau de 3500 lignes et 27 colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
Oui mais on a vu pire2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
OuiEst-ce plus léger ?
En taille c'est possibleEst-ce plus rapide ?
Non ça c'est sûr, les formules sont quasiment toujours plus rapide que le
VBA.
Merci d'avance,
Antoine
Je vois que tu concatene certaine infos, ne peux-tu pas le faire sur une
colonne et ensuite lancer ton recherchev() sur cette colonne concatenée
(voire même faire un collage spéciale par valeur pour limiter le temps de
recherche).
En gros à ta place je décomposerai ta formule en plusieurs formules sur
plusieurs colonnes.
Si tu as des soucis ou que ça ne convient je pourrai te donner des 'billes'
pour construire ta macro.
En espérant t'avoir apporté un peu
John
Bonjour,
réponse dans ton post ci-dessous :
"Vader" <Vader@discussions.microsoft.com> a écrit dans le message de
news:97719E9B-76A8-4140-93AD-13FCD0E02F98@microsoft.com...
Bonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une base de
données ... ça représente un tableau de 3500 lignes et 27 colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
Oui mais on a vu pire
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Oui
Est-ce plus léger ?
En taille c'est possible
Est-ce plus rapide ?
Non ça c'est sûr, les formules sont quasiment toujours plus rapide que le
VBA.
Merci d'avance,
Antoine
Je vois que tu concatene certaine infos, ne peux-tu pas le faire sur une
colonne et ensuite lancer ton recherchev() sur cette colonne concatenée
(voire même faire un collage spéciale par valeur pour limiter le temps de
recherche).
En gros à ta place je décomposerai ta formule en plusieurs formules sur
plusieurs colonnes.
Si tu as des soucis ou que ça ne convient je pourrai te donner des 'billes'
pour construire ta macro.
En espérant t'avoir apporté un peu
John
Bonjour,
réponse dans ton post ci-dessous :
"Vader" a écrit dans le message de
news:Bonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une base de
données ... ça représente un tableau de 3500 lignes et 27 colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
Oui mais on a vu pire2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
OuiEst-ce plus léger ?
En taille c'est possibleEst-ce plus rapide ?
Non ça c'est sûr, les formules sont quasiment toujours plus rapide que le
VBA.
Merci d'avance,
Antoine
Je vois que tu concatene certaine infos, ne peux-tu pas le faire sur une
colonne et ensuite lancer ton recherchev() sur cette colonne concatenée
(voire même faire un collage spéciale par valeur pour limiter le temps de
recherche).
En gros à ta place je décomposerai ta formule en plusieurs formules sur
plusieurs colonnes.
Si tu as des soucis ou que ça ne convient je pourrai te donner des 'billes'
pour construire ta macro.
En espérant t'avoir apporté un peu
John
Merci John,
Je me doutais bien que la macro serait plus lente ... :-(
J'ai finalement trouver le "truc" je copie/colle les forumles colonne
par colonne, ainsi je ne sature pas la RAM (512 mo et c'est pas assez
!)
Sinon, je ne peux simplifer ou décomposer la forumle car toute cette
recherche est automatisée de la création des rubriques (variables de
la recherche) à la recherche des valeurs proprement dites. Il faut
dire que je remet à jour le tableur 2/3 fois par jours et le collage
spécial est franchement pas pratique dans ce cas.
Peux-tu me dire où trouver les équivalences forumles Excel et
applicatifs macro, site ou bouquin. Car à l'heure actuelle le bouquin
que j'ai ne traite pas de ce sujet ...Bonjour,
réponse dans ton post ci-dessous :
"Vader" a écrit dans le message de
news:Bonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
Oui mais on a vu pire2) Excel plante quant je fais la copie de la forumle suivante sur
les 3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1
en colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de
calcul ?
OuiEst-ce plus léger ?
En taille c'est possibleEst-ce plus rapide ?
Non ça c'est sûr, les formules sont quasiment toujours plus rapide
que le VBA.
Merci d'avance,
Antoine
Je vois que tu concatene certaine infos, ne peux-tu pas le faire sur
une colonne et ensuite lancer ton recherchev() sur cette colonne
concatenée (voire même faire un collage spéciale par valeur pour
limiter le temps de recherche).
En gros à ta place je décomposerai ta formule en plusieurs formules
sur plusieurs colonnes.
Si tu as des soucis ou que ça ne convient je pourrai te donner des
'billes' pour construire ta macro.
En espérant t'avoir apporté un peu
John
Merci John,
Je me doutais bien que la macro serait plus lente ... :-(
J'ai finalement trouver le "truc" je copie/colle les forumles colonne
par colonne, ainsi je ne sature pas la RAM (512 mo et c'est pas assez
!)
Sinon, je ne peux simplifer ou décomposer la forumle car toute cette
recherche est automatisée de la création des rubriques (variables de
la recherche) à la recherche des valeurs proprement dites. Il faut
dire que je remet à jour le tableur 2/3 fois par jours et le collage
spécial est franchement pas pratique dans ce cas.
Peux-tu me dire où trouver les équivalences forumles Excel et
applicatifs macro, site ou bouquin. Car à l'heure actuelle le bouquin
que j'ai ne traite pas de ce sujet ...
Bonjour,
réponse dans ton post ci-dessous :
"Vader" <Vader@discussions.microsoft.com> a écrit dans le message de
news:97719E9B-76A8-4140-93AD-13FCD0E02F98@microsoft.com...
Bonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
Oui mais on a vu pire
2) Excel plante quant je fais la copie de la forumle suivante sur
les 3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1
en colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de
calcul ?
Oui
Est-ce plus léger ?
En taille c'est possible
Est-ce plus rapide ?
Non ça c'est sûr, les formules sont quasiment toujours plus rapide
que le VBA.
Merci d'avance,
Antoine
Je vois que tu concatene certaine infos, ne peux-tu pas le faire sur
une colonne et ensuite lancer ton recherchev() sur cette colonne
concatenée (voire même faire un collage spéciale par valeur pour
limiter le temps de recherche).
En gros à ta place je décomposerai ta formule en plusieurs formules
sur plusieurs colonnes.
Si tu as des soucis ou que ça ne convient je pourrai te donner des
'billes' pour construire ta macro.
En espérant t'avoir apporté un peu
John
Merci John,
Je me doutais bien que la macro serait plus lente ... :-(
J'ai finalement trouver le "truc" je copie/colle les forumles colonne
par colonne, ainsi je ne sature pas la RAM (512 mo et c'est pas assez
!)
Sinon, je ne peux simplifer ou décomposer la forumle car toute cette
recherche est automatisée de la création des rubriques (variables de
la recherche) à la recherche des valeurs proprement dites. Il faut
dire que je remet à jour le tableur 2/3 fois par jours et le collage
spécial est franchement pas pratique dans ce cas.
Peux-tu me dire où trouver les équivalences forumles Excel et
applicatifs macro, site ou bouquin. Car à l'heure actuelle le bouquin
que j'ai ne traite pas de ce sujet ...Bonjour,
réponse dans ton post ci-dessous :
"Vader" a écrit dans le message de
news:Bonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
Oui mais on a vu pire2) Excel plante quant je fais la copie de la forumle suivante sur
les 3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1
en colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de
calcul ?
OuiEst-ce plus léger ?
En taille c'est possibleEst-ce plus rapide ?
Non ça c'est sûr, les formules sont quasiment toujours plus rapide
que le VBA.
Merci d'avance,
Antoine
Je vois que tu concatene certaine infos, ne peux-tu pas le faire sur
une colonne et ensuite lancer ton recherchev() sur cette colonne
concatenée (voire même faire un collage spéciale par valeur pour
limiter le temps de recherche).
En gros à ta place je décomposerai ta formule en plusieurs formules
sur plusieurs colonnes.
Si tu as des soucis ou que ça ne convient je pourrai te donner des
'billes' pour construire ta macro.
En espérant t'avoir apporté un peu
John
Bonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Bonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Bonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Bonjour, *Vader*
Et si tu affecte un nom à ta formule :
Insertion, Nom, Définir, MaF
Fait référence à :
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
Au lieu de copier 94500 fois cette formule, tu copieras 94500 fois MaF.
Qu'en penses-tu ?
--
Bien amicordialement,
P. BastardBonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Bonjour, *Vader*
Et si tu affecte un nom à ta formule :
Insertion, Nom, Définir, MaF
Fait référence à :
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
Au lieu de copier 94500 fois cette formule, tu copieras 94500 fois MaF.
Qu'en penses-tu ?
--
Bien amicordialement,
P. Bastard
Bonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Bonjour, *Vader*
Et si tu affecte un nom à ta formule :
Insertion, Nom, Définir, MaF
Fait référence à :
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
Au lieu de copier 94500 fois cette formule, tu copieras 94500 fois MaF.
Qu'en penses-tu ?
--
Bien amicordialement,
P. BastardBonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Bonjour, *Vader*
Et si tu affecte un nom à ta formule :
Insertion, Nom, Définir, MaF
Fait référence à :
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
Au lieu de copier 94500 fois cette formule, tu copieras 94500 fois MaF.
Qu'en penses-tu ?
--
Bien amicordialement,
P. BastardBonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Bonjour, *Vader*
Et si tu affecte un nom à ta formule :
Insertion, Nom, Définir, MaF
Fait référence à :
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
Au lieu de copier 94500 fois cette formule, tu copieras 94500 fois MaF.
Qu'en penses-tu ?
--
Bien amicordialement,
P. Bastard
Bonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Bonjour, *Vader*
Et si tu affecte un nom à ta formule :
Insertion, Nom, Définir, MaF
Fait référence à :
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
Au lieu de copier 94500 fois cette formule, tu copieras 94500 fois MaF.
Qu'en penses-tu ?
--
Bien amicordialement,
P. BastardBonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Marche pas ... excel refuse de prendre une forumle en référenceBonjour, *Vader*
Et si tu affecte un nom à ta formule :
Insertion, Nom, Définir, MaF
Fait référence à :
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.Allow.
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
Au lieu de copier 94500 fois cette formule, tu copieras 94500 fois MaF.
Qu'en penses-tu ?
--
Bien amicordialement,
P. BastardBonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Marche pas ... excel refuse de prendre une forumle en référence
Bonjour, *Vader*
Et si tu affecte un nom à ta formule :
Insertion, Nom, Définir, MaF
Fait référence à :
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.Allow.
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
Au lieu de copier 94500 fois cette formule, tu copieras 94500 fois MaF.
Qu'en penses-tu ?
--
Bien amicordialement,
P. Bastard
Bonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Marche pas ... excel refuse de prendre une forumle en référenceBonjour, *Vader*
Et si tu affecte un nom à ta formule :
Insertion, Nom, Définir, MaF
Fait référence à :
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.Allow.
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
Au lieu de copier 94500 fois cette formule, tu copieras 94500 fois MaF.
Qu'en penses-tu ?
--
Bien amicordialement,
P. BastardBonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Pouce qui est de récupérer l'écriture de la formule en macro, dans le menu
Outils/Macro/Nouvelle Macro
allume l'enregistreur de macro
tu te mets sur une cellule contenant ta formule, F2 pour l'éditer, [Entrée]
et tu arrête l'enregsitrement.
Dans l'éditeur Visual Basic (même menu que ci-dessus) en fouillant dans le
module1 tu vas trouver ta formule traduite en VBA.
Pour l'affecter à toutes les cellules qui vont bien :
Range("X2:X" & Range("A65536").End(xlUp).Row).FormulaR1C1 > "=MaFormuleRecuperéeAL'EtapeDuDessus"
Avec X qui serait ta colonne de destination de ta formule et A la colonne
contenant à coup sûr le plus grand nombre de données.
Je reste à dispo si besoin.
John
"Vader" a écrit dans le message de
news:Marche pas ... excel refuse de prendre une forumle en référenceBonjour, *Vader*
Et si tu affecte un nom à ta formule :
Insertion, Nom, Définir, MaF
Fait référence à :
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.Allow.
";VLOOKUP(CONCATENATE(LEFT($AG36;6);"";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
Au lieu de copier 94500 fois cette formule, tu copieras 94500 fois MaF.
Qu'en penses-tu ?
--
Bien amicordialement,
P. BastardBonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Pouce qui est de récupérer l'écriture de la formule en macro, dans le menu
Outils/Macro/Nouvelle Macro
allume l'enregistreur de macro
tu te mets sur une cellule contenant ta formule, F2 pour l'éditer, [Entrée]
et tu arrête l'enregsitrement.
Dans l'éditeur Visual Basic (même menu que ci-dessus) en fouillant dans le
module1 tu vas trouver ta formule traduite en VBA.
Pour l'affecter à toutes les cellules qui vont bien :
Range("X2:X" & Range("A65536").End(xlUp).Row).FormulaR1C1 > "=MaFormuleRecuperéeAL'EtapeDuDessus"
Avec X qui serait ta colonne de destination de ta formule et A la colonne
contenant à coup sûr le plus grand nombre de données.
Je reste à dispo si besoin.
John
"Vader" <Vader@discussions.microsoft.com> a écrit dans le message de
news:D749B420-F9FE-4A89-AB57-73C9686AD9E2@microsoft.com...
Marche pas ... excel refuse de prendre une forumle en référence
Bonjour, *Vader*
Et si tu affecte un nom à ta formule :
Insertion, Nom, Définir, MaF
Fait référence à :
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.Allow.
";VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
Au lieu de copier 94500 fois cette formule, tu copieras 94500 fois MaF.
Qu'en penses-tu ?
--
Bien amicordialement,
P. Bastard
Bonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Pouce qui est de récupérer l'écriture de la formule en macro, dans le menu
Outils/Macro/Nouvelle Macro
allume l'enregistreur de macro
tu te mets sur une cellule contenant ta formule, F2 pour l'éditer, [Entrée]
et tu arrête l'enregsitrement.
Dans l'éditeur Visual Basic (même menu que ci-dessus) en fouillant dans le
module1 tu vas trouver ta formule traduite en VBA.
Pour l'affecter à toutes les cellules qui vont bien :
Range("X2:X" & Range("A65536").End(xlUp).Row).FormulaR1C1 > "=MaFormuleRecuperéeAL'EtapeDuDessus"
Avec X qui serait ta colonne de destination de ta formule et A la colonne
contenant à coup sûr le plus grand nombre de données.
Je reste à dispo si besoin.
John
"Vader" a écrit dans le message de
news:Marche pas ... excel refuse de prendre une forumle en référenceBonjour, *Vader*
Et si tu affecte un nom à ta formule :
Insertion, Nom, Définir, MaF
Fait référence à :
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.Allow.
";VLOOKUP(CONCATENATE(LEFT($AG36;6);"";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
Au lieu de copier 94500 fois cette formule, tu copieras 94500 fois MaF.
Qu'en penses-tu ?
--
Bien amicordialement,
P. BastardBonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
J'avais déjà essayé ... hélas j'obtiens une erreur d'execution.
En effet, je recup le code suivant :
Range("AL41").Select
ActiveCell.FormulaR1C1 = _
"=RC37=0 0 ISERROR(VLOOKUP(CONCATENATE(LEFT(RC36,6),"" -
"",RIGHT(LEFT(RC37,14),6)),DATA_FLOW!R1C1:R350C13,MATCH(LEFT(R35C,FIND(""
"",R35C)-1),DATA_FLOW!R1,0),0))?0 RIGHT(LEFT(RC36,20),11)=""Val. Allow.""
CONCATENATE(LEFT(RC36,6),"" - "",RIGHT(LEFT(RC37,14),6))I"
Range("AL42").Select
Ok ... donc si j'execute la macro je devrais trouver le même résultat que la
fonction xls ... seulement l'enregistreur n'a pas l'air de comprendre toute
la forumle, du coup j'obtiens une 1004 "Application Defined or Object Defined
Error".
Aih ... je vois même pas les IF() L'enregistreur Macro comprend-t-il les
imbrications ?
Par contre, le modèle ci-dessous est intéressant :
Range("X2:X" & Range("A65536").End(xlUp).Row).FormulaR1C1 > "=MaFormuleRecuperéeAL'EtapeDuDessus"
C'est pour cela que je cherchais un bouquin ou un site qui me donne les
interfaces Xls / vba pour le parametre FormulaR1C1.Pouce qui est de récupérer l'écriture de la formule en macro, dans le menu
Outils/Macro/Nouvelle Macro
allume l'enregistreur de macro
tu te mets sur une cellule contenant ta formule, F2 pour l'éditer, [Entrée]
et tu arrête l'enregsitrement.
Dans l'éditeur Visual Basic (même menu que ci-dessus) en fouillant dans le
module1 tu vas trouver ta formule traduite en VBA.
Pour l'affecter à toutes les cellules qui vont bien :
Range("X2:X" & Range("A65536").End(xlUp).Row).FormulaR1C1 > > "=MaFormuleRecuperéeAL'EtapeDuDessus"
Avec X qui serait ta colonne de destination de ta formule et A la colonne
contenant à coup sûr le plus grand nombre de données.
Je reste à dispo si besoin.
John
"Vader" a écrit dans le message de
news:Marche pas ... excel refuse de prendre une forumle en référenceBonjour, *Vader*
Et si tu affecte un nom à ta formule :
Insertion, Nom, Définir, MaF
Fait référence à :
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.Allow.
";VLOOKUP(CONCATENATE(LEFT($AG36;6);"";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
Au lieu de copier 94500 fois cette formule, tu copieras 94500 fois MaF.
Qu'en penses-tu ?
--
Bien amicordialement,
P. BastardBonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
J'avais déjà essayé ... hélas j'obtiens une erreur d'execution.
En effet, je recup le code suivant :
Range("AL41").Select
ActiveCell.FormulaR1C1 = _
"=RC37=0 0 ISERROR(VLOOKUP(CONCATENATE(LEFT(RC36,6),"" -
"",RIGHT(LEFT(RC37,14),6)),DATA_FLOW!R1C1:R350C13,MATCH(LEFT(R35C,FIND(""
"",R35C)-1),DATA_FLOW!R1,0),0))?0 RIGHT(LEFT(RC36,20),11)=""Val. Allow.""
CONCATENATE(LEFT(RC36,6),"" - "",RIGHT(LEFT(RC37,14),6))I"
Range("AL42").Select
Ok ... donc si j'execute la macro je devrais trouver le même résultat que la
fonction xls ... seulement l'enregistreur n'a pas l'air de comprendre toute
la forumle, du coup j'obtiens une 1004 "Application Defined or Object Defined
Error".
Aih ... je vois même pas les IF() L'enregistreur Macro comprend-t-il les
imbrications ?
Par contre, le modèle ci-dessous est intéressant :
Range("X2:X" & Range("A65536").End(xlUp).Row).FormulaR1C1 > "=MaFormuleRecuperéeAL'EtapeDuDessus"
C'est pour cela que je cherchais un bouquin ou un site qui me donne les
interfaces Xls / vba pour le parametre FormulaR1C1.
Pouce qui est de récupérer l'écriture de la formule en macro, dans le menu
Outils/Macro/Nouvelle Macro
allume l'enregistreur de macro
tu te mets sur une cellule contenant ta formule, F2 pour l'éditer, [Entrée]
et tu arrête l'enregsitrement.
Dans l'éditeur Visual Basic (même menu que ci-dessus) en fouillant dans le
module1 tu vas trouver ta formule traduite en VBA.
Pour l'affecter à toutes les cellules qui vont bien :
Range("X2:X" & Range("A65536").End(xlUp).Row).FormulaR1C1 > > "=MaFormuleRecuperéeAL'EtapeDuDessus"
Avec X qui serait ta colonne de destination de ta formule et A la colonne
contenant à coup sûr le plus grand nombre de données.
Je reste à dispo si besoin.
John
"Vader" <Vader@discussions.microsoft.com> a écrit dans le message de
news:D749B420-F9FE-4A89-AB57-73C9686AD9E2@microsoft.com...
Marche pas ... excel refuse de prendre une forumle en référence
Bonjour, *Vader*
Et si tu affecte un nom à ta formule :
Insertion, Nom, Définir, MaF
Fait référence à :
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.Allow.
";VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
Au lieu de copier 94500 fois cette formule, tu copieras 94500 fois MaF.
Qu'en penses-tu ?
--
Bien amicordialement,
P. Bastard
Bonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
J'avais déjà essayé ... hélas j'obtiens une erreur d'execution.
En effet, je recup le code suivant :
Range("AL41").Select
ActiveCell.FormulaR1C1 = _
"=RC37=0 0 ISERROR(VLOOKUP(CONCATENATE(LEFT(RC36,6),"" -
"",RIGHT(LEFT(RC37,14),6)),DATA_FLOW!R1C1:R350C13,MATCH(LEFT(R35C,FIND(""
"",R35C)-1),DATA_FLOW!R1,0),0))?0 RIGHT(LEFT(RC36,20),11)=""Val. Allow.""
CONCATENATE(LEFT(RC36,6),"" - "",RIGHT(LEFT(RC37,14),6))I"
Range("AL42").Select
Ok ... donc si j'execute la macro je devrais trouver le même résultat que la
fonction xls ... seulement l'enregistreur n'a pas l'air de comprendre toute
la forumle, du coup j'obtiens une 1004 "Application Defined or Object Defined
Error".
Aih ... je vois même pas les IF() L'enregistreur Macro comprend-t-il les
imbrications ?
Par contre, le modèle ci-dessous est intéressant :
Range("X2:X" & Range("A65536").End(xlUp).Row).FormulaR1C1 > "=MaFormuleRecuperéeAL'EtapeDuDessus"
C'est pour cela que je cherchais un bouquin ou un site qui me donne les
interfaces Xls / vba pour le parametre FormulaR1C1.Pouce qui est de récupérer l'écriture de la formule en macro, dans le menu
Outils/Macro/Nouvelle Macro
allume l'enregistreur de macro
tu te mets sur une cellule contenant ta formule, F2 pour l'éditer, [Entrée]
et tu arrête l'enregsitrement.
Dans l'éditeur Visual Basic (même menu que ci-dessus) en fouillant dans le
module1 tu vas trouver ta formule traduite en VBA.
Pour l'affecter à toutes les cellules qui vont bien :
Range("X2:X" & Range("A65536").End(xlUp).Row).FormulaR1C1 > > "=MaFormuleRecuperéeAL'EtapeDuDessus"
Avec X qui serait ta colonne de destination de ta formule et A la colonne
contenant à coup sûr le plus grand nombre de données.
Je reste à dispo si besoin.
John
"Vader" a écrit dans le message de
news:Marche pas ... excel refuse de prendre une forumle en référenceBonjour, *Vader*
Et si tu affecte un nom à ta formule :
Insertion, Nom, Définir, MaF
Fait référence à :
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.Allow.
";VLOOKUP(CONCATENATE(LEFT($AG36;6);"";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
Au lieu de copier 94500 fois cette formule, tu copieras 94500 fois MaF.
Qu'en penses-tu ?
--
Bien amicordialement,
P. BastardBonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur les
3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de calcul ?
Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Marche pas ... excel refuse de prendre une forumle en référenceBonjour, *Vader*
Et si tu affecte un nom à ta formule :
Insertion, Nom, Définir, MaF
Fait référence à :
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
Au lieu de copier 94500 fois cette formule, tu copieras 94500 fois
MaF. Qu'en penses-tu ?
--
Bien amicordialement,
P. BastardBonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur
les 3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de
calcul ? Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Marche pas ... excel refuse de prendre une forumle en référence
Bonjour, *Vader*
Et si tu affecte un nom à ta formule :
Insertion, Nom, Définir, MaF
Fait référence à :
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
Au lieu de copier 94500 fois cette formule, tu copieras 94500 fois
MaF. Qu'en penses-tu ?
--
Bien amicordialement,
P. Bastard
Bonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur
les 3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de
calcul ? Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine
Marche pas ... excel refuse de prendre une forumle en référenceBonjour, *Vader*
Et si tu affecte un nom à ta formule :
Insertion, Nom, Définir, MaF
Fait référence à :
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
Au lieu de copier 94500 fois cette formule, tu copieras 94500 fois
MaF. Qu'en penses-tu ?
--
Bien amicordialement,
P. BastardBonjour,
Voilà mon dilemme j'ai un tableur qui cherche des données dans une
base de données ... ça représente un tableau de 3500 lignes et 27
colonnes ...
Problèmes :
1) 30 Mo le fichier excel c'est chaud !
2) Excel plante quant je fais la copie de la forumle suivante sur
les 3500*27 cellules.
=IF($AH36=0;0;IF(ISERROR(VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0));0;IF(RIGHT(LEFT($AG36;20);11)="Val.
Allow.";VLOOKUP(CONCATENATE(LEFT($AG36;6);" -
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0)*-1;VLOOKUP(CONCATENATE(LEFT($AG36;6);"
-
";RIGHT(LEFT($AH36;14);6));DATA_FLOW!$A$1:$M$350;MATCH(LEFT(AI$35;FIND("
";AI$35)-1);DATA_FLOW!$1:$1;0);0
En gros elle recherche le croisement de 3 données (2 en ligne + 1 en
colonne).
La question est la suivante :
Est-il possible de faire une macro qui ai la même fonction de
calcul ? Est-ce plus léger ?
Est-ce plus rapide ?
Merci d'avance,
Antoine