2012-09-15 03:05:46 +0000 2012-09-15 03:05:46 +0000
24
24
Advertisement

Excel : Supprimer une ligne si la cellule d'une certaine colonne est vide ?

Advertisement

Je suis un débutant complet en Excel, alors veuillez m'excuser si c'est quelque chose de facile à faire. J'ai cherché dans 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 dois-je m'y prendre ?

Je le fais manuellement en ce moment pour plus de 5000 produits et ça me rend fou.

Advertisement
Advertisement

Réponses (4)

34
34
34
2012-09-15 06:08:10 +0000

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 l'image du bas)
  • Supprimez les lignes qui sont maintenant sélectionnées (e. g. clic droit dans la sélection > Supprimer les cellules… > Entrée ligne 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

9
9
9
2012-09-15 03:41:57 +0000

Voici une méthode manuelle facile

  1. Appliquez un Auto Filter à votre feuille
  2. Filtrez sur la colonne C Blank
  3. Sélectionnez toutes les lignes visibles
  4. Supprimez les lignes
  5. Supprimez le filtre

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

0
Advertisement
0
0
2016-02-19 16:18:47 +0000
Advertisement

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
-1
-1
2015-03-22 11:48:37 +0000

Vous pouvez mettre ce code dans le module Feuille (cliquez sur l'onglet Feuille avec le bouton droit de la souris et sélectionnez “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
Advertisement

Questions connexes

6
13
9
10
4
Advertisement