cerhu > microsoft.* > microsoft.excel

gejoun (13/02/2020, 18h53)
Bonjour à tous,

Je cherche à faire une formule qui me permette de vérifier si, sur une
plage de cellules, toutes les cellules de la deuxième ligne sont vides.
Et dans ce cas, renvoyer une valeur avec la formule SI "classique"

Et je n'arrive pas à tout imbriquer pour que ça fonctionne :-/ :

SI(ESTVIDE((MOD(LIGNE(C4:C13);2)));"";C1)

Une exemple vaut mieux qu'un long discours :
[..]

Quelqu'un peut me dépanner ?

Merci !
MichD (13/02/2020, 22h59)
Le 13/02/20 à 11:53, gejoun a écrit :
> Bonjour à tous,
> Je cherche à faire une formule qui me permette de vérifier si, sur une
> plage de cellules, toutes les cellules de la deuxième ligne sont vides.
> Et dans ce cas, renvoyer une valeur avec la formule SI "classique"
> Et je n'arrive pas à tout imbriquer pour que ça fonctionne :-/ :
> SI(ESTVIDE((MOD(LIGNE(C4:C13);2)));"";C1)
> Une exemple vaut mieux qu'un long discours :
> [..]
> Quelqu'un peut me dépanner ?
> Merci !


Bonjour,

Suppose une plage nommée de cellules du style C1:H25 ayant comme nom RG
Pour savoir si la deuxième ligne de cette plage est vide,

=NBVAL(DECALER(Rg;1;;1;))
Cette formule retourne 0 signifiant que la plage est vide

Si tu veux afficher "Vide" ou "Non Vide"
=SI(NBVAL(DECALER(Rg;1;;1;))=0;"Vide";"Non vide")

MichD
gejoun (14/02/2020, 11h33)
Le 13/02/2020 à 21:59, MichD a écrit :

> Bonjour,
> Suppose une plage nommée de cellules du style C1:H25 ayant comme nom RG
> Pour savoir si la deuxième ligne de cette plage est vide,
> =NBVAL(DECALER(Rg;1;;1;))
> Cette formule retourne 0 signifiant que la plage est vide
> Si tu veux afficher "Vide" ou "Non Vide"
> =SI(NBVAL(DECALER(Rg;1;;1;))=0;"Vide";"Non vide")
> MichD


Bonjour,

Merci pour ton retour. Effectivement, je risquais pas de trouver :-/

J'ai voulu de modifier la formule en indiquant une plage de données
plutôt que d'en nommer une (car je dois répéter la formule à plein
d'endroit dans ma feuille de calcul, et ce sera plus simple de raisonner
en plage C4:C13 qu'avec un nom) ; :mais elle ne fonctionne pas.

J'ai aussi essayé en nommant la plage (donc la formule que tu m'as
donné), mais idem, elle affiche bien "non vide" si je renseigne un
nombre en C5, mais si j'en renseigne un en C7, C9, C11 ou C13, elle
affiche "vide" alors qu'elle devrait afficher "non vide" :
[..]
C'est moi qui passe à côté de quelque chose ?

Et concernant la formule elle même; à quoi servent les 1;;1;))=0 ?
Surtout les 2 points virgules consécutifs entre les 2 uns ??

Merci !
MichD (14/02/2020, 13h24)
ATTENTION : ta question originale demandait ceci : "si, sur une plage de
cellules, toutes les cellules de la deuxième ligne sont vides"

J'ai compris :

Une plage C3:G25
La formule retourne vide ou non vide si la ligne dans mon exemple C4:G4
est vide ou non.

Ton fichier exemple publié : Plage Rg = C4:C13 Lorsque la ligne C5 est
vide la formule retourne vide ou non vide et elle est appropriée.

La formule fait exactement ce que tu as demandé. Dans une plage
déterminée de cellules, il n'y a qu'une deuxième ligne.

Toujours dans ton exemple, tu peux remplacer dans la formule la plage
nommée "RG" par exemple : C4:G13 la formule devient :
=SI(NBVAL(DECALER(C4:G13;1;;1;))=0;"Vide";"Non vide")

