Supprimer les valeurs zéro [EXCEL]
Résolu
iliesss
Messages postés
120
Statut
Membre
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 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:
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.
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:
- Supprimer les valeurs zéro [EXCEL]
- Supprimer rond bleu whatsapp - Guide
- Remettre a zero un pc - Guide
- Liste déroulante excel - Guide
- Supprimer page word - Guide
- Word et excel gratuit - Guide
1 réponse
Bonjour,
à mettre dans la feuille concernée :
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.
eric
edit2 : correction du 2nd code
à 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
merci beaucoup pour la solution, le deuxième code est rapide que le premier mais les deux codes fonctionnent
merci encore une fois .
Bonne intervention lentz ;-)
eric