Supprimer les valeurs zéro [EXCEL]

Résolu
iliesss Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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. iliesss Messages postés 92 Date d'inscription   Statut Membre Dernière intervention  
       
      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. Lentz
       
      Pour le dernier SreenUpdating ... il faut mettre True et non False
      0
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Oui, mettre le 2nd à true.
      Bonne intervention lentz ;-)
      eric
      0