OVH Cloud OVH Cloud

Fantôme quand tu me tiens !

5 réponses
Avatar
MichDenis
Bonjour à tous,

Une question simple :

Supposons que j'ai ceci dans une cellule :

=SI(A1<>2;"";5) et que je copie cette formule sur quelques lignes, Certaines vont avoir comme valeur "" .

Maintenant, si je copie cette plage et fait un collage spécial sur elle-même - Valeur seulement - les cellules qui
contenaient "" sont vides !!!

En fait, si j'utilise la formule : =ESTVIDE(B1) , elle me renvoie "Faux" donc elle n'est pas vide et pour elle
n'affiche rien.

La formule = Code(B1) renvoie #Valeur

Et si j'utilise la formule =NB.VIDE(B1) , elle considère la cellule comme vide.

De plus, si j'utilise à partir du menu : édition / atteindre / cellules / cellules vides -> La fonction est incapable
de trouver une cellule vide dans la plage concernée.


Ma question : Qu'y a-t-il dans cette cellule ?


Merci à ceux qui se pencheront sur la question !

5 réponses

Avatar
Daniel
Bonsoir.
Petite casuistique afin de ne pas perdre la boule. Ce qui suit n'est pas une
explication émanant d'une auorité officielle. J'ai toujours considéré que
sont considérées comme vides les cellules étant soit à leur état initial,
soit ayant été effacées à l'aide de la touche SUP (Edition/Effacer).
Je n'avais pas envisagé le cas de NB.VIDE. Toutefois, l'aide signale que les
espaces " " sont comptés comme vides; "" ou "zéro espace" est également
comptabilisé.
Cordialement.
Daniel
"MichDenis" a écrit dans le message de news:

Bonjour à tous,

Une question simple :

Supposons que j'ai ceci dans une cellule :

=SI(A1<>2;"";5) et que je copie cette formule sur quelques lignes,
Certaines vont avoir comme valeur "" .

Maintenant, si je copie cette plage et fait un collage spécial sur
elle-même - Valeur seulement - les cellules qui
contenaient "" sont vides !!!

En fait, si j'utilise la formule : =ESTVIDE(B1) , elle me renvoie "Faux"
donc elle n'est pas vide et pour elle
n'affiche rien.

La formule = Code(B1) renvoie #Valeur

Et si j'utilise la formule =NB.VIDE(B1) , elle considère la cellule comme
vide.

De plus, si j'utilise à partir du menu : édition / atteindre / cellules /
cellules vides -> La fonction est incapable
de trouver une cellule vide dans la plage concernée.


Ma question : Qu'y a-t-il dans cette cellule ?


Merci à ceux qui se pencheront sur la question !




Avatar
MichDenis
Merci Daniel,

Ma préoccupation est celle-ci : Comment arriver à faire une saine gestion de ces cellules dans une procédure, si on ne
peut identifier ce qu'elles contiennent, et, si elles ne répondent pas à des méthodes traditionnellement révolues aux
cellules vides !


Salutations!



"Daniel" a écrit dans le message de news:
Bonsoir.
Petite casuistique afin de ne pas perdre la boule. Ce qui suit n'est pas une
explication émanant d'une auorité officielle. J'ai toujours considéré que
sont considérées comme vides les cellules étant soit à leur état initial,
soit ayant été effacées à l'aide de la touche SUP (Edition/Effacer).
Je n'avais pas envisagé le cas de NB.VIDE. Toutefois, l'aide signale que les
espaces " " sont comptés comme vides; "" ou "zéro espace" est également
comptabilisé.
Cordialement.
Daniel
"MichDenis" a écrit dans le message de news:

Bonjour à tous,

Une question simple :

Supposons que j'ai ceci dans une cellule :

=SI(A1<>2;"";5) et que je copie cette formule sur quelques lignes,
Certaines vont avoir comme valeur "" .

Maintenant, si je copie cette plage et fait un collage spécial sur
elle-même - Valeur seulement - les cellules qui
contenaient "" sont vides !!!

En fait, si j'utilise la formule : =ESTVIDE(B1) , elle me renvoie "Faux"
donc elle n'est pas vide et pour elle
n'affiche rien.

La formule = Code(B1) renvoie #Valeur

Et si j'utilise la formule =NB.VIDE(B1) , elle considère la cellule comme
vide.

De plus, si j'utilise à partir du menu : édition / atteindre / cellules /
cellules vides -> La fonction est incapable
de trouver une cellule vide dans la plage concernée.


