Microsoft 365 Utiliser VBA pour remplacer un symbole

ahmedhassanin

XLDnaute Nouveau
Bonjour à tous et à toutes,

Je commence à apprendre comment utiliser VBA, et je voulais mettre en place une formule dans un fichier ( pour l'instant vierge). le but de la formule sera de remplacer les "." par des ",". j'ai essayé d'utiliser la formule replace(variable,".",","), mais à chaque fois que je rajoute des chiffres au fichier et j'essaye d'exécuter la macro je reçois un message d'erreur de compilation disant numéro de ligne ou étiquette ou instruction ou fin d'instruction. Est ce que quelqu'un içi pourra m'aider à resoudre ce problème svp ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour ahmedhassanin, et bienvenu sur XLD,
En PJ un essai avec :
VB:
Sub Remplace()
    Dim i%
    For i = 1 To Range("A65500").End(xlUp).Row
        Cells(i, "A") = Replace(Cells(i, "A"), ",", ".")
    Next i
End Sub
Je remplace "," par "." car mon PC est configuré avec le point comme séparateur décimal.
A vous d'adapter.
 

Pièces jointes

  • Classeur1.xlsm
    14.7 KB · Affichages: 2

Phil69970

XLDnaute Barbatruc
Bonjour @ahmedhassanin

Edit : Bonjour Sylvain

Je te propose ceci :

VB:
'Ici on contrôle la colonne B <== à adapter si c'est pour une autre colonne
Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then 'A adapter ==> Range("B:B)
    [B:B].Replace ".", ".", xlPart   'A adapter ==> [B:B]
End If
End Sub

*Merci de ton retour

@Phil69970
 

patricktoulon

XLDnaute Barbatruc
bonjour

il y a la fonction replace VBA issue de VB et la fonction replace pour les cellules mais le code ne s'ecrit pas pareil
-----------------------------------------------------------------------------------------------------------------
replacer un string
formulation:
=replace( [la chaîne à examiner] , [le caractère à remplacer] , [le caratere de remplacement]

exemple
VB:
toto="15.45"
toto=replace(toto,".",",")
msgbox toto
-----------------------------------------------------------------------------------------------------------------

replacer dans une/des cellules
la formulation:( je la trouve très similaire au language Js)
objectRange.replace( [carateres à remplacer] , [caractere de remplacement] )

exemple toute la colonne A
Code:
[A:A].replace ".",","

-----------------------------------------------------------------------------------------------------------------
 

ahmedhassanin

XLDnaute Nouveau
Merci à tous pour vos réponses mais j'ai toujours le mm problème, à chaque fois que j'ai + de 2 chiffres après la virgule (100.464 par exemple) après exécution du code, j'obtiens 100464 et pas 100,464, pourtant pour 2 chiffres ou moins après la virgule j'obtiens les résultats désirés.
Quelqu'un aura une idée de la cause ?
 

Discussions similaires

Réponses
3
Affichages
683

Statistiques des forums

Discussions
299 703
Messages
1 978 594
Membres
206 298
dernier inscrit
yannick451