Supprimer les lignes à 0

AA456789 -  
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.

1 réponse

  1. ThauTheme Messages postés 1564 Statut Membre 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