Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Supprimer ligne si cellule = zéro et changement de colonne

  • Initiateur de la discussion Initiateur de la discussion Fred59240
  • Date de début Date de début

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 !

Fred59240

XLDnaute Nouveau
Bonjour à toutes et tous,

J'ai un fichier avec plus de mille lignes, dont extrait ci-joint.
Je voudrais supprimer, via VBA, les lignes dont les cellules des colonnes G et H sont à zéro.
Egalement, dans la colonne G, si des valeurs sont négatives ( G16 dans le fichier) mettre la valeur positive en colonne H.
Nous aurions en H16 : 25,93

Sur le feuil1, le fichier initial, et en feuil2, le fichier auquel je souhaite arriver.

Mais sans votre aide, c'est difficile.

Merci pour vos retours

Fred
 

Pièces jointes

Bonjour Fred,
Un essai en PJ avec la macro ci dessous.
J'ai consiréré une cellule vide comme valent 0, à la lecture de la feuille 2.
La macro se lance par ALT+F8 et Nettoie.

VB:
Sub Nettoie()
    Application.ScreenUpdating = False
    SupprimerLignesGH0
    SiGNeg
End Sub
Private Sub SupprimerLignesGH0()
With ActiveSheet.UsedRange
    .Columns(2).EntireColumn.Insert 'insère une colonne auxiliaire
    With .Columns(2)
        .FormulaR1C1 = "=IF(AND(RC[6]=0,RC[7]=0),1,"""")"
        .Value = .Value 'supprime les formules
        .EntireRow.Sort .Cells, xlDescending  'tri pour regrouper et accélérer
        On Error Resume Next 'si aucune SpecialCell
        .SpecialCells(xlCellTypeConstants, 1).EntireRow.Delete
        .EntireColumn.Delete 'supprime la colonne auxiliaire
    End With
End With
With ActiveSheet.UsedRange: End With 'actualise les barres de défilement
End Sub
Private Sub SiGNeg()
' Si G<0 alors H=-G et G=""
For L = 1 To Range("A65500").End(xlUp).Row
    If Cells(L, "G") < 0 Then
        Cells(L, "H") = -Cells(L, "G")
        Cells(L, "G") = ""
    End If
Next L
End Sub
 

Pièces jointes

- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…