Remplacement point par virgule avec VBA [Fermé]

Signaler
-
 Carlguer -
Bonjour,

Pour ceux qui connaissent vba excel,

j'ai fait une macro très simple qui sélectionne feuille et qui remplace les points par des virgules,

quand on le fait "à la main" (Edition/Remplacer, etc) cela marche très bien.

Par contre avec la macro, qui décrit en effet l'action décrite ci-avant, ne marche pas.

Par exemple pour les numéro du type : 1.27365e+006
la macro les transforme en : 127365000000

voila la macro, elle est très simple :

Sub pv3()

Cells.Select
Application.CutCopyMode = False
Selection.NumberFormat = "General"
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False

End Sub


Je vous remercie d'avance pour votre réponse
A voir également:

6 réponses

Le sujet est sûrement clos, mais pour les suivants qui en auront besoin :

Il faut remplacer le point par un point dans la macro. Dans mon cas :

Selection.Replace What:=".", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
31
Merci

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez Comment Ça Marche

CCM 65492 internautes nous ont dit merci ce mois-ci


Merci, je n'avais pas encore trouver ...
Merci ! Pas évident à deviner...
Et ben on peut te dire merci, ça fait 1000 ans que je cherche !!
Merci beaucoup! je vais tester! :-)
tout à fait, merci bien pour l'histoire du "." je n'aurais jamais touvé tout seul, votre intervention est encore utile en 2020 ;-)
Salut,

merci cela un bon moment que j' m'arrache les cheveux avec cette fonction, et les différents forum!
Encore merci d'avoir fait le nouveau post!
voila une solution qui marche et que j'ai cherché longtemps .......

# Sub Remplace()
# For Each cell In Selection
# If InStr(1, cell.Text, ".") > 0 Then
# cell.Value = CDbl(Val(cell.Text))
# End If
# Next
# End Sub

Bonjour,

suggestion :

Sub pv3()

    Cells.Select
    Selection.NumberFormat = "0.00000E+000"
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
                                  SearchOrder:=xlByRows, MatchCase:=False
    Cells(1, 1).Select

End Sub
'

Lupin
J'ai juste utilisé:

Cells.Select
Selection.NumberFormat = "0\.00000E+000"

/!\ Ne pas oublier "\." à la place de "." pour qu'un point soit bien inséré.
Bonjour

J'ai fait pas mal d'essais. Malheureusement, je ne peux que constater la bizarrerie, pour ne pas dire le bug.
:( aussi
Bonjour,
merci pour ta suggestion,
je l'ai essayée mais la macro fait la même chose (ajoute les 6 zéros) même si on change
d'avantage le format numérique des cellules.
Je l'avais déjà essayé, pas avec un format personnalisé mais avec le format Standard, mais tjrs la même chose.

Mais encore une fois merci pour ta proposition.

boggg
personne ?? :( :(