OVH Cloud OVH Cloud

Formule nommée

5 réponses
Avatar
garnote
Bonjour Messieurs Dames,

Je me décarcasse comme un malade et en vain pour
détecter par une formule nommée la plage s'étendant
de la première cellule non vide d'une colonne à la
dernière cellule non vide de ladite colonne !
Ces deux formules matricielles
=MIN(SI(A2:A65536<>"";LIGNE(A2:A65536)))
=MAX(SI(A2:A65536<>"";LIGNE(A2:A65536)))
me donnent un peu d'espoir mais...
Please, comment con fait ?

Serge

5 réponses

Avatar
garnote
Léger progrès

Je mets ces deux formules matricielles en C1 et C2
=MIN(SI(A2:A65536<>"";LIGNE(A2:A65536)))
=MAX(SI(A2:A65536<>"";LIGNE(A2:A65536)))
et je nomme «plage» la formule suivante :
ÞCALER($A$1;$C$1-1;0;$C$2-$C$1+1)
Mais deux inconvénients :
1. Quand je modifie les valeurs de la colonne A, le recalcul
de C1 et C2 prend un temps fou,
2. Ne tient pas compte de A1.

Serge
Avatar
Starwing
Bonjour Garnote,

Ceci ferais ton bonheur?

"La plage s'étend à partir de la cellule: "&ADRESSE(MIN(SI
(ESTVIDE(A1:A65533);LIGNE(A1:A65533)));1)&"à la
cellule "&ADRESSE(MAX(SI(ESTVIDE(A1:A65535);LIGNE
(A1:A65535)));1)
Matricielle
Validation par: Ctrl + Shift + Enter

Starwing
-----Message d'origine-----
Bonjour Messieurs Dames,

Je me décarcasse comme un malade et en vain pour
détecter par une formule nommée la plage s'étendant
de la première cellule non vide d'une colonne à la
dernière cellule non vide de ladite colonne !
Ces deux formules matricielles
=MIN(SI(A2:A65536<>"";LIGNE(A2:A65536)))
=MAX(SI(A2:A65536<>"";LIGNE(A2:A65536)))
me donnent un peu d'espoir mais...
Please, comment con fait ?

Serge



.



Avatar
Starwing
Bonjour,

=MIN(SI(A2:A65536<>"";LIGNE(A2:A65536)))
=MAX(SI(A2:A65536<>"";LIGNE(A2:A65536)))

Change par :
=MIN(SI(A1:A65535<>"";LIGNE(A1:A65535)))
=MAX(SI(A1:A65535<>"";LIGNE(A1:A65535)))

Starwing

-----Message d'origine-----
Léger progrès

Je mets ces deux formules matricielles en C1 et C2
=MIN(SI(A2:A65536<>"";LIGNE(A2:A65536)))
=MAX(SI(A2:A65536<>"";LIGNE(A2:A65536)))
et je nomme «plage» la formule suivante :
ÞCALER($A$1;$C$1-1;0;$C$2-$C$1+1)
Mais deux inconvénients :
1. Quand je modifie les valeurs de la colonne A, le
recalcul

de C1 et C2 prend un temps fou,
2. Ne tient pas compte de A1.

Serge


.



Avatar
garnote
Oui mais là, c'est la ligne 65536 qui est ignorée.
Mais c'est moins grave que d'ignorer la ligne 1 !
Quant à ta formule matricielle, je n'arrive pas à
la faire fonctionner. Et erre-je en croyant qu'on ne
peut pas entrer une formule matricielle dans une
formule nommée ?

Serge


"Starwing" a écrit dans le message de
news: 178a201c44995$273d2590$
Bonjour,

=MIN(SI(A2:A65536<>"";LIGNE(A2:A65536)))
=MAX(SI(A2:A65536<>"";LIGNE(A2:A65536)))

Change par :
=MIN(SI(A1:A65535<>"";LIGNE(A1:A65535)))
=MAX(SI(A1:A65535<>"";LIGNE(A1:A65535)))

Starwing

-----Message d'origine-----
Léger progrès

Je mets ces deux formules matricielles en C1 et C2
=MIN(SI(A2:A65536<>"";LIGNE(A2:A65536)))
=MAX(SI(A2:A65536<>"";LIGNE(A2:A65536)))
et je nomme «plage» la formule suivante :
ÞCALER($A$1;$C$1-1;0;$C$2-$C$1+1)
Mais deux inconvénients :
1. Quand je modifie les valeurs de la colonne A, le
recalcul

de C1 et C2 prend un temps fou,
2. Ne tient pas compte de A1.

Serge


.



Avatar
Starwing
Bonjour Serge,

Et erre-je en croyant qu'on ne peut pas entrer une formule
matricielle dans une formule nommée ?
oui, dans une formule nommée on peut entrer une formule
matricielle.

="La plage s'étend à partir de la cellule: "&ADRESSE(MIN(SI
(ESTVIDE(A1:A65535);LIGNE(A1:A65535)));1)&"à la
cellule"&ADRESSE(MAX(SI(ESTVIDE(A1:A65535);LIGNE
(A1:A65535)));1)


validation avec Ctrl + Shift + Entrée

Starwing