Cellule vide, non vide

grimat

XLDnaute Occasionnel
Bonjour,

Je vous sollicite car j'ai un petit problème lors d'un collage spécial.

Je dispose de plusieurs colonnes avec formules, souhaitant récupérer uniquement les valeurs de ces cellules, j'utilise le collage spécial (valeur). NB: certains résultats de cellules donne une cellule vide => ""

Par la suite, j'effectue une formule si(estvide() sur les cellules collées (donc uniquement sur des valeurs) or il ne reconnait pas les cellules vide. Je dois rentrer dans la cellule puis en ressortir pour que le système comprenne qu'elle est belle et bien vide!

Sur quelques cellules je l'aurai fait à la main, mais mon tableau comprend de nombreuses lignes et colonnes!

Merci d'avance pour votre aide
 

Misange

XLDnaute Barbatruc
Re : Cellule vide, non vide

Bonjour, Hello papou-net

C'est un bug connu depuis longtemps. Il y a une inconsistance entre ce qu'on voit dans ce cas là dans la barre de formule (rien !) et ce qui est dans la cellule ' qui indique une chaine vide.
Comme papou te le conseille, =A1="" renvoie vrai dans ce cas alors que =estvide(A1) renvoie faux
 

MichD

XLDnaute Impliqué
Re : Cellule vide, non vide

Bonjour,

Si tu as dans une cellule une formule qui retourne "" et que tu fais un copier-coller
de cette cellule vers une autre cellule TOTALEMENT VIDE, après le coller, la cellule
est toujours TOTALEMENT VIDE et la formule =EstVide() retourne "VRAI".

Cependant, je suspecte ta cellule de destination ait comme contenu " ' " étant le
résidu d'opérations antérieures et comme le coller ne colle RIEN (le vide), cela ne
modifie pas le contenu de la cellule de destination.

En conséquence, la formule =EstVide() retourne FAUX puisque la cellule n'est pas
totalement vide. Par contre, la fonction =NbVal() retournera 1

MichD
---------------------------------------------
 

Misange

XLDnaute Barbatruc
Re : Cellule vide, non vide

Hello MichD
Essaie et tu verras que non
en A1 rien
en B1=si(A1="";"";A1)
tu copies B1 colles valeur en C1
En D1=estvide(C1) retourne FAUX
tu cliques dans C1 tu valides plouf ça devent vrai en D1
Si en D2 tu écris =C1="" là ça renvoie vrai dès le début
assez agaçant et se reproduit d'au moins 2003 jusqu'à 2013 inclus
 

MichD

XLDnaute Impliqué
Re : Cellule vide, non vide

Bonjour Misange,

Tu as raison. J'ai même testé avec VBA.
Seule la méthode "Find" d'un objet "Range" réussit à trouver la cellule
"vide" lorsqu'elle recherche la valeur "" dans la plage de cellules.

Habituellement, une cellule affiche l'apostrophe pour désigner un
format texte et ceci est visible dans la barre des formules. Ce n'est
pas le cas suite au collé. Je me demande bien de quel caractère il
s'agit.

Force est de constater que le vide occupe beaucoup d'espace!
;-))

Merci pour ce rappel.

MichD
'--------------------------------------------------
 

job75

XLDnaute Barbatruc
Re : Cellule vide, non vide

Bonjour à tous,

Traiter la plage où a eu lieu le Collage spécial-Valeurs par cette macro :

Code:
Sub Nettoyage()
Dim plage As Range
Set plage = [A1:Z10000] 'plage (sans formules) à adapter
plage = plage.Value
End Sub
Les cellules contenant du texte vide "" deviennent vraiment vides.

Edit : plutôt que de faire un Copier-Collage spécial-Valeurs autant exécuter directement ce code :

Code:
plage2 = plage1.Value
plage1 et plage2 étant bien entendu des plages de mêmes dimensions.

A+
 
Dernière édition:

Misange

XLDnaute Barbatruc
Re : Cellule vide, non vide

Hello à tous
Et oui Herdet, ça fait un sacré bail :) mais il y a des baux long terme !

@Job
Oui de fait on peut faire cela par macro mais écrire une macro quand un simple copier coller/valeur DEVRAIT faire ce qu'on attend, c'est agaçant.
Ca fait un bail (encore !) que certains demandent à Microsoft une véritable fonction qui gère les valeurs "" renvoyées par une formule. C'est toujours pas dans la version 2013.... ce serait pourtant vraiment pratique.
 

MichD

XLDnaute Impliqué
Re : Cellule vide, non vide

Bonjour Misange, Herdet,

J'ai fait le test en vba en utilisant la version 2013
et si en B1 il y a une formule qui retourne "" et que
l'on utilise ceci : range("C1")=RAnge("B1")
si on teste le contenu de la cellule "C1") par
x = Isempty("C1") on obtient FAUX au même titre
que le copier-coller spécial (valeur seulement)
En VBA, pour vider par la suite la cellule C1, on
peut simplement écrire : Range("C1") = Empty

C'était simplement un petit mot pour me donner
l'occasion de saluer Herdet et empêcher Misange de
se faire enfirouaper par job75.

;-))

Salutations à tous,

MichD
-------------------------------------------------------
 

job75

XLDnaute Barbatruc
Re : Cellule vide, non vide

Re,

Vu le post #12 de MichD...

Testez ces 2 macros et voyez la différence :

Code:
Sub a()
Range("C1") = Range("B1")
MsgBox IsEmpty(Range("C1"))
End Sub
Code:
Sub b()
Range("C1") = Range("B1").Value
MsgBox IsEmpty(Range("C1"))
End Sub
En effet MichD faut pas enfirouaper les jolies femmes :)

A+
 

Discussions similaires

Réponses
4
Affichages
220

Statistiques des forums

Discussions
312 333
Messages
2 087 371
Membres
103 528
dernier inscrit
maro