Erreur de détection des cellules vides suite à un copier/coller

Bonsoir à tous,

Je lance un nouveau sujet car je n'en ai trouvé aucun avec la même problématique que la mienne après un rapide coup d'oeil aux posts existants.

Je vous explique ma problématique:

Je souhaite identifier des cellules vides dans une colonne à l'aide d'une formule et non d'une commande VBA.

Toutefois, la détection échoue et Excel m'identifie toutes les cellules comme "pleines" alors que certaines apparaissent bel et bien à l'écran sans aucune valeur ni formule à l'intérieur.

Après quelques recherches, on a trouvé que cette erreur était due au fait que les données traitées sont issues d'un copier/coller. Lorsque l'on copie/colle des cellules vides sur d'autres cellules vides, celles-ci sont considérées par Excel comme pleines (pleine de vide? ).

Ma question est donc de savoir:

  • A quoi est dû ce phénomène?
  • Comment identifier les cellules vides malgré cela, car je n'ai pas la main sur l'extraction des données donc pas moyen de modifier leur traitement en amont?

Merci d'avance pour votre aide à tous,

En vous souhaitant une excellente soirée,

Mateo

Bonjour Mateo,

merci par avance!

fichier excel 1

Salut Mateo MNH,

colle ce code ou joins-le (le corps de la Sub, dans ce cas, évidemment!) à la même Sub si elle existe déjà.

Ensuite, clique sur les cellules "vides" et vois le code ASCII de l'éventuel contenu.

Ce sera un début...

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
Dim sMsg$
If Target <> "" Then
    For x = 1 To Len(Target)
        sMsg = sMsg & Asc(Mid(Target, x, 1)) & " "
    Next
    MsgBox sMsg
End If
'
End Sub

A+

Bonjour Mateo, le forum,

tu a écrit :

Je souhaite identifier des cellules vides dans une colonne à l'aide d'une formule ... Toutefois, la détection échoue ...

mais tu ne dis pas comment tu fais cette détection ! si tu as utilisé une méthode de détection qui n'arrive pas à faire la distinction entre une cellule vide et une cellule non vide, il est évident que ta méthode de détection est inadéquate !

c'est un peu comme si tu cherchais de l'or avec une gomme au lieu d'utiliser une batée ou un détecteur de métaux !

à tout hasard, si tu trouves un bon filon, n'oublie pas d'partager fifty-fifty, ok ?


si tu veux tester la cellule A1, je te propose une de ces formules :

=A1="" ; ça doit retourner VRAI si la cellule est vide

=ESTVIDE(A1) ; ça doit retourner VRAI si la cellule est vide

=NBCAR(A1) ; ça doit retourner 0 si la cellule est vide


=SI(NBCAR(A1)=0;"";CODE(A1)) ; ça retourne rien si A1 est vide

sinon, ça retourne le code ASCII du 1er caractère de A1 ; exemples :

* pour "0" : 48

* pour "1" ou "123" : 49

* pour "A" ou "ABC" : 65

* pour "a" ou "abc" : 97

* pour espace insécable : 160

* pour un espace normal : 32

dhany

Bonjour,

=A1="" retourne FAUX si il y a une valeur et VRAI si il n'y en a pas même si la cellule contient une formule.

=NB.SI(A1:A20;"") indique le nombre de cellules vide dans la plage A1:A20 de même que :

=SOMMEPROD((A1:A20="")*1)

Bonjour à tous,

ça peut être n'importe lequel des code suivant, aussi j'ai déjà vu une combinaison de 2 ou 3 de ces codes,

code(1)

code(9)

code(10)

code(13)

code(28)

code(29)

code(30)

code(31)

code(32)

code(129)

code(141)

code(143)

code(144)

code(157)

code(160)

pour vérifier la valeur d'une cellule supposé vide, je copie cette cellule en cellule A1

en cellule B1 je met la formule =CODE(STXT($A$1;LIGNE();1))

et recopie vers le bas

Bonjour mesdemoiselles et messieurs,

Merci pour vos réponses nombreuses!

Alors en effet j'aurais dû mettre la formule employée en colonne AI:

IF(G2="","NA","Direct") 

Puisque mes cellules apparaissent comme étant vides, je devrai donc avoir en colonne AI "NA" pour chaque ligne testée comportant une cellule vide en colonne G.

Toutefois, je me retrouve avec des "Direct" dans toutes les lignes...

Ensuite, merci à toi curulis57 pour ta réponse, mais je n'arrive pas à utiliser ta macro.. Peux-tu m'expliquer son fonctionnement en détail (ligne par ligne ce serait le top ) pour que je puisse comprendre ton code.

Aussi je ne connais pas cette façon de déclarer une macro:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Peux-tu m'expliquer pourquoi tu as choisi de faire comme ça?

Merci à vous

Mateo

Bonjour Mateo, le forum,

[quote="dans ton énoncé, tu"]Lorsque l'on copie/colle des cellules vides sur d'autres cellules vides, celles-ci sont considérées par Excel comme pleines.[/quote]

j'ai fait ce test dans un nouveau fichier Excel, où toutes les cellules sont vides, y compris A1 :

* en G1 : =A1=""VRAI ; copier / coller de la cellule vide E1 sur la cellule vide A1 ➯ c'est resté VRAI en G1

* copier / coller de la plage de cellules vides E5:G8 sur la cellule vide A1 ➯ c'est resté VRAI en G1

donc sur ma version d'Excel 2007, ça pose pas de problème : une cellule vide sur laquelle on copie une ou plusieurs cellules vides est toujours considérée comme vide, sans quoi ça aurait retourné FAUX ; ça devrait être pareil sur ton Excel 2013.

dhany

Bonjour Mateo, bonjour à tous,

@Mateo

peux-tu joindre un petit fichier excel dans lequel tu aura copier les cellules vide qui en réalité ne sont pas vide ?

dans son post d'hier à 19:04, i20100 (salut Isabelle) t'a demandé de joindre un fichier ; pourquoi ne l'as-tu pas fait ? sans toucher à tes fameuses cellules vides (ou plutôt qui sont censées être vides ), remplace tes éventuelles données confidentielles par des données fictives et envoie ton fichier : ça sera plus simple de t'aider ; pour cela, tu peux utiliser le bouton « Ajouter des fichiers » qui est situé juste sous la fenêtre d'édition de ton post.

j'reconnais qu'ma demande va pas être simple si tes cellules censées vides contiennent des données confidentielles !


edit : Isabelle t'a de nouveau demandé d'envoyer ton fichier juste au-dessus. et pour son expression « les cellules vides qui en réalité ne sont pas vides ? », c'est pas moi qui lui ai soufflé !

dhany

j'viens d'penser à un truc tout bête : les cellules censées être vides dont tu fais un copier / coller sont p't'être des cellules dont le texte est blanc : blanc / fond blanc, c'est invisible ; idem avec une autre couleur : texte vert / fond vert ➯ invisible (c'est l'principe du caméléon ) ; si c'est ça, la solution est toute simple : change la couleur de la police de caractères pour qu'il y ait suffisamment de contraste entre la couleur du texte et la couleur de remplissage ; par exemple noir / blanc ; ou blanc / rouge.

si c'est ok, c'est plus la peine d'envoyer ton fichier, et tu peux passer l'sujet en résolu.

dhany

Rechercher des sujets similaires à "erreur detection vides suite copier coller"