web-dev-qa-db-fra.com

Excel me disant que mes cellules vides ne sont pas vierges

Donc, dans Excel, j'essaie de supprimer les cellules vides entre mes cellules contenant des informations en utilisant F5 pour rechercher les cellules vides, puis Ctrl + - pour les supprimer et les déplacer vers le haut. Mais lorsque j'essaie de le faire, cela me dit qu'il n'y a pas de cellules trouvées.

J'ai remarqué que si je sélectionne mes cellules "vides", Excel les compte toujours: Like in this picture ce qui est bizarre. Mais si j'appuie sur Supprimer sur les cellules sélectionnées, le compte s'en va, puis je peux passer à F5, les blancs, Ctrl + - et décaler les cellules vers le haut, et cela fonctionne ...

Ma question est donc la suivante: comment puis-je toujours le faire, mais avec ces cellules vierges qui, selon Excel, ne sont pas vierges? J'ai essayé de passer en revue et d'appuyer simplement sur supprimer sur les cellules vierges, mais j'ai beaucoup de données et j'ai réalisé que cela me prendrait BEAUCOUP trop de temps. Je dois trouver un moyen de sélectionner ces cellules «vierges» dans une sélection de données.

Merci d'avance pour votre aide! :)

20
Vanya Burduk

Une révélation: Certaines cellules vides ne sont pas vides! Comme je vais le montrer, les cellules peuvent avoir des espaces, des nouvelles lignes et des vrais vides:

example

Pour trouver ces cellules rapidement, vous pouvez effectuer quelques opérations.

  1. La formule =CODE(A1) renverra un # VALEUR! si la cellule est vraiment vide, sinon un nombre retournera. Ce nombre est le numéro ASCII utilisé dans =CHAR(32).
  2. Si vous sélectionnez la cellule, cliquez dans la barre de formule et utilisez le curseur pour tout sélectionner. newline selection example

Suppression de ceux-ci:

Si vous avez seulement un espace dans les cellules, vous pouvez les supprimer facilement en utilisant:

  1. Presse ctrl + h ouvrir trouver et remplacer.
  2. Entrez un espace dans trouver ce que , laissez remplacer par et assurez-vous vous avez correspond au contenu entier de la cellule est coché dans les options.
  3. Appuyez sur tout remplacer .

Si vous avez des retours à la ligne , cela est plus difficile et nécessite VBA:

  1. Cliquez avec le bouton droit sur l'onglet de la feuille> Afficher le code.
  2. Puis entrez le code suivant. Rappelez-vous que Chr(10) est une nouvelle ligne, remplacez-la uniquement si nécessaire, par exemple. " " & Char(10) est un espace et une nouvelle ligne:

    Sub find_newlines()
        With Me.Cells
            Set c = .Find(Chr(10), LookIn:=xlValues, LookAt:=xlWhole)
            If Not c Is Nothing Then
                firstAddress = c.Address
                Do
                    c.Value = ""
                    Set c = .FindNext(c)
                    If c Is Nothing Then Exit Do
                Loop While c.Address <> firstAddress
            End If
        End With
    End Sub
    
  3. Maintenant, lancez votre code en appuyant sur F5.


Après la fourniture du fichier : sélectionnez la plage d'intérêt pour améliorer les performances, puis exécutez les opérations suivantes:

