Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA] fonction index renvoi #valeur# si les cases sont vides ??

3 réponses
Avatar
Angelo
bonjour à tous;
j'ai un petit soucis et la je comprend vraiment pas !
dans un ancien sujet j'avais expliquer mon probleme et j'avais trouver la
solution et la ca marche plus !
je vois pas pourquoi cette formule me renvoi #valeur# si les cases
correspondant à la zone (insertion/nom/definir) sont vides or avant ca
faisait pas ca (ca renvoyait rien) :

Code :

=INDEX(zone;MAX(LIGNE(zone)*NON(ESTVIDE(zone)))-LIGNE(zone)+1)

la je comprend plus !!! si un jour ca marche et une semaine plus tard ca
fait plus la meme chose je vais devenir dingue

3 réponses

Avatar
Michel Gaboly
Bonjour Angelo,


Ce n'est pas du VBA, c'est une formule.

Le problème vient vraisemblablement ce qu'il s'agit d'une formule ma tricielle (qui manipule un ensemble de valeurs dans
une même cellule, ici une plage de cellules).

Ce type de formule doit être validé en matriciel : Cmd + Maj + Retour (Mac) ou Ctrl + Maj + Retour (Win)

Si on clique dans la barre de formule et qu'on oublie de revalider de vet te façon, on récupère ensuite #VALEUR!

Pour vérifier si la validation es correcte, il faux examiner la form ule dans la barre de formules : en cas de validation
matricielle, la formule est encadrée de parenthèses.


bonjour à tous;
j'ai un petit soucis et la je comprend vraiment pas !
dans un ancien sujet j'avais expliquer mon probleme et j'avais trouver la
solution et la ca marche plus !
je vois pas pourquoi cette formule me renvoi #valeur# si les cases
correspondant à la zone (insertion/nom/definir) sont vides or ava nt ca
faisait pas ca (ca renvoyait rien) :

Code :

=INDEX(zone;MAX(LIGNE(zone)*NON(ESTVIDE(zone)))-LIGNE(zone)+1)

la je comprend plus !!! si un jour ca marche et une semaine plus tard c a
fait plus la meme chose je vais devenir dingue




--
Cordialement,

Michel Gaboly
www.gaboly.com

Avatar
Angelo
ta raison c'est bien une formule j'me suis trompé dans le sujet car
normalement je le fais en VBA comme ceci
=INDEX(dernier_vide,MAX(ROW(dernier_vide)*NOT(ISBLANK(dernier_vide)))-ROW(dernier_vide)+1)" je trouve que c'est beaucoup moin parlant

bref pour la validation matriciel je l'ai bien fais! et ca me retourne
#valeur# quand meme


Bonjour Angelo,


Ce n'est pas du VBA, c'est une formule.

Le problème vient vraisemblablement ce qu'il s'agit d'une formule matricielle (qui manipule un ensemble de valeurs dans
une même cellule, ici une plage de cellules).

Ce type de formule doit être validé en matriciel : Cmd + Maj + Retour (Mac) ou Ctrl + Maj + Retour (Win)

Si on clique dans la barre de formule et qu'on oublie de revalider de vette façon, on récupère ensuite #VALEUR!

Pour vérifier si la validation es correcte, il faux examiner la formule dans la barre de formules : en cas de validation
matricielle, la formule est encadrée de parenthèses.


bonjour à tous;
j'ai un petit soucis et la je comprend vraiment pas !
dans un ancien sujet j'avais expliquer mon probleme et j'avais trouver la
solution et la ca marche plus !
je vois pas pourquoi cette formule me renvoi #valeur# si les cases
correspondant à la zone (insertion/nom/definir) sont vides or avant ca
faisait pas ca (ca renvoyait rien) :

Code :

=INDEX(zone;MAX(LIGNE(zone)*NON(ESTVIDE(zone)))-LIGNE(zone)+1)

la je comprend plus !!! si un jour ca marche et une semaine plus tard ca
fait plus la meme chose je vais devenir dingue




--
Cordialement,

Michel Gaboly
www.gaboly.com




Avatar
Michel Gaboly
Re,

testé chez moi ; la formule marche correctement,mais renvoie #VALEUR ! si toutes les cellules de "zone" sont vides.

Tu peux l'adapter ainsi :

=SI(NBVAL(Zone) <> 0;INDEX(Zone;MAX(LIGNE(Zone)*NON(ESTVIDE(Zone)))-LIG NE(Zone)+1);"Zone vide")

ou =SI(NBVAL(Zone) <> 0;INDEX(Zone;MAX(LIGNE(Zone)*NON(ESTVIDE(Zone)))- LIGNE(Zone)+1);), en la combinant avec une mise
en forme conditionnelle pour repérer quand zone" est vide, sans poll uer le contenu de la cellule.


ta raison c'est bien une formule j'me suis trompé dans le sujet ca r
normalement je le fais en VBA comme ceci
=INDEX(dernier_vide,MAX(ROW(dernier_vide)*NOT(ISBLANK(dernier_vide))) -ROW(dernier_vide)+1)" je trouve que c'est beaucoup moin parlant

bref pour la validation matriciel je l'ai bien fais! et ca me retourne
#valeur# quand meme



Bonjour Angelo,


Ce n'est pas du VBA, c'est une formule.

Le problème vient vraisemblablement ce qu'il s'agit d'une formule matricielle (qui manipule un ensemble de valeurs dans
une même cellule, ici une plage de cellules).

Ce type de formule doit être validé en matriciel : Cmd + Maj + Retour (Mac) ou Ctrl + Maj + Retour (Win)

Si on clique dans la barre de formule et qu'on oublie de revalider de v ette façon, on récupère ensuite #VALEUR!

Pour vérifier si la validation es correcte, il faux examiner la fo rmule dans la barre de formules : en cas de validation
matricielle, la formule est encadrée de parenthèses.



bonjour à tous;
j'ai un petit soucis et la je comprend vraiment pas !
dans un ancien sujet j'avais expliquer mon probleme et j'avais trouver la
solution et la ca marche plus !
je vois pas pourquoi cette formule me renvoi #valeur# si les cases
correspondant à la zone (insertion/nom/definir) sont vides or av ant ca
faisait pas ca (ca renvoyait rien) :

Code :

=INDEX(zone;MAX(LIGNE(zone)*NON(ESTVIDE(zone)))-LIGNE(zone)+1)

la je comprend plus !!! si un jour ca marche et une semaine plus tard ca
fait plus la meme chose je vais devenir dingue




--
Cordialement,

Michel Gaboly
www.gaboly.com





--
Cordialement,

Michel Gaboly
www.gaboly.com