Dernière cellule non vide
Résolu
Ziface
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à la communauté,
Je me permets de créer ce post malgré le nombre faramineux de sujets similaires sur le forum.
En fait je cherche à me renvoyer le numéro de la dernière ligne vide d'une colonne avec la formule suivante :
lignedoub = Range("L" & Rows.Count).End(xlUp).Row
Formule que j'ai déjà utilisée sur d'autres codes mais le seul HIC que je rencontre aujourd'hui c'est que mes cellules contiennent une formule (=IF(AND(ISBLANK(G13);ISBLANK(K13) ..... ))) donc malgré l'apparence qu'elles ont d'être vides, elles ne le sont pas vraiment, et je ne sais pas trop comment contourner ce problème ...
J'espère que vous pourrez m'aider.
Cdt.
Ziface
Je me permets de créer ce post malgré le nombre faramineux de sujets similaires sur le forum.
En fait je cherche à me renvoyer le numéro de la dernière ligne vide d'une colonne avec la formule suivante :
lignedoub = Range("L" & Rows.Count).End(xlUp).Row
Formule que j'ai déjà utilisée sur d'autres codes mais le seul HIC que je rencontre aujourd'hui c'est que mes cellules contiennent une formule (=IF(AND(ISBLANK(G13);ISBLANK(K13) ..... ))) donc malgré l'apparence qu'elles ont d'être vides, elles ne le sont pas vraiment, et je ne sais pas trop comment contourner ce problème ...
J'espère que vous pourrez m'aider.
Cdt.
Ziface
A voir également:
- Dernière cellule non vide
- Dernière version ccleaner gratuit français - Télécharger - Nettoyage
- Supprimer dernière page word - Guide
- Dernière version chrome - Accueil - Applications & Logiciels
- Caractere vide - Guide
- Excel cellule couleur si condition texte - Guide
2 réponses
Bonjour Michel,
Merci pour ta réponse mais malheureusement cela ne détecte pas la cellule que je souhaiterais.
En fait j'ai ma colonne L où toutes les cellules contiennent la formule suivante :
=IF(AND(ISBLANK(G7);ISBLANK(K7));" ";IF((SUM(H7:I7))=3;"Out of order";IF((SUM(H7:J7))>3;"Out of order";IF((SUM(H7:J7))=3;"Finished";"In progress"))))
En fait ca m'affiche, soit " " (rien) soit "Out of Order" soit "Finished" ou soit "In progress"
Et ce que j'aimerais c'est que, la cellule qui a comme statut " " soit détecté comme vide pour pouvoir utiliser Range("L" & Rows.Count).End(xlUp).Row
A votre avis est-ce que c'est possible ?
Merci.
Ziface
Merci pour ta réponse mais malheureusement cela ne détecte pas la cellule que je souhaiterais.
En fait j'ai ma colonne L où toutes les cellules contiennent la formule suivante :
=IF(AND(ISBLANK(G7);ISBLANK(K7));" ";IF((SUM(H7:I7))=3;"Out of order";IF((SUM(H7:J7))>3;"Out of order";IF((SUM(H7:J7))=3;"Finished";"In progress"))))
En fait ca m'affiche, soit " " (rien) soit "Out of Order" soit "Finished" ou soit "In progress"
Et ce que j'aimerais c'est que, la cellule qui a comme statut " " soit détecté comme vide pour pouvoir utiliser Range("L" & Rows.Count).End(xlUp).Row
A votre avis est-ce que c'est possible ?
Merci.
Ziface
Tu écris
le numéro de la dernière ligne vide d'une colonne avec la formule suivante :
or d'après ta formule
IF(AND(ISBLANK(G7);ISBLANK(K7));" ";IF((S....
" " n'est pas vide car l'espace est un caractère. Il faut donc que tu marques "" et non " "
ma formule marche dans les 3 cas("" ou " " ou "out of..."): je viens de tester: elle la dernière ligne avec résultat de formule donc tu ajoutes +1 à la formule apparemment tu n'as pas envie de me croire ou je ne comprends pas ta question
le numéro de la dernière ligne vide d'une colonne avec la formule suivante :
or d'après ta formule
IF(AND(ISBLANK(G7);ISBLANK(K7));" ";IF((S....
" " n'est pas vide car l'espace est un caractère. Il faut donc que tu marques "" et non " "
ma formule marche dans les 3 cas("" ou " " ou "out of..."): je viens de tester: elle la dernière ligne avec résultat de formule donc tu ajoutes +1 à la formule apparemment tu n'as pas envie de me croire ou je ne comprends pas ta question
Michel,
Je viens de corriger le " " par "".
Mais sinon, je pense qu'on se comprend pas, certainement dû au fait que je me sois mal exprimé, car j'ai bien testé ta formule et cela me renvoie exactement la même valeur que la mienne.
Ca considère que les cellules "" (donc vides pour moi) contiennent bien quelque chose, contrairement à ce que je souhaiterais
Et quand je dis :
Et ce que j'aimerais c'est que, la cellule qui a comme statut " " soit détecté comme vide pour pouvoir utiliser Range("L" & Rows.Count).End(xlUp).Row
Je pourrais aussi bien dire :
Et ce que j'aimerais c'est que, la cellule qui a comme statut " " soit détecté comme vide pour pouvoir utiliser Columns("L").Find("*", , , , , xlPrevious).Row
Peu m'importe mais les deux me renvoient le même résultat et considèrent que "" n'est pas vide
Je viens de corriger le " " par "".
Mais sinon, je pense qu'on se comprend pas, certainement dû au fait que je me sois mal exprimé, car j'ai bien testé ta formule et cela me renvoie exactement la même valeur que la mienne.
Ca considère que les cellules "" (donc vides pour moi) contiennent bien quelque chose, contrairement à ce que je souhaiterais
Et quand je dis :
Et ce que j'aimerais c'est que, la cellule qui a comme statut " " soit détecté comme vide pour pouvoir utiliser Range("L" & Rows.Count).End(xlUp).Row
Je pourrais aussi bien dire :
Et ce que j'aimerais c'est que, la cellule qui a comme statut " " soit détecté comme vide pour pouvoir utiliser Columns("L").Find("*", , , , , xlPrevious).Row
Peu m'importe mais les deux me renvoient le même résultat et considèrent que "" n'est pas vide
Ces histoires de vide, rien, zéro sont toujours sources de mal entendu ! comme disait Raymond Devos
si j'ai compris, une formule pour trouver la dernière cellule sans "", mais uniquement résultat d'une formule (rectifie le " " en "")
=MAX(SI(L2:L100<>"";LIGNE(L2:L100)))
anglophone
MAX(IF(L2:L100<>"",ROW(L2:L100)))
Formule matricielle à valider par « ctrl+maj+entrée » (et non directement par « entrée »), le curseur clignotant dans la barre de formule; Excel encadre alors automatiquement la formule par des {}
si j'ai compris, une formule pour trouver la dernière cellule sans "", mais uniquement résultat d'une formule (rectifie le " " en "")
=MAX(SI(L2:L100<>"";LIGNE(L2:L100)))
anglophone
MAX(IF(L2:L100<>"",ROW(L2:L100)))
Formule matricielle à valider par « ctrl+maj+entrée » (et non directement par « entrée »), le curseur clignotant dans la barre de formule; Excel encadre alors automatiquement la formule par des {}
Merci Michel de prendre un peu de ton temps pour venir à mon secours.
Mais par contre je crois qu'on s'égare sur ce que je veux faire, je vais tenter de reposer le problème le plus clairement possible.
Suivant cette formule :
lignedoub = Range("L" & Rows.Count).End(xlUp).Row
ou bien
lignedoub = Columns("L").Find("*", , , , , xlPrevious).Row
Je cherche à avoir le numéro de ligne de la dernière cellule vide rencontrée sur la colonne L.. On est d'accord ?
Toutes les cellules parcourues contiennent la formule suivante :
=IF(AND(ISBLANK(G7);ISBLANK(K7));"";IF((SUM(H7:I7))=3;"Out of order";IF((SUM(H7:J7))>3;"Out of order";IF((SUM(H7:J7))=3;"Finished";"In progress"))))
Et ont donc un statut soit "", soit "In progress", soit "Out of Order"
Donc mon problème c'est que
lignedoub = Columns("L").Find("*", , , , , xlPrevious).Row
s'arrete même sur une cellule ayant pour statut "" alors que j'aimerais que ce soit invisible et que ca considère que c'est une cellule vide malgré la formule.et que continue jusqu'au rencontrer un 'In progress" ou un "Out of order".
J'espère que j'ai été un peu plus claire.
Et encore merci de ton aide Michel.
Cdt.
Ziface
Mais par contre je crois qu'on s'égare sur ce que je veux faire, je vais tenter de reposer le problème le plus clairement possible.
Suivant cette formule :
lignedoub = Range("L" & Rows.Count).End(xlUp).Row
ou bien
lignedoub = Columns("L").Find("*", , , , , xlPrevious).Row
Je cherche à avoir le numéro de ligne de la dernière cellule vide rencontrée sur la colonne L.. On est d'accord ?
Toutes les cellules parcourues contiennent la formule suivante :
=IF(AND(ISBLANK(G7);ISBLANK(K7));"";IF((SUM(H7:I7))=3;"Out of order";IF((SUM(H7:J7))>3;"Out of order";IF((SUM(H7:J7))=3;"Finished";"In progress"))))
Et ont donc un statut soit "", soit "In progress", soit "Out of Order"
Donc mon problème c'est que
lignedoub = Columns("L").Find("*", , , , , xlPrevious).Row
s'arrete même sur une cellule ayant pour statut "" alors que j'aimerais que ce soit invisible et que ca considère que c'est une cellule vide malgré la formule.et que continue jusqu'au rencontrer un 'In progress" ou un "Out of order".
J'espère que j'ai été un peu plus claire.
Et encore merci de ton aide Michel.
Cdt.
Ziface
Bonjour
as tu essayé en adaptant
=MAX(SI(L2:L100<>"";LIGNE(L2:L100)))
anglophone
MAX(IF(L2:L100<>"",ROW(L2:L100)))
Formule matricielle à valider par « ctrl+maj+entrée » (et non directement par « entrée »), le curseur clignotant dans la barre de formule; Excel encadre alors automatiquement la formule par des {}
petite maquette de travail
le +1 est pour indiquer la première cellule égale à ""
https://www.cjoint.com/?3BnjZ6MZlcn
as tu essayé en adaptant
=MAX(SI(L2:L100<>"";LIGNE(L2:L100)))
anglophone
MAX(IF(L2:L100<>"",ROW(L2:L100)))
Formule matricielle à valider par « ctrl+maj+entrée » (et non directement par « entrée »), le curseur clignotant dans la barre de formule; Excel encadre alors automatiquement la formule par des {}
petite maquette de travail
le +1 est pour indiquer la première cellule égale à ""
https://www.cjoint.com/?3BnjZ6MZlcn