Supprimer les valeurs zéro [EXCEL]

Résolu
Bonjour
J'ai une plage (A1:BA3000) qui contienne que des nombres.
J'ai essayé de supprimer les valeurs zéro avec le code suivant:

Range("A1:ba3000").AutoFilter Field:=3, Criteria1:="0,00"
Range("c2:c3000").SpecialCells(xlCellTypeVisible).ClearContents
Range("A1:ba3000").AutoFilter Field:=3

Mon problème ce que je doit répéter ce code 53 fois et je change que le N° de Field (de 3 au 53) et la range ("c2:c3000") au range ("ba2:ba3000")

Question
SVP comment faire pour réduire ces 53 codes pour supprimer les valeurs zéro.

1 réponse

  1. Contributeur
    Bonjour,

    à mettre dans la feuille concernée :
    Sub suppZero()     
        Dim c As Range     
        Application.ScreenUpdating = False     
        For Each c In [C2:BA3000]     
            If c = 0 Then c.ClearContents     
        Next c     
        Application.ScreenUpdating = true  
    End Sub

    On pourrait faire plus rapide mais est-ce que ça vaut le coup...
    eric

    edit :
    en sûrement plus rapide mais je te laisse tester ayant la flemme de construire un classeur.
    Sub suppZero()
        Dim f As Long
        Application.ScreenUpdating = False
        For f = 3 To 53
            Range("A1:ba3000").AutoFilter Field:=f, Criteria1:=0
            On Error Resume Next
            [C2].Offset(0, f - 3).Resize(2999, 1).SpecialCells(xlCellTypeVisible).ClearContents
            On Error GoTo 0
            Range("A1:ba3000").AutoFilter
        Next f
        Application.ScreenUpdating = False
    End Sub
    

    eric
    edit2 : correction du 2nd code
    1
    1. salut Mr ERIC
      merci beaucoup pour la solution, le deuxième code est rapide que le premier mais les deux codes fonctionnent
      merci encore une fois .
      0
    2. Pour le dernier SreenUpdating ... il faut mettre True et non False
      0
    3. Contributeur
      Oui, mettre le 2nd à true.
      Bonne intervention lentz ;-)
      eric
      0