Remplacer un caractère par un autre
Résolu
med_mugen
Messages postés
81
Statut
Membre
-
med_mugen Messages postés 81 Statut Membre -
med_mugen Messages postés 81 Statut Membre -
Bonjour à tous et toutes,
Je contacte juste pour savoir pourquoi ma macro ne fonctionne pas (ne fait pas le job) pourtant je suis certain de ne pas avoir commis d'imper.
Si quelqu'un pouvait m'aider je vous met en joint le fichier en question
https://www.cjoint.com/c/FAAqmc5MSw6
Par avance merci pour vos éclaircissements.
Je contacte juste pour savoir pourquoi ma macro ne fonctionne pas (ne fait pas le job) pourtant je suis certain de ne pas avoir commis d'imper.
Si quelqu'un pouvait m'aider je vous met en joint le fichier en question
https://www.cjoint.com/c/FAAqmc5MSw6
Par avance merci pour vos éclaircissements.
1 réponse
-
Bonjour,
Le code tel qu'écrit comporte pas mal d'erreurs...Sub remplacer() Dim c As Range Dim d As String For Each c In Range([E4], [E65536].End(xlDown)) d = Replace(c, ",", ".") Next c End Sub
1- [E65536].End(xlDown)
Commence à la cellule E65536 et descend jusqu'à la première ligne vide et/ou non vide vers le bas du tableur...
Essaie ce test :Sub test() MsgBox [E65536].End(xlDown).Row End Sub
Toi, vraisemblablement, tu souhaites la dernière ligne remplie colonne E.
A lire : https://forums.commentcamarche.net/forum/affich-37622001-vba-detection-de-cellule-vide-ligne-colonnne
2- d = Replace(c, ",", ".")
Cool. Ca c'est bon, pas d'erreur.
Mais, est ce bien ce que tu veux?
Que fait cette ligne?
Elle stocke, dans la variable d (en mémoire donc, pas dans ta feuille) la valeur de Replace.
Bon, ne te reste qu'à restituer cette valeur dans la feuille.
Comment?
Simplement :c.Value = d
3- Excel ne remplace pas ma virgule par le point! Grrr!!!
Et oui! Excel reconnait les nombres pour ce qu'ils sont, des nombres!
Si, dans tes paramètres Windows, le séparateur décimal est la virgule, le fait de remplacer celle-ci par un point, n'empêchera pas Excel de systématiquement faire l'opération inverse.
Comment y remédier?
Simplement en disant à Excel que le format de la cellule souhaité est "texte".
Cela s'écrit comme ceci :c.NumberFormat = "@"
Corrections :Sub remplacer() Dim c As Range Dim d As String For Each c In Range([E4], [E65536].End(xlUp)) d = Replace(c.Value, ",", ".") c.NumberFormat = "@" c.Value = d Next c End Sub