XL 2010 Supprimer lignes à 0 sur plusieurs colonnes

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

malou1006

XLDnaute Nouveau
Bonsoir,

J'ai un fichier dans lequel j'ai des colonnes de 2018 à 2022 mais pour certaines lignes il y a des 0 mais pas dans chaque colonne.

Je cherche un moyen pour supprimer les lignes qui sont à 0 de 2018 à 2022 par exemple les lignes des comptes 62118 et 6214 doivent être supprimées et celle du 62141 doit rester.

1686584672755.png


Pourriez-vous m'aider je ne trouve pas de solutions.

PS : je suis sur Excel 2010

Merci à tous
 
Solution
Re

@malou1006
En ajoutant une colonne supplémentaire avec cette formule
=NB.SI(C2:F2;0)=4
( à recopier vers le bas)
Ensuite sur cette colonne, on applique un filtre automatique avec comme critère : VRAI
Il suffit ensuite de supprimer les lignes filtrées.

NB: Si le volume de lignes est plus conséquent que ton exemple, on peut utiliser une macro pour se simplifier la tâche.
Bonjour @malou1006

Deux questions
1) Ne pas afficher les valeurs 0 ne ne suffit pas ?

2) Tu veux supprimer les lignes ou les masquées?

PS: Si tu joignais un extrait allégé et anonymisé de ton fichier (donc un fichier Excel) se serait plus simple pour faire des tests
(Avec une image, on ne peut rien faire : ni formules, ni macro)

EDITION: Bonjour @sylvanu
 
Bonjour @malou1006

Deux questions
1) Ne pas afficher les valeurs 0 ne ne suffit pas ?

2) Tu veux supprimer les lignes ou les masquées?

PS: Si tu joignais un extrait allégé et anonymisé de ton fichier (donc un fichier Excel) se serait plus simple pour faire des tests
(Avec une image, on ne peut rien faire : ni formules, ni macro)

EDITION: Bonjour @sylvanu
 

Pièces jointes

Re

@malou1006
En ajoutant une colonne supplémentaire avec cette formule
=NB.SI(C2:F2;0)=4
( à recopier vers le bas)
Ensuite sur cette colonne, on applique un filtre automatique avec comme critère : VRAI
Il suffit ensuite de supprimer les lignes filtrées.

NB: Si le volume de lignes est plus conséquent que ton exemple, on peut utiliser une macro pour se simplifier la tâche.
 
Re,
Un essai en PJ avec :
VB:
Sub SuppLignes()
    Application.ScreenUpdating = False                  ' On fige l'écran
    DL = [A65000].End(xlUp).Row                         ' Dernière ligne de Résultat
    f = "=SI(SOMME(D2:G2)=0;CAR(1);0)"                  ' Formule utilisée. Attention ajouter 1 aux colonnes pour compenser nouvelle colonne en A."
    With Range("ZZ2:ZZ" & DL)                             ' Plage où coller la formule en colonne A qui sera triée
        .FormulaLocal = f                               ' Coller formule
        .EntireRow.Sort .Cells, xlDescending            ' Tri pour regrouper et accélérer
        .SpecialCells(xlCellTypeFormulas, 2).EntireRow.Delete  ' Suppression des lignes concernées
        .ClearContents                                  ' Effacement colonne formules
    End With
    Columns.AutoFit                                     'Ajustement largeurs colonnes
    With ActiveSheet.UsedRange: End With                'Ajustement barres de défilement
    [A1].Select
End Sub
 

Pièces jointes

Re

@malou1006
En ajoutant une colonne supplémentaire avec cette formule
=NB.SI(C2:F2;0)=4
( à recopier vers le bas)
Ensuite sur cette colonne, on applique un filtre automatique avec comme critère : VRAI
Il suffit ensuite de supprimer les lignes filtrées.

NB: Si le volume de lignes est plus conséquent que ton exemple, on peut utiliser une macro pour se simplifier la tâche.
oui j'avais plus de 250 lignes mais ça va c'est top merci beaucoup et bonne soirée
 
Re,
Un essai en PJ avec :
VB:
Sub SuppLignes()
    Application.ScreenUpdating = False                  ' On fige l'écran
    DL = [A65000].End(xlUp).Row                         ' Dernière ligne de Résultat
    f = "=SI(SOMME(D2:G2)=0;CAR(1);0)"                  ' Formule utilisée. Attention ajouter 1 aux colonnes pour compenser nouvelle colonne en A."
    With Range("ZZ2:ZZ" & DL)                             ' Plage où coller la formule en colonne A qui sera triée
        .FormulaLocal = f                               ' Coller formule
        .EntireRow.Sort .Cells, xlDescending            ' Tri pour regrouper et accélérer
        .SpecialCells(xlCellTypeFormulas, 2).EntireRow.Delete  ' Suppression des lignes concernées
        .ClearContents                                  ' Effacement colonne formules
    End With
    Columns.AutoFit                                     'Ajustement largeurs colonnes
    With ActiveSheet.UsedRange: End With                'Ajustement barres de défilement
    [A1].Select
End Sub
c'est top aussi plus rapide forcément via VB. Merci beaucoup et bonne soirée
 
Bonjour à tous,

Autre solution :
VB:
Sub Supprimer()
Dim ncol%, i&, flag As Boolean, v#, j%
Application.ScreenUpdating = False
With ActiveSheet.UsedRange
    ncol = .Columns.Count
    For i = .Rows.Count To 1 Step -1
        flag = False
        v = 0
        For j = 3 To ncol
            If IsNumeric(CStr(.Cells(i, j))) Then flag = True: v = v + Abs(.Cells(i, j))
        Next j
        If flag And v = 0 Then .Rows(i).Delete xlUp
    Next i
End With
End Sub
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
444
Retour