Je suis un débutant complet pour Excel, s'il vous plaît, excusez-moi si cela est facile à faire. J'ai examiné beaucoup d'options mais je n'ai pas pu trouver ce dont j'avais besoin.
Fondamentalement, je veux supprimer toutes les lignes qui ne contiennent pas de valeur dans la colonne C. Comment procéder?
Je le fais manuellement maintenant pour plus de 5000 produits et cela me rend fou.
Vous pouvez le faire très rapidement si les cellules sont vraiment vierges à l'aide de SpecialCells
Manuel
F5
, puis sur Special
Blanks
, puis OK
(voir cette étape dans la photo en bas) VBA
Sub QuickCull() On Error Resume Next Columns("C").SpecialCells(xlBlanks).EntireRow.Delete End Sub
Voici une méthode manuelle facile
Auto Filter
sur votre feuille C
Vide Ce processus peut être automatisé avec VBA si nécessaire. Essayez d'exécuter l'enregistreur de macro pour commencer
Je pense que la chose la plus simple, en supposant que vous ne disposez pas d'autres formules dans les autres cellules, consiste à trier tout par la colonne C, puis à supprimer toutes les lignes qui ont un blanc pour la colonne C (la fonction de tri mettra les valeurs vierges Pour la colonne C en haut du fichier).
En résumé:
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
Vous pouvez mettre ce code dans Sheet Module (clic droit de la souris Cliquez sur l'onglet de la feuille 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