B
babou
Guest
Bonjour,
J'ai besoin d'aide a propos d'une maniere d'avoir un decalage dynamique de colonnes tout en utilisant des formules d'indirection. En effet, j'ai d'un cote un spreadsheet xl dans lequel se trouvent mes donnees (appelons ce spreasheet 'toto') , et un autre dans lequel je fais des calculs a l'aide exclusivement de formules (appelons ce spreadsheet 'test').
Le probleme que j'avais est que le nombre de lignes que je peux avoir dans 'toto' est variable. Du coup, j'ai utilise la formule 'indirect' pour referencer dans d'autres cellules le nombre de lignes que j'ai a un instant donne.
Voici un exemple de formule utilise :
=SUM(IF((INDIRECT("'toto'!A"&$I$1&":A"&$I$2))=1,IF((INDIRECT("'toto'!B"&$I$1&":B"&$I$2))=0,1,0)))
Ou I1=2 et I2=COUNTA(toto!A:A) --> je compte le nombre de cellules non vides dans la colonne A de toto. Et comme je sais ne pas en avoir, cela me donne le nombre de lignes.
En gros, cette formule compte combien de cellules verifient les conditions ou A doit contenir "1" et ou B doit contenir "0".
Ca marche super bien et permet de gagner bcp de temps car "toto" est tres tres gros. Et je ne suis pas oblige ou de modifier a la main la borne superieure de mes formules, ou de la mettre d'emblee a quelque chose comme 65536 je crois qui est le nb max de lignes qu'excel supporte.
MAIS CAR IL Y A UN MAIS :
mon probleme est que la formule indirect utilise une syntaxe qui est vue comme une chaine de caracteres codee en "dur". Dans mon exemple, il s'agit de "'toto'!A" par exemple. Ce qui fait que lorsque je rajoute une colonne dans le spreadsheet "toto", mes formules ne sont pas decalees dynamiquement...
Voili voilou...
Quelqu'un saurait-il comment continuer a utliser cette formule d'indirection tout en integrant une autre formule xl mettant une touche de "dynamique" dans tout cela ? Peut-etre qu'il y a une autre maniere de faire les choses.
Je finis en ajoutant que je fais bcp de "SUM" avec des "IF" et des "INDIRECT" imbriques...
C'est devenu pour moi un cauchemar car j'ai une trentaine de spreadsheets avec des formules dans tous les sens et que lorsque je rajoute une colonne dans mon spreadsheet source "toto", je perds un temps fou a me repalucher le tout.
Merci bcp de votre aide.
Un utilisateur excel en voie de deperdition )
PS1 : je joins un fichier montrant ce que je viens d'expliquer.
PS2 : mon excel2000 est en Anglais... Very sorry... Voici un lien qui peut servir donnant les traductions Anglais-Francais http://www.info-3000.com/excel/vbaexcel/traductionfonction.htm
J'ai besoin d'aide a propos d'une maniere d'avoir un decalage dynamique de colonnes tout en utilisant des formules d'indirection. En effet, j'ai d'un cote un spreadsheet xl dans lequel se trouvent mes donnees (appelons ce spreasheet 'toto') , et un autre dans lequel je fais des calculs a l'aide exclusivement de formules (appelons ce spreadsheet 'test').
Le probleme que j'avais est que le nombre de lignes que je peux avoir dans 'toto' est variable. Du coup, j'ai utilise la formule 'indirect' pour referencer dans d'autres cellules le nombre de lignes que j'ai a un instant donne.
Voici un exemple de formule utilise :
=SUM(IF((INDIRECT("'toto'!A"&$I$1&":A"&$I$2))=1,IF((INDIRECT("'toto'!B"&$I$1&":B"&$I$2))=0,1,0)))
Ou I1=2 et I2=COUNTA(toto!A:A) --> je compte le nombre de cellules non vides dans la colonne A de toto. Et comme je sais ne pas en avoir, cela me donne le nombre de lignes.
En gros, cette formule compte combien de cellules verifient les conditions ou A doit contenir "1" et ou B doit contenir "0".
Ca marche super bien et permet de gagner bcp de temps car "toto" est tres tres gros. Et je ne suis pas oblige ou de modifier a la main la borne superieure de mes formules, ou de la mettre d'emblee a quelque chose comme 65536 je crois qui est le nb max de lignes qu'excel supporte.
MAIS CAR IL Y A UN MAIS :
mon probleme est que la formule indirect utilise une syntaxe qui est vue comme une chaine de caracteres codee en "dur". Dans mon exemple, il s'agit de "'toto'!A" par exemple. Ce qui fait que lorsque je rajoute une colonne dans le spreadsheet "toto", mes formules ne sont pas decalees dynamiquement...
Voili voilou...
Quelqu'un saurait-il comment continuer a utliser cette formule d'indirection tout en integrant une autre formule xl mettant une touche de "dynamique" dans tout cela ? Peut-etre qu'il y a une autre maniere de faire les choses.
Je finis en ajoutant que je fais bcp de "SUM" avec des "IF" et des "INDIRECT" imbriques...
C'est devenu pour moi un cauchemar car j'ai une trentaine de spreadsheets avec des formules dans tous les sens et que lorsque je rajoute une colonne dans mon spreadsheet source "toto", je perds un temps fou a me repalucher le tout.
Merci bcp de votre aide.
Un utilisateur excel en voie de deperdition )
PS1 : je joins un fichier montrant ce que je viens d'expliquer.
PS2 : mon excel2000 est en Anglais... Very sorry... Voici un lien qui peut servir donnant les traductions Anglais-Francais http://www.info-3000.com/excel/vbaexcel/traductionfonction.htm