Excel remplacer 0 par "" en VBA
Lucie
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
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.
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:
- Excel remplacer 0 par "" en VBA
- Liste déroulante excel - Guide
- Remplacer disque dur par ssd - Guide
- Excel trier par ordre croissant chiffre - Guide
- Word et excel gratuit - Guide
- Mise en forme conditionnelle excel - Guide
2 réponses
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.
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.