Si la lilgne C5:G5 est vide, la formule affiche VIDE.

Si tu veux autre chose, il faut prendre le temps de formuler ta question!

MichD
gejoun (14/02/2020, 15h06)
Le 14/02/2020 à 12:24, MichD a écrit :
[..]
> Toujours dans ton exemple, tu peux remplacer dans la formule la plage
> nommée "RG" par exemple : C4:G13  la formule devient :
> =SI(NBVAL(DECALER(C4:G13;1;;1;))=0;"Vide";"Non vide")
> Si la lilgne C5:G5 est vide, la formule affiche VIDE.
> Si tu veux autre chose, il faut prendre le temps de formuler ta question!
> MichD


Oui, effectivement, ma demande est mal formulée. Pour moi ça parti
évident, mais pas pour quelqu'un qui sait pas ce que je cherche à faire.

Dans la plage C4:C13, je veux que la formule vérifie si toutes les
cellules C5, C7, C9, C11, C13 sont vides (donc une ligne sur deux). Et
dans ce cas, la formule renvoie vide. Et si une de ces cellules est
complétée, elle renvoie non-vide.

Je pourrai le faire avec la formule ET, mais vu qu'elle doit être amenée
à être copiée dans d'autres endroits de la feuille; ce sera plus
pratique en désignant une plage.

Je garde quand même la première formule dans un coin :)
MichD (14/02/2020, 19h25)
Dans ton fichier exemple, essaie ceci :
Tu peux remplacer Rg par l'adresse d'une plage de cellules.

=SI(SOMME(SI((ESTVIDE(Rg)*1)*MOD(LIGNE(Rg);2);1))> 0;"Non vide";"Vide")

MichD
MichD (14/02/2020, 19h32)
Le 14/02/20 à 12:25, MichD a écrit :
> Dans ton fichier exemple, essaie ceci :
> Tu peux remplacer Rg par l'adresse d'une plage de cellules.
> =SI(SOMME(SI((ESTVIDE(Rg)*1)*MOD(LIGNE(Rg);2);1))> 0;"Non vide";"Vide")
> MichD


OUPS, il faut inverser les 2 derniers arguments comme ceci :

=SI(SOMME(SI((ESTVIDE(Rg)*1)*MOD(LIGNE(Rg);2);1))> 0;"Vide";"Non vide")

Et c'est une formule matricielle. Validation par Ctrl+Maj+Enter

La formule retourne vide, seulement si toutes les cellules (une ligne
sur 2) sont vides dans le cas contraire, elle retourne non vide.

MichD
Michel__D (14/02/2020, 22h15)
Bonjour,

Le 13/02/2020 à 17:53, gejoun a écrit :
> Bonjour à tous,
> Je cherche à faire une formule qui me permette de vérifier si, sur une plage de cellules, toutes
> les cellules de la deuxième ligne sont vides.
> Et dans ce cas, renvoyer une valeur avec la formule SI "classique"
> Et je n'arrive pas à tout imbriquer pour que ça fonctionne :-/ :
> SI(ESTVIDE((MOD(LIGNE(C4:C13);2)));"";C1)
> Une exemple vaut mieux qu'un long discours : [..]


Ma participation (formule matricielle) :
{=SI(SOMME((MOD(LIGNE(C4:C13);2)>0)*(C4:C13))=0;"V ide";"Non Vide")}
gejoun (17/02/2020, 10h14)
Le 14/02/2020 à 18:32, MichD a écrit :
> OUPS, il faut inverser les 2 derniers arguments comme ceci :
> =SI(SOMME(SI((ESTVIDE(Rg)*1)*MOD(LIGNE(Rg);2);1))> 0;"Vide";"Non vide")
> Et c'est une formule matricielle. Validation par Ctrl+Maj+Enter
> La formule retourne vide, seulement si toutes les cellules (une ligne
> sur 2) sont vides dans le cas contraire, elle retourne non vide.
> MichD


Bonjour,

