Excel: supprimer la ligne si la cellule de certaines colonnes est vide?


23

Je suis un débutant complet pour Excel, veuillez donc m'excuser si c'est quelque chose de facile à faire. J'ai examiné de nombreuses options mais je n'ai pas trouvé ce dont j'avais besoin.

Fondamentalement, je souhaite supprimer toutes les lignes qui ne contiennent pas de valeur dans la colonne C. Comment pourrais-je procéder?

Je fais cela manuellement maintenant pour plus de 5000 produits et cela me rend fou.


2
Pourquoi une question a-t-elle été posée sur Stack OverFlow avec les solutions VBA migrées vers Super User?
brettdj

Réponses:


31

Vous pouvez le faire très rapidement si les cellules sont vraiment vides en utilisant SpecialCells

Manuel

  • Sélectionnez la colonne C
  • Appuyez sur F5, puisSpecial
  • Vérifiez Blanks, alors OK(voir cette étape sur la photo en bas)
  • Supprimez les lignes qui sont maintenant sélectionnées (par exemple clic droit dans la sélection> Supprimer les cellules ... > Ligne entière ou via le ruban (voir deuxième capture d'écran))

VBA

Sub QuickCull()
    On Error Resume Next
    Columns("C").SpecialCells(xlBlanks).EntireRow.Delete
End Sub

Capture d'écran montrant le menu Go To Special -> Blanks Capture d'écran montrant comment utiliser le ruban pour supprimer des lignes entières dans la sélection


8

Voici une méthode manuelle simple

  1. Appliquez un Auto Filterà votre feuille
  2. Filtre sur colonne Cvide
  3. Sélectionnez toutes les lignes visibles
  4. Supprimer des lignes
  5. Supprimer le filtre

Ce processus peut être automatisé avec VBA si nécessaire. Essayez d'exécuter l'enregistreur de macros pour commencer


Simple mais efficace. Faites des merveilles!
Tiana987642

2

Je pense que la chose la plus simple en supposant que vous n'avez pas un tas d'autres formules dans les autres cellules est de tout trier par colonne C, puis de supprimer toutes les lignes qui ont un blanc pour la colonne C (la fonction de tri mettra les valeurs vides pour la colonne C en haut du fichier).

En résumé:

  • Cliquez sur la cellule de papier pliée au-dessus de la cellule marquée "1" et à gauche de la cellule marquée "A" (pour tout mettre en surbrillance)
  • Cliquez sur Données, puis triez
  • Trier par colonne C et faire en sorte que les plus petites valeurs soient les premières
  • Mettez simplement les lignes en surbrillance jusqu'à ce que vous atteigniez la première ligne avec une valeur pour la colonne C, et supprimez tout ce que vous avez mis en surbrillance

0

Cela devrait fonctionner.

Columns("C:C").Select
Set rngRange = Selection.CurrentRegion
lngNumRows = rngRange.Rows.Count
lngFirstRow = rngRange.Row
lngLastRow = lngFirstRow + lngNumRows - 1
lngCompareColumn = ActiveCell.Column
For lngCurrentRow = lngLastRow To lngFirstRow Step -1
If (Cells(lngCurrentRow, lngCompareColumn).Text = "") Then _
Rows(lngCurrentRow).Delete
Next lngCurrentRow

-1

Vous pouvez mettre ce code dans le module de feuille (onglet Feuille de clic droit de la souris et sélectionner "Afficher le code"):

Sub Delete_Blank_Rows()


'Deletes the entire row within the selection if the ENTIRE row contains no data.

'We use Long in case they have over 32,767 rows selected.

Dim i As Long
Dim LastRow As Integer

'We turn off calculation and screenupdating to speed up the macro.

 With Application
     .Calculation = xlCalculationManual
     .ScreenUpdating = False

     'Reduce the work on the calc and define the range

     LastRow = Range("A" & Rows.Count).End(xlUp).Row
     Range("A2:A" & LastRow).Select

     'We work backwards because we are deleting rows.

     For i = Selection.Rows.Count To 1 Step -1
          If WorksheetFunction.CountA(Selection.Rows(i)) = 0 Then
              Selection.Rows(i).EntireRow.Delete
          End If
     Next i

    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With

End Sub

1
Cela supprime les lignes où la ligne entière est vide? -Si c'est le cas, c'est similaire à la réponse @drnewman. La question stipule spécifiquement: Supprimer la ligne si la cellule de certaines colonnes est vide.
Davidenko

Bienvenue sur Super User! Veuillez relire attentivement la question. Votre réponse ne pas à la question d'origine.
DavidPostill
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.