Excel remplacer 0 par "" en VBA

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.

2 réponses

  1. 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
    1. Contributeur
      Bonjour,
      Bonjour Mike,
      Peut-être avec..
          Columns("W:W").NumberFormat = "0.00%"
          ActiveWindow.DisplayZeros = False

      A+
      0