probleme de remplacement entre "." et","

  • Initiateur de la discussion matthieu
  • Date de début
M

matthieu

Guest
bonjour a tous,

je souhaite pouvoir remplacer tous les points par des virgules
car j'importe un document TXT qui comporte des points faisant office de virgules

mais il y a un problème de remplacement pour les valeurs ayant 3 chiffres apres la virgule
cela met un espace au lieu de mettre une virgule

dans le fichier joint, je détaille mon problème

merci [file name=Classeur1_20050824085657.zip size=7096]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur1_20050824085657.zip[/file]
 

Pièces jointes

  • Classeur1_20050824085657.zip
    6.9 KB · Affichages: 31

andré

XLDnaute Barbatruc
Salut,

Je ne m'y connais pas du tout en macros, mais j'en ai enregistré une qui fonctionne parfaitement chez moi :

Sub Macro2()
Range('B7:B14').Select
Selection.Replace What:='.', Replacement:=',', LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub

Maintenant à vous dire pourquoi .... ?

Â+
 

Christophe

XLDnaute Occasionnel
Bonsoir André, Matthieu

Aussi étrange que cela soit, je viens d'essayer ta macro chez moi et elle ne marche pas non plus ! Elle produit le même résultat que celle de Matthieu.

Vraiment étrange !!!

Pour info je suis sous Windows 2000 et excel 2003.
 

tontoncarton

XLDnaute Occasionnel
Re:probleme de remplacement entre \".\" et\",\"

bonsoir le forum ,

alors pour ton probleme voila :
tu crees un module :

Sub recherche(Textbox As msforms.Textbox)
'Recherche les points
txtSearch = '.'
Found = InStr(Textbox.Text, txtSearch)
'Si le mot est trouvé
If Found <> 0 Then
'selectionne
Textbox.SelStart = Found - 1
'Selectionne la longueur (len) du text
Textbox.SelLength = Len(txtSearch)
'remplace par une virgule
Textbox.SelText = ','
Else
End If
End Sub

et pour chaque textbox tu crees une procedure :
Private Sub TextBox1_Change()
Call Module1.recherche(TextBox1)
End Sub


et voilou :) plus de '.' que des virgules ,tu peux biensur faire le contraire plus de ',' et que des '.' lol :)

bon courage :) @ +

Message édité par: tontoncarton, à: 24/08/2005 20:59
 

Ti_

Nous a quitté
Repose en paix
Erreur classique : ce ne sont pas les différentes macros qui sont en cause, mais ton format de cellule qui n'affiche pas les décimales.

Donc remets un format Standard ou un format nombre avec plus de 0 décimale et tu verras que ça marche

une macro plus simple que la tienne (si tu n'as que des nombres dans ta feuille) :

Sub Remplace()
Dim Cel As Range
For Each Cel In ActiveSheet.UsedRange
If Cel <> '' Then
Cel = Val(Cel)
End If
Next Cel
End Sub
 

Ti_

Nous a quitté
Repose en paix
Re:probleme de remplacement entre \".\" et\",\"

arf, et bien c'est simple, si ton Excel local ne reconnaît que les virgules, en revanche VBA, lui, ne reconnaît que les points, mais quand on demande à VBA d'écrire une valeur numérique dans une cellule, les deux s'arrangent pour ne pas créer d'erreur (et heureusement). En gros, il vaut mieux laisser Excel faire seul le boulot de conversion plutôt que d'essayer de le faire à sa place.

euh, dans ma première réponse je me suis un peu emporté, donc je rectifie, finalement ta demande n'avais rien de provoquant. Ceci dit je pense que tu n'as pas testé ma macro qui, je t'assure, fonctionne très bien (si tu n'as que des nombres dans ta feuille)

Message édité par: Ti_, à: 25/08/2005 13:36
 

Statistiques des forums

Discussions
311 716
Messages
2 081 848
Membres
101 826
dernier inscrit
dododu89