Ma question : Qu'y a-t-il dans cette cellule ?


Merci à ceux qui se pencheront sur la question !




Avatar
Daniel
Je pense que, heureusement, le test SI(A1="";valeur_si_vrai;valeur_si_faux)
répond valeur_si_vrai, que la cellule soit vide (ESTVIDE(A1)=VRAI ou qu'elle
soit égale à"".
Cordialement.
Daniel
"MichDenis" a écrit dans le message de news:

Merci Daniel,

Ma préoccupation est celle-ci : Comment arriver à faire une saine gestion
de ces cellules dans une procédure, si on ne
peut identifier ce qu'elles contiennent, et, si elles ne répondent pas à
des méthodes traditionnellement révolues aux
cellules vides !


Salutations!



"Daniel" a écrit dans le message de news:

Bonsoir.
Petite casuistique afin de ne pas perdre la boule. Ce qui suit n'est pas
une
explication émanant d'une auorité officielle. J'ai toujours considéré que
sont considérées comme vides les cellules étant soit à leur état initial,
soit ayant été effacées à l'aide de la touche SUP (Edition/Effacer).
Je n'avais pas envisagé le cas de NB.VIDE. Toutefois, l'aide signale que
les
espaces " " sont comptés comme vides; "" ou "zéro espace" est également
comptabilisé.
Cordialement.
Daniel
"MichDenis" a écrit dans le message de news:

Bonjour à tous,

Une question simple :

Supposons que j'ai ceci dans une cellule :

=SI(A1<>2;"";5) et que je copie cette formule sur quelques lignes,
Certaines vont avoir comme valeur "" .

Maintenant, si je copie cette plage et fait un collage spécial sur
elle-même - Valeur seulement - les cellules qui
contenaient "" sont vides !!!

En fait, si j'utilise la formule : =ESTVIDE(B1) , elle me renvoie "Faux"
donc elle n'est pas vide et pour elle
n'affiche rien.

La formule = Code(B1) renvoie #Valeur

Et si j'utilise la formule =NB.VIDE(B1) , elle considère la cellule comme
vide.

De plus, si j'utilise à partir du menu : édition / atteindre / cellules /
cellules vides -> La fonction est incapable
de trouver une cellule vide dans la plage concernée.


Ma question : Qu'y a-t-il dans cette cellule ?


Merci à ceux qui se pencheront sur la question !









Avatar
GD
Bonsour® MichDenis,
ce que tu signale m'avait interloqué également il y a quelques temps,
mais je n'avais pas poussé plus loin pour elucider le probleme, ayant fait
beaucoup d'autres erreurs et modifications sur le classseur en question.

je ne t'apprendrai rien puisque tu l'as évoqué le 6 juin 2004,
mais il y a un début d'explication fournie par laurent Longre :

---------------debut de citation :
pourquoi ce phénomène ? Parce qu'Excel stocke les données des cellules sous
la forme suivante:
- Pour chaque feuille, il mémorise les numéros de ligne de la première
cellule et de la dernière cellule utilisées, au sens large (cellule
contenant une valeur ou ayant un format particulier).
- Toutes les lignes se situant entre ces deux cellules sont divisées en
blocs de 32 lignes maxi.

- L'adresse de départ de chacun de ces blocs est mémorisée dans un
enregistrement dénommé INDEX. Ces adresses sont stockées sur 4 octets.

- Chaque bloc comprend au moins un enregistrement (DBCELL) de taille
variable contenant les adresses des enregistrements décrivant les lignes de
données (ROW) et les contenus des cellules (champs RK, ARRAY, BLANK,
BOOLERR, FORMULA, NUMBER, MULRK etc selon le type de valeur). Si le bloc ne
contient rien, cad si les 32 lignes sont complètement vides,
l'enregistrement DBCELL correspondant fait une taille de 8 caractères
(descripteur d'enregistrement + adresse du premier bloc suivant).
------------fin de citation

selon ton exemple il est clair que les cellules en question ne sont plus
vierges. (la taille du fichier en atteste selon les explications ci-dessus)

il faudrait donc pouvoir adapter la fameuse proc Nettoie ;o))) pour quelle
rendre une virginité aussi à ces cellules
ce qui est fait lorsque ces non-vierges sont dans le UsedRange mais au-dela
de la derniere cellule réellement non-vide