Sub find_newlines()
    With Selection
        Set c = .Find("", LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                c.Value = ""
                Set c = .FindNext(c)
                If c Is Nothing Then Exit Do
            Loop While c.Address <> firstAddress
        End If
    End With
End Sub
14
glh

un moyen simple de sélectionner et d'effacer ces cellules vides pour les rendre vides:

  1. Presse ctrl + a ou présélectionnez votre gamme
  2. Presse ctrl + f
  3. Laissez trouvez quoi vide et sélectionnez correspond au contenu de la cellule entière.
  4. Hit trouver tous
  5. Presse ctrl + a sélectionner toutes les cellules vides trouvées
  6. Fermer le dialogue de recherche
  7. Presse backspace ou delete
23
glh

Cela a fonctionné pour moi:

  1. CTR-H pour faire apparaître la recherche et le remplacement 
  2. laisser vide
  3. remplacez 'Remplacer par' par un texte unique, quelque chose que vous êtes
    positif ne sera pas trouvé dans une autre cellule (j'ai utilisé 'xx') 
  4. cliquez sur 'Remplacer tout' 
  5. copiez le texte unique de l'étape 3 dans "Trouver quoi" 
  6. supprimer le texte unique dans 'Remplacer par' 
  7. cliquez sur 'Remplacer tout'
13
mike

J'ai eu un problème similaire: des cellules vides éparses provenant d'une exportation provenant d'une autre application apparaissaient toujours dans le nombre de cellules. 

J'ai réussi à les effacer par 

  1. Sélection des colonnes/lignes que je voulais nettoyer, puis faire
  2. "Trouver" [pas de texte] et "Remplacer" [Mot de choix].
  3. Ensuite, j'ai fait "Trouver" [mot de choix] et "Remplacer" avec [pas de texte]. 

Il s'est débarrassé de tous les caractères cachés/fantômes dans ces cellules. Peut-être que cela fonctionnera pour vous?

4
Robin

Tout ça, c'est assez simple. J'ai essayé pour la même chose et c'est ce qui a fonctionné pour moi dans VBA

Range("A1:R50").Select    'The range you want to remove blanks
With Selection
    Selection.NumberFormat = "General"
    .Value = .Value
End With

Cordialement, Anand Lanka

2
user4649182

Je ne sais pas si cela a déjà été dit, mais j'ai eu un problème similaire avec des cellules ne montrant rien dedans, mais n'étant pas vide lorsque vous exécutez la formule IsBlank (). 

J'ai sélectionné la colonne entière, sélectionné Rechercher et remplacer, trouvé des cellules sans rien et remplacé par un 0, puis exécuté rechercher et remplacer à nouveau, trouver des cellules avec 0 et remplacer par "". 

Cela a résolu mon problème et m'a permis de rechercher des cellules vides (F5, spéciales, vides) et de supprimer les lignes vides ... BOOM. 

Peut ne pas fonctionner pour chaque application mais cela a résolu mon problème. 

Parfois, des espaces dans les cellules apparaissent vierges, mais si vous appuyez sur F2 dans la cellule, vous verrez des espaces. Vous pouvez également effectuer cette recherche si vous connaissez le nombre exact d'espaces dans une cellule.

1
Ryan

Trouvé d'une autre manière. Définissez le filtre automatique pour toutes colonnes (important car vous allez mal aligner les données) en sélectionnant la ligne d'en-tête> onglet "Données"> Trier et filtrer - "Filtre". Utilisez la liste déroulante dans la première colonne de données, décochez la case "Tout sélectionner" et sélectionnez uniquement l'option "(Vierge)"> [OK]. Mettez en surbrillance les lignes (maintenant toutes ensemble)> clic droit> 'Supprimer la ligne'. Retournez à la liste déroulante> "Tout sélectionner". Presto :)

1
Jenny
'Select non blank cells
Selection.SpecialCells(xlCellTypeConstants, 23).Select
' REplace tehse blank look like cells to something uniqu
Selection.Replace What:="", Replacement:="TOBEDELETED", LookAt:=xlWhole, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
'now replace this uique text to nothing and voila all will disappear
Selection.Replace What:="TOBEDELETED", Replacement:="", LookAt:=xlWhole, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
1
Andras

Si vous ne souhaitez pas conserver de formatage ni de formules , vous pouvez essayer d'enregistrer votre fichier sous forme de fichier texte délimité par des tabulations, de le fermer et de le rouvrir avec Excel. Cela a fonctionné pour moi.

1
Curt

Cela fonctionne avec des nombres.

Si votre plage est O8: O20, dans une plage vide voisine (par exemple, T8: T20), entrez = O8/1 et remplissez-le. Cela vous donnera un résultat de #VALUE pour les cellules "vides" et votre numéro d'origine restera tel qu'il était. 

Puis, avec la plage T8: 20 sélectionnée (CTL- * si ce n’est pas déjà fait), appuyez sur F5 et choisissez Spécial. Dans la boîte de dialogue Spécial, choisissez Erreurs et cliquez sur OK. Cela désélectionnera vos nombres réels en ne laissant que les cellules #VALEUR sélectionnées. Supprimez-les et vous aurez des cellules vides réelles. Copier T8: T20 et coller de nouveau sur O8: O20.

Essentiellement, étant donné que les cellules vides ne fonctionnent pas, vous devez convertir les cellules «vides» en un élément sur lequel le bouton Go To Special peut être associé. Toute action qui se convertirait en #VALUE fonctionnerait, et les autres types «d'erreur» devraient également être pris en charge.

0
mockman

Ma méthode est similaire à la suggestion de Curt ci-dessus de l'enregistrer en tant que fichier délimité par des tabulations et de réimporter… .. Il suppose que vos données ne contiennent que des valeurs sans formules… .. Ceci est probablement une bonne hypothèse, car le problème de " les "vierges" sont dues à la confusion entre les vides et les vides - généralement dans les données importées d'un autre endroit - il ne devrait donc pas y avoir de formules . Ma méthode consiste à analyser en place - Cela ressemble beaucoup à l’enregistrement dans un fichier texte et à la réimportation, mais vous pouvez le faire sans fermer ni rouvrir le fichier . C’est sous Données> Texte-à-colonnes> délimité> supprimer tous les caractères d’analyse (vous pouvez également choisir Texte si vous voulez)> Terminer. Cela devrait obliger Excel à re-reconnaître vos données à partir de rien ou à partir de texte et à reconnaître les espaces vides comme des espaces vraiment vides . Vous pouvez automatiser cela dans un sous-programme:

Sub F2Enter_new()         
   Dim rInput As Range
   If Selection.Cells.Count > 1 Then Set rInput = Selection
   Set rInput = Application.InputBox(Title:="Select", Prompt:="input range", _ 
                                     Default:=rInput.Address, Type:=8)
'   Application.EnableEvents = False: Application.ScreenUpdating = False
   For Each c In rInput.Columns
      c.TextToColumns Destination:=Range(c.Cells(1).Address), DataType:=xlDelimited, _
      TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
      Semicolon:=False, Comma:=False, Space:=False, Other:=False, _
      FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
   Next c
   Application.EnableEvents = True: Application.ScreenUpdating = True
End Sub

Vous pouvez également activer cette ligne commentée pour que ce sous-programme s'exécute "en arrière-plan". Pour ce sous-programme, les performances ne sont que légèrement améliorées (pour d’autres, cela peut vraiment aider beaucoup) . Le nom est F2Enter car la méthode manuelle originale pour résoudre ce problème de "blancs" consiste à obliger Excel à reconnaître la formule en appuyant sur F2. et entrez.

0
Alex124948

Voici comment j'ai résolu ce problème sans codage.

  1. Sélectionnez la colonne entière que je voulais supprimer les cellules "vides".
  2. Cliquez sur l'onglet Mise en forme conditionnelle en haut.
  3. Sélectionnez "Nouvelle règle".
  4. Cliquez sur "Formater uniquement les cellules qui contiennent".
  5. Changer "entre" en "égal à".
  6. Cliquez sur la case à côté de la case "égal à".
  7. Cliquez sur l'une des cellules "vierges" du problème.
  8. Cliquez sur le bouton Format.
  9. Choisissez une couleur aléatoire pour remplir la case.
  10. Appuyer sur OK".
  11. Cela devrait changer toutes les cellules «vierges» du problème à la couleur que vous avez choisie. Maintenant, faites un clic droit sur l'une des cellules colorées, puis allez à "Trier" et "Mettre la couleur de cellule sélectionnée en haut".
  12. Cela placera toutes les cellules à problèmes en haut de la colonne et toutes vos autres cellules resteront dans l'ordre d'origine. Vous pouvez maintenant sélectionner toutes les cellules à problèmes dans un groupe et cliquer sur le bouton Supprimer la cellule. sur le dessus pour se débarrasser d'eux.
0
Corey

Goto-> Special-> blanks n'aime pas les cellules fusionnées. Essayez de supprimer les cellules au-dessus de la plage dans laquelle vous souhaitez sélectionner des blancs, puis réessayez.

0
roikyibryant

La solution la plus simple pour moi a été de:

1) Sélectionnez la plage et copiez-la (ctrl + c)

2) Créez un nouveau fichier texte (n'importe où, il sera bientôt supprimé), ouvrez le fichier texte et collez ensuite les informations Excel (ctrl + v)

3) Maintenant que les informations dans Excel se trouvent dans le fichier texte, effectuez une sélection dans le fichier texte (ctrl + a), puis copiez-la (ctrl + c).

