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

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

  • Essai.xlsx
    9.7 KB · Affichages: 14

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • Essai (2).xlsm
    18.6 KB · Affichages: 4

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 814
dernier inscrit
JLGalley