Supprimer les lignes à 0

AA456789 -  
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   -
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.

1 réponse

ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
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

0