web-dev-qa-db-fra.com

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

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

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

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

19
John

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, puis Special
  • Cochez Blanks, puis OK (voir cette étape dans la photo en bas)
  • Supprimer 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

Screenshot showing the Go To Special -> Blanks menuScreenshot showing how to use the ribbon to delete entire rows in selection

25
brettdj

Voici une méthode manuelle facile

  1. Appliquez un Auto Filter à votre feuille
  2. Filtrer sur la colonne C Vierge
  3. Sélectionner toutes les lignes visibles
  4. Supprimer des lignes
  5. Supprimer le filtre

Ce processus peut être automatisé avec VBA si nécessaire. Essayez de lancer l’enregistreur de macros pour commencer.

7
chris neilsen

Je pense que la meilleure chose à faire en supposant que vous n’ayez pas beaucoup d’autres formules dans les autres cellules est de tout trier par la colonne C, puis de supprimer toutes les lignes qui ont un blanc pour la colonne C (la fonction de tri met les valeurs vides pour la colonne C en haut du fichier).

En résumé:

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

Cela devrait marcher.

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
0
Nick