Forum Clubic

Remplacer un caractère dans une chaîne

Bonjour,

J’ai une chaîne de caractère : 0000.000
et je cherche à remplacer le 6me caractère de cette chaîne par un 5.
Je ne trouve malheureusement pas de fonction pour ce problème, est-ce que qqn peut m’aider ?

Merci d’avance à tous.

Quel langage?

VB, c’est une macro.

Regarde dans l’aide sur la methode replace :wink:

Ok, merci pour votre aide, j’ai trouvé la sol. suivante :

r = “0000.000”
r = Left(r, 5) + “5” + Right(r, Len® - 6)
MsgBox r

t’as aussi la methode mid qui peut t’aider :oui:

function Replace par l’exemple :

Dim Chaine As String
Chaine = “0000.000”

MsgBox Replace(Chaine, “.0”, “.5”, 1, Len(Chaine), 1)

Je ne peux plus me passer de ça :slight_smile:

Bonjour,
désolé pour le petit déterrage.

J’ai le même cas à une exception près : le caractère a remplacer peut se trouver n’importe où dans la chaine, et je ne souhaite pas le remplacer.

exemple : 01.02.03.04.05
=> doit devenir : 0102030405

mais ca peut etre :
001.02.03.04.05
=> 00102030405

Merci pour votre aide.

Je suis sur une base Access et je peux donc faire que du VBA.

Sub TestReplace()
X = “45.65.78.98.21”
X = Replace(X, “.”, “”)
End Sub

Merci pour l’aide mais la fonction Replace ne fonctionne pas sous Access 97 … dommage pour moi!

Je vais essayer de voir commment faire autrement.
Si vous avez des idées, n’hesitez pas.

un petit exemple :
[cpp]
Dim fnd As Integer
Dim tel As String

tel = “01.23.45.67.89”
fnd = InStr(1, tel, “.”, vbTextCompare)
Do While fnd > 0
tel = Left(tel, fnd - 1) & Mid(tel, fnd + 1)
fnd = InStr(1, tel, “.”, vbTextCompare)
Loop

MsgBox tel
[/cpp]

Bonjour

Pris sur le site de 3stone, acteur principal du newsgroup Access (http://users.skynet.be/accesshome/) :

Function fReplace(ByVal strValue As String, _
ByVal strToReplace As String, _
ByVal strReplaceValue As String) As String

Dim Position As Integer

Position = InStr(strValue, strToReplace)

Do While Position > 0
strValue = Left(strValue, Position - 1) _
& strReplaceValue _
& Mid(strValue, Position + Len(strToReplace))

Position = InStr(Position + Len(strReplaceValue), _
strValue, strToReplace, vbTextCompare)

Loop
fReplace = strValue
End Function

Cordialement