4) Accédez au début de la plage d'origine à l'étape 1 et collez les anciennes informations de la copie à l'étape 3.

TERMINÉ! Plus de faux blancs! (vous pouvez maintenant supprimer le fichier texte temporaire)

0
treyr

J'avais un problème similaire à obtenir que la formule COUNTA comptât les cellules non vides. Elle comptait toutes les cellules (même les vierges comme non vides). J'ai essayé = CODE (), mais elles n'avaient ni espaces ni nouvelles lignes. 

J'ai trouvé que lorsque je cliquais dans la cellule puis que je cliquais hors de celle-ci, la formule comptait la cellule. J'avais des milliers de cellules, je ne pouvais donc pas le faire manuellement. J'ai écrit cette déclaration VBA pour vérifier littéralement toutes les cellules et si elles étaient vides, alors pour les vider. Ignorez le caractère inutile de cette macro et croyez-moi que cela a fonctionné en forçant Excel à reconnaître les cellules vides comme étant réellement vides.

'This checks all the cells in a table so will need to be changed if you're using a range
Sub CreateBlanks()

Dim clientTable As ListObject
Dim selectedCell As Range

Set clientTable = Worksheets("Client Table").ListObjects("ClientTable")

For Each selectedCell In clientTable.DataBodyRange.Cells
    If selectedCell = "" Then
        selectedCell = ""
    End If
Next selectedCell
End Sub
0
Gareth Brown