Merci pour ton retour, mais je dois passer à côté de quelque chose car
je n'arrive pas à la faire fonctionner...
Elle m'affiche "non vide", que si chaque deuxième ligne est renseignée.
Sinon, même si 4 cellules sur 5 sont renseignées, elle affiche "vide" :
[..]

Et pourtant, j'ai bien validé en matricielle... Bizarre :-/
gejoun (17/02/2020, 10h26)
Le 14/02/2020 à 21:15, Michel__D a écrit :

> Ma participation (formule matricielle) :
> {=SI(SOMME((MOD(LIGNE(C4:C13);2)>0)*(C4:C13))=0;"V ide";"Non Vide")}


Bonjour,

La formule me renvoie un joli #VALEUR! :-(
Et je comprends pas ce qui lui plait pas :-/
MichD (17/02/2020, 14h55)
ton fichier exemple : [..]

ATTENTION : C'est une formule matricielle. CTRL + MAJ + ENTER

MichD
gejoun (17/02/2020, 16h15)
Le 17/02/2020 à 13:55, MichD a écrit :
> ton fichier exemple : [..]
> ATTENTION : C'est une formule matricielle. CTRL + MAJ + ENTER
> MichD


Je l'avais bien validé en matricielle ; et, dans le fichier ci-dessus,
elle renvoie vide alors que 4 cellules sur 5 sont complétées, elle
renvoie non-vide que si les 5 cellules sont toutes complétées.
Alors que je voudrais qu'à partir du moment ou une des cellules n'est
plus vide, elle m'affiche "non-vide" ; peut importe la cellule.

C'est bien ce fonctionnement là qu'elle devrait avoir ?
MichD (17/02/2020, 17h00)
> C'est bien ce fonctionnement là qu'elle devrait avoir ?

OK : Formule corrigée : [..]

MichD
Michel__D (17/02/2020, 18h07)
Bonjour,

Le 17/02/2020 à 09:26, gejoun a écrit :
> Le 14/02/2020 à 21:15, Michel__D a écrit :
>> Ma participation (formule matricielle) :
>> {=SI(SOMME((MOD(LIGNE(C4:C13);2)>0)*(C4:C13))=0;"V ide";"Non Vide")}

> Bonjour,
> La formule me renvoie un joli #VALEUR!  :-(
> Et je comprends pas ce qui lui plait pas :-/


Parce que tu mélange valeur numérique et valeur textuelle.

La formule fonctionne d'avec des valeurs numériques.

Pour les deux il faut ce genre de formule matricielle :

{=SI(SOMME((MOD(LIGNE($C$4:$C$13);2)>0)*(NON(ESTVI DE($C$4:$C$13))))=0;"Vide";"Non Vide")}
gejoun (19/02/2020, 10h38)
Le 17/02/2020 à 17:07, Michel__D a écrit :

> Parce que tu mélange valeur numérique et valeur textuelle.
> La formule fonctionne d'avec des valeurs numériques.
> Pour les deux il faut ce genre de formule matricielle :
> {=SI(SOMME((MOD(LIGNE($C$4:$C$13);2)>0)*(NON(ESTVI DE($C$4:$C$13))))=0;"Vide";"Non
> Vide")}


Bonjour,

Effectivement, juste avec des chiffres, ta formule fonctionne :

{=SI(SOMME((MOD(LIGNE(C4:C13);2)>0)*(C4:C13))=0;"V ide";"Non Vide")}

Sauf qu'il faut qu'elle fonctionne avec les 2 puisque les cellules
au-dessus indiquent des unités de valeur (donc des lettres).

Donc la nouvelle fonctionne avec les 2 :

{=SI(SOMME((MOD(LIGNE($C$4:$C$13);2)>0)*(NON(ESTVI DE($C$4:$C$13))))=0;"Vide";"NonVide")}

Impeccable, merci ! :)

Discussions similaires
tester si une ou plusieurs cellules sont vides

Décaler tant que les cellules sont vides

Concaténation de cellules avec saut de ligne et passer les cellules vides

Copier une formule si certaines cellules ne sont pas vides


Fuseau horaire GMT +2. Il est actuellement 14h09. | Privacy Policy