Erreur de détection des cellules vides suite à un copier/coller Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
M
Mateo MNH
Jeune membre
Jeune membre
Messages : 46
Inscrit le : 4 avril 2017
Version d'Excel : 2013

Message par Mateo MNH » 24 janvier 2019, 17:53

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? :scritch: ).

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
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 5'537
Appréciations reçues : 321
Inscrit le : 16 mars 2017
Version d'Excel : 2010

Message par i20100 » 24 janvier 2019, 19:04

Bonjour Mateo,

merci par avance!
Fichier_Excel 1.png
Fichier_Excel 1.png (8.2 Kio) Vu 217 fois
Vive ces nouvelles saisons qui nous colorent.
isabelle
Avatar du membre
curulis57
Passionné d'Excel
Passionné d'Excel
Messages : 3'751
Appréciations reçues : 226
Inscrit le : 4 janvier 2016
Version d'Excel : 2016 FR / 2019 FR

Message par curulis57 » 24 janvier 2019, 19:27

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+
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'974
Appréciations reçues : 696
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 25 janvier 2019, 05:16

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 !  ::( :cry:  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 !  :mrgreen:

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 !  :P :lol:
à tout hasard, si tu trouves un bon filon, n'oublie pas d'partager fifty-fifty, ok ?  :P ;;)

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
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 4'020
Appréciations reçues : 305
Inscrit le : 26 janvier 2011
Version d'Excel : 2007/2019

Message par Theze » 25 janvier 2019, 06:30

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)
Il vaut mieux un qui sait que cent qui cherchent :wink:

Ce forum étant un lieu de partage, je n'accepte pas les messages privés !
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 5'537
Appréciations reçues : 321
Inscrit le : 16 mars 2017
Version d'Excel : 2010

Message par i20100 » 25 janvier 2019, 06:39

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)
Valeur de cellule vide.xlsx
(7.88 Kio) Téléchargé 1 fois
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
Vive ces nouvelles saisons qui nous colorent.
isabelle
M
Mateo MNH
Jeune membre
Jeune membre
Messages : 46
Inscrit le : 4 avril 2017
Version d'Excel : 2013

Message par Mateo MNH » 25 janvier 2019, 10:14

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 :sp: ) 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
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'974
Appréciations reçues : 696
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 25 janvier 2019, 17:12

Bonjour Mateo, le forum,
dans ton énoncé, tu a écrit :Lorsque l'on copie/colle des cellules vides sur d'autres cellules vides, celles-ci sont considérées par Excel comme pleines.
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.  :wink:

dhany
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 5'537
Appréciations reçues : 321
Inscrit le : 16 mars 2017
Version d'Excel : 2010

Message par i20100 » 25 janvier 2019, 17:23

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 ?
Vive ces nouvelles saisons qui nous colorent.
isabelle
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'974
Appréciations reçues : 696
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 25 janvier 2019, 17:25

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 :mrgreen:), 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 !   :IO :yek:  :hahaha:

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

dhany
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message