V=c3=a9rifier si les cellules sont vides une ligne sur deux

15 réponses
Avatar
gejoun
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 :
https://www.cjoint.com/c/JBnq1gKUfnX

Quelqu'un peut me dépanner ?

Merci !

--
géjoun

10 réponses

1 2
Avatar
MichD
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 :
https://www.cjoint.com/c/JBnq1gKUfnX
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
Avatar
gejoun
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" :
https://www.cjoint.com/c/JBojGJg2qBX
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 !
--
géjoun
Avatar
MichD
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
Avatar
gejoun
Le 14/02/2020 à 12:24, MichD a écrit :
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

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 :)
--
géjoun
Avatar
MichD
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
Avatar
MichD
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
Avatar
Michel__D
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 : https://www.cjoint.com/c/JBnq1gKUfnX

Ma participation (formule matricielle) :
{=SI(SOMME((MOD(LIGNE(C4:C13);2)>0)*(C4:C13))=0;"Vide";"Non Vide")}
Avatar
gejoun
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" :
https://www.cjoint.com/c/JBrioVD6cjX
Et pourtant, j'ai bien validé en matricielle... Bizarre :-/
--
géjoun
Avatar
gejoun
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;"Vide";"Non Vide")}

Bonjour,
La formule me renvoie un joli #VALEUR! :-(
Et je comprends pas ce qui lui plait pas :-/
--
géjoun
Avatar
MichD
ton fichier exemple : https://www.cjoint.com/c/JBrm2BkSaIj
ATTENTION : C'est une formule matricielle. CTRL + MAJ + ENTER
MichD
1 2