Remplacer caractère par un autre VBA
Bonjour la communauté,
j'ai une macro qui normalement fonctionne je suis persuadé qu'elle correctement écrite, sauf qu'elle ne fait pas le job demandé voir fichier ci-joint.
http://www.cjoint.com/c/FAAqmc5MSw6
il s'agit juste de remplacer "," par "." tout bête mais tout ce que j'ai pu tenter ne fonctionne pas. A défaut pouvoir effectuer une private sub, j'ai réaliser cette macro mais elle ne fonctionne pas.
si l'un d'entre vous connaitrait l'explication je lui en serai reconnaissant.
salut tous les deux et merci !
Citation:
Envoyé par
Menhir
Normalement, la fonction Replace fait ça sans problème.
Couplé à un "For Each ... in UsedRange", ça devrait se résoudre en trois lignes (quatre si on compte la déclaration de variable).
Bonsoir à tous les deux !
Voici la macro qui ne fonctionne pas
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| 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 |
j'avais commencer par enregistrer une macro, mais quand je l'exécutais ce remplacement ne fonctionnais pas. Du coup j'ai cris cette formule
[XL-2007] Remplacer caractère par un autre VBA
Bonsoir,
Un petit coup d'enregistreur de macros et ensuite adapter le code ??? ( onglet Affichage / Menu Macros / Enregistrer une macro )
Exemple :
Enregistrer une macro via le menu cité plus haut
Dans la feuille sélectionner la colonne B
Dans l'onglet Accueil, sélectionner le menu Rechercher et Sélectionner
Choisir le sous-menu Remplacer
Renseigner les champs "qui vont bien" caractère à remplacer et caractère de remplacement
Exécuter
Arrêter la macro ( petit carré blanc en bas à gauche dans la barre de Status )
Reste plus qu'à la modifier en fonction du besoin
J'ai bon :D ou pas :(
Pounet95
Code:
1 2 3 4 5 6 7 8 9 10 11
|
Sub Remplacer_Caractère()
Dim sAvant As String
Dim sAprès As String
sAvant = ","
sAprès = "."
Columns("B:B").Select
Selection.Replace What:=sAvant, Replacement:=sAprès, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub |
effectivement ça fonctionne !
donc pour des formats numériques, voire standard on utilise cette formule de remplacement des décimales, sinon c Replace () pour les chaines de caractères de types textes, c'est cela?
Merci pour vos explications et votre aide !
Merci Menhir pour votre conseil !