Excel remplacer 0 par "" en VBA

Fermé
Lucie - 22 févr. 2011 à 11:03
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 22 févr. 2011 à 13:16
Bonjour,
Je suis sur un tableau excel, j'ai réalisé des requêtes en VBA mais j'ai un problème,
J'en suis à changer le format de ma colonne en nombre, pour fire un filtre sur les 0, les remplacer par des vides("") et remettre ma colonne en 0.00%.
Voici comment je l'ai formuler mais ca ne marche pas, la sélection ne me donne rien:
Sheets("resultat").Select
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("W:W").Select
Application.CutCopyMode = False
Columns("W:W").Select
Selection.NumberFormat = "0.00"
Cells.Select
Range("G1").Activate
Selection.AutoFilter
Selection.AutoFilter Field:=23, Criteria1:=0
Columns("W:W").Select
Selection.Replace What:="0", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("W2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.NumberFormat = "0.00%"
Range("W2").Select
Cells.Select
Range("F1").Activate
Selection.AutoFilter

Merci de votre aide.



A voir également:

2 réponses

Mike-31 Messages postés 18350 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 28 novembre 2024 5 106
Modifié par Mike-31 le 22/02/2011 à 11:34
Salut,

pour traiter la colonne W de la ligne 2 à la ligne 20 par exemple, remplace les 0 par rien (peut s'écrire également en utilisant la syntaxe replace)


Sub test()
col = "W"
For i = 2 To 20
If Cells(i, col) = 0 Then Cells(i, col) = ""
Cells(i, col).NumberFormat = "0.00%"
Next i
End Sub

si tu as déjà des valeurs dans tes cellules il vaudrait mieux inverser la suppression des 0 et diviser les valeur par 100 sinon une valeur ex.10 donnera 1000%

Sub test()
col = "W"
For i = 2 To 20
If Cells(i, col) = 0 Then Cells(i, col) = ""
Cells(i, col).NumberFormat = "0.00%"
Cells(i, col) = Cells(i, col) / 100
Next i
End Sub

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
22 févr. 2011 à 13:16
Bonjour,
Bonjour Mike,
Peut-être avec..
    Columns("W:W").NumberFormat = "0.00%"
    ActiveWindow.DisplayZeros = False

A+
0