Definir via des formules un array qui s'auto-ajuste
Bonjour a tous,
Le but de mon probleme est de compter le nb d'items dans une unique colonne situe entres 2 balises qui sont en fait 2 cellules: celle du haut nommee debut et celle du bas nomme fin.
pour representer on a dans la colonne A par exemple:
Debut
45
658
12
69
Bas
Ici la formule Counta() me renvoie donc 4 items entre les 2 balises.
Le probleme est que suivant les fichiers le nb d'items, donc le nb de rangs entre ces deux balises varie aussi. Du coup j'aimerai definir une fonction qui m'evite de changer manuellement l'array dans la fonction Counta() pour chaque fichier.
J'ai commence a travailler dessus avec une fonction address(match(...)) qui me donne bien pour chaque fichier les adresses des balises Debut et Fin mais je n'arrive pas ensuite a m'en servir pour que l'array s'auto adapte. Est-ce possible?
Merci, Al[/b]
Bonjour,
Si tu as les adresses des deux cellules et qu'il n'y a pas de cellules vides :
LIGNE(Adresse Bas)-LIGNE(Adresse Debut)-1
Avec des cellules vides :
NBVAL(Adresse Debut:Adresse Bas)-2
SalutAl a écrit :Bonjour a tous,
Le but de mon probleme est de compter le nb d'items dans une unique colonne situe entres 2 balises qui sont en fait 2 cellules: celle du haut nommee debut et celle du bas nomme fin.
pour representer on a dans la colonne A par exemple:
Debut
45
658
12
69
Bas
Ici la formule Counta() me renvoie donc 4 items entre les 2 balises.
Le probleme est que suivant les fichiers le nb d'items, donc le nb de rangs entre ces deux balises varie aussi. Du coup j'aimerai definir une fonction qui m'evite de changer manuellement l'array dans la fonction Counta() pour chaque fichier.
J'ai commence a travailler dessus avec une fonction address(match(...)) qui me donne bien pour chaque fichier les adresses des balises Debut et Fin mais je n'arrive pas ensuite a m'en servir pour que l'array s'auto adapte. Est-ce possible?
Merci, Al[/b]
en français, je sais faire, mais en anglais, je peux pas tester : définir un nom à partir d'une référence dynamique :
Menu Insertion>>Nom>>définir
Noms dans le classeur : Plage_scan
(ou le nom que tu veux, je suis pas raciste ^^)
Fait référence à :
=INDIRECT(ADRESSE(SOMMEPROD((‘Feuil1’!$A$1:$A$1000="début")*(LIGNE(‘Feuil1’!$A$1:$A$1000)));1;;;"Feuil1") & ":" & "$A$" & SOMMEPROD((‘Feuil1’!$A$1:$A$1000="bas")*('LIGNE(‘Feuil1’!$A$1:$A$1000))))J'ai supposé que ta plage était dans la plage A1:A1000 de Feuil1 : si ce n'est pas le cas, il faut remplacer Feuil1 par "feuille de travail, et A par la colonne,.
Après, c'est une plage dynamique : =NBVAL(Plage_scan)
INDIRECT => INDIRECT (là, c'est facile)
ADRESSE => ADDRESS (feignant les anglais)
SOMMEPROD => SUMPRODUCT (ça se corse)
LIGNE => ROW (pourquoi pas Line, hein!)
Attention aussi au séparateur : en français ";", mais en anglais, je crois que c'est ","
Donc, avant de définir le nom, teste un sommeprod dans une cellule
A+