Supprimer les valeurs zéro [EXCEL]

Résolu
iliesss Messages postés 113 Date d'inscription   Statut Membre Dernière intervention   -  
eriiic Messages postés 24603 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.
A voir également:

1 réponse

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