peut etre avec un test pour chaque cellule avec les conditions :
si (NBCAR = 0 et ESTVIDEúux) alors SUP
comme l'évoque Daniel ... ????

@+





Merci Daniel,

Ma préoccupation est celle-ci : Comment arriver à faire une saine
gestion de ces cellules dans une procédure, si on ne peut identifier
ce qu'elles contiennent, et, si elles ne répondent pas à des méthodes
traditionnellement révolues aux cellules vides !


Salutations!



"Daniel" a écrit dans le message de news:

Bonsoir.
Petite casuistique afin de ne pas perdre la boule. Ce qui suit n'est
pas une
explication émanant d'une auorité officielle. J'ai toujours considéré
que
sont considérées comme vides les cellules étant soit à leur état
initial,
soit ayant été effacées à l'aide de la touche SUP (Edition/Effacer).
Je n'avais pas envisagé le cas de NB.VIDE. Toutefois, l'aide signale
que les
espaces " " sont comptés comme vides; "" ou "zéro espace" est
également
comptabilisé.
Cordialement.
Daniel
"MichDenis" a écrit dans le message de news:

Bonjour à tous,

Une question simple :

Supposons que j'ai ceci dans une cellule :

=SI(A1<>2;"";5) et que je copie cette formule sur quelques lignes,
Certaines vont avoir comme valeur "" .

Maintenant, si je copie cette plage et fait un collage spécial sur
elle-même - Valeur seulement - les cellules qui
contenaient "" sont vides !!!

En fait, si j'utilise la formule : =ESTVIDE(B1) , elle me renvoie
"Faux" donc elle n'est pas vide et pour elle
n'affiche rien.

La formule = Code(B1) renvoie #Valeur

Et si j'utilise la formule =NB.VIDE(B1) , elle considère la cellule
comme vide.

De plus, si j'utilise à partir du menu : édition / atteindre /
cellules / cellules vides -> La fonction est incapable
de trouver une cellule vide dans la plage concernée.


Ma question : Qu'y a-t-il dans cette cellule ?


Merci à ceux qui se pencheront sur la question !




Avatar
Michel Gaboly
Bonsoir Michel,

"" est une chaîne de caractère vide. Une cellule qui contient cela n'est
donc plus vide. Il est également normal que CODE(B1) renvoie #VALEUR!,
puisque CODE renvoie le code ASCII du premier caractère de la chaîne
passée en argument. Or nous sommes ici en présence d'une chaine de
longueur 0. Le premier caractère n'existe donc pas.

Toutefois, tu peux repérer ce genre de cellule avec TYPE() qui renvoie
2, ce qui correspond bien à du texte, alors qu'avec une cellule
numérique ou vide, TYPE() renvoie 1, qui correspond à numérique

Selon moi, dans un tableur serait plutôt à considérer comme "élément
neutre" le 0 (zéro), plutôt que "".


Au lieu de

=SI(A1 <> 2;"";5)

utilise plutôt

=SI(A1 <> 2;0;5) ou =SI(A1 <> 2;;5)

Les 2 formules sont équivalentes, et dans l'onglet Affichage de
Préférences (ou Options), masque les valeurs 0 (zéro).


PS - As-tu vu mon post de ce matin sur l'emploi de noms pour gérer un
résultat calculé dans un commentaire (fil Re: Comment calculer une
formule dans une commentaire Excel 2000), et si oui, qu'en penses-tu ?


Bonjour à tous,

Une question simple :

Supposons que j'ai ceci dans une cellule :

=SI(A1<>2;"";5) et que je copie cette formule sur quelques lignes, Certaines vont avoir comme valeur "" .

Maintenant, si je copie cette plage et fait un collage spécial sur elle-même - Valeur seulement - les cellules qui
contenaient "" sont vides !!!

En fait, si j'utilise la formule : =ESTVIDE(B1) , elle me renvoie "Faux" donc elle n'est pas vide et pour elle
n'affiche rien.

La formule = Code(B1) renvoie #Valeur

Et si j'utilise la formule =NB.VIDE(B1) , elle considère la cellule comme vide.

De plus, si j'utilise à partir du menu : édition / atteindre / cellules / cellules vides -> La fonction est incapable
de trouver une cellule vide dans la plage concernée.


Ma question : Qu'y a-t-il dans cette cellule ?


Merci à ceux qui se pencheront sur la question !





--
Cordialement,

Michel Gaboly
www.gaboly.com