Supprimer les lignes à 0
AA456789
-
ThauTheme Messages postés 1564 Statut Membre -
ThauTheme Messages postés 1564 Statut Membre -
Bonjour,
J'ai un tableau Excel de plusiuers milliers de lignes sur lequel je souhaite supprimer toutes les lignes pour lesquelles j'ai des valeurs 0 sur l'ensemble des colonnes B à AD
Merci infinniment de votre aide.
J'ai un tableau Excel de plusiuers milliers de lignes sur lequel je souhaite supprimer toutes les lignes pour lesquelles j'ai des valeurs 0 sur l'ensemble des colonnes B à AD
Merci infinniment de votre aide.
1 réponse
-
Bonjour le forum,
Essaie comme ça (à adapter) :
Sub Macro1() Dim O As Worksheet 'déclare la variable O (Onglet) Dim TC As Variant 'déclare la variable TC (Tableau de Cellules) Dim I As Long 'déclare la variable I (Incrément) Dim J As Byte 'déclare la variable J (incrément) Dim PL As Range 'déclare la variable PL (PLage) Dim TEST As Boolean 'déclare la variable TEST Set O = Sheets("Feuil1") 'définit l'onglet O (à adapter) Set PL = O.Range("A1") 'initialise la plage PL TC = O.Range("A1").CurrentRegion 'définit le tableau de cellules TC For I = 1 To UBound(TC, 1) 'boucle 1 : sur toutes les lignes tu tableau TC TEST = False 'initialise la variable TEST For J = 2 To 30 'boucle 2 : sur toutes les colonnes 2 à 30 (=> B à AD) du tableau TC If TC(I, J) <> 0 Then 'condition : si la valeur ligne I colonne J n'est pas nulle TEST = True 'définit la variable TEST Exit For 'for de la boucle 2 End If 'fin de la condition Next J 'prochaine colonne de la boucle 2 'si TEST est [Faux] redéfinit la palge PL (la ligne I si PL ne contien qu'une seule cellule, sinon, l'union de PL et de la ligne I) If TEST = False Then Set PL = IIf(PL.Cells.Count = 1, O.Rows(I), Application.Union(PL, O.Rows(I))) Next I 'prochaine ligne de la boucle 1 PL.Delete 'efface la plage PL End Sub