J'ai 10 colonnes dans une table Excel et je veux supprimer les lignes où la première cellule est vide.
J'ai essayé de le faire de cette façon: mais ça ne marche pas. Est que je dois utiliser une boucle imbriquée pour des rangées et des colonnes? P> p>
5 Réponses :
Généralement parlant oui. Boucle sur les lignes que vous voulez vérifier,
Rows(rowcounter).Delete
Lors de la suppression des lignes, itérer en arrière :)
Oh bon point - donc il devrait être pour Rowcounter = 10 à 1 étape -1
Je suppose que cet extrait simple, plein de procédures inutiles, peut vous aider:
Sub NotTested()
' Choose below the rows range
first_row = 2
last_row = 4242
For r = last_row To first_row Step -1
' Checking below each column (from row r) value
a_value = ThisWorkbook.Sheets("Sheet1").Cells(r, 1).Value2
b_value = ThisWorkbook.Sheets("Sheet1").Cells(r, 2).Value2
c_value = ThisWorkbook.Sheets("Sheet1").Cells(r, 3).Value2
d_value = ThisWorkbook.Sheets("Sheet1").Cells(r, 4).Value2
e_value = ThisWorkbook.Sheets("Sheet1").Cells(r, 5).Value2
f_value = ThisWorkbook.Sheets("Sheet1").Cells(r, 6).Value2
g_value = ThisWorkbook.Sheets("Sheet1").Cells(r, 7).Value2
' Comparing if the columns are actually empty
If a_value = "" And b_value = "" And c_value = "" And d_value = "" And e_value = "" And f_value = "" And g_value = "" Then
ThisWorkbook.Sheets("Sheet1").Cells(r, 1).EntireRow.Delete
End If
Next r
End Sub
Vous n'avez pas besoin de multiples boucles. Une seule boucle avec l'utilisation du La fonction isempty () devrait fonctionner:
Voici une solution simple qui compte en fait le nombre de lignes dans une table puis supprime si les 7 premières colonnes sont vides.
Sub deleteEmptyRows()
Set tbl = ActiveSheet.ListObjects("Table4")
For I = 1 To tbl.Range.Rows.Count
If WorksheetFunction.CountA(Range("A" & I & ":" & "G" & I)) = 0 Then
Sheets("Sheet1").Rows(I).EntireRow.Delete
End If
Next I
End Sub
Fais attention. Le numéro de ligne dans un ListObject peut être différent de ce numéro de ligne dans la feuille de calcul. Ce code ne fonctionnerait que si ListObject commence à la ligne 1. Sinon, vous supprimez la mauvaise ligne
Vous pouvez boucler à travers chaque rangée directement et vérifier si les 7 premières cellules de cette rangée de votre table sont vides. Si vrai, supprimez-les. Le bon point de cette façon est que si votre table change d'adresse, elle fonctionnera toujours. Il suffirait que de mettre à jour si vous souhaitez vérifier un nom différent de cellules (sept rgght maintenant) ou si la condition (7 premières cellules vides) change. P> p>