Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Remplacer caractère dans Textbox

  • Initiateur de la discussion spoter
  • Date de début
S

spoter

Guest
bonjour à tous,

Dans une textbox qui compte 6 caractères, je cherche à remplacer un caractère (par exemple 'a'), qui est situé en 2ème position, par un autre (par exemple 'b').

comment dois-je faire.

merci d'avance

spoter
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour

voila un code basique
Code:
If Mid(TextBox1.Value, 2, 1) = 'a' Then
TextBox1.Value = Left(TextBox1.Value, 1) & 'b' & Right(TextBox1.Value, Len(TextBox1.Value) - 2)
End If

Cordialement, A+
 
S

spoter

Guest
le code ne marche pas, ça me met :

' argument ou appel de procédure incorrect '

il s'agit d'un nombre dans ma textbox : ' 1,2345 '
(nombre entré grâce à une formule)

je veux remplacer la virgule par le point: ' 1.2345 '

comment faut-il faire??
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
re bonjour

Ce code fonctionne parfaitement, y compris pour les virgules.
Ta textbox s'appelle bien textbox1?
comment l'utilise tu ? dans une procédure externe ou dans le userform? si c'est dans une procédure externe, ajoute le nom du userform avant (pour tous les textbox) sous la forme Userform1.TextBox1.value. Si c'est interne, tu peux utiliser Me.TextBox1.value.
Sinon mets un exemple.

A+
 
S

spoter

Guest
je l'utilise dans un userform

voilà mon exemple :

je rentre 2 valeurs numériques, ave décimale (le point au lieu de la virgule) dans 2 textbox :

'textbox1 = 1.2345
'textbox2 = 1.4567

la textbox3 donne l'addition des 2 premières textbox :

userform1.textbox3 = val(userform1.textbox1) + val(userform1.textbox2)

j'obtiens comme résultat : ' 2,6912 '

or je souhaite avoir un point au lieu de la virgule car je veux faire d'autres opérations avec le résultat obtenu.

si je mets le code que tu m'as donné :
if Mid(userform1.textbox3.value,2,1) = ',' then
userform1.textbox3.value = left(userform1.textbox3.value,1) & '.' & right(userform1.textbox3.value,-4)
end if

cela me mets : 'argument ou appel de procédure incorrect '

comment faire ??
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Re

relis bien ton code et le mien, tu verras dans le tien un -4 au lieu de
Len(TextBox1.Value) - 2 qui devrait donner dans ton code
userform1.textbox3.value = left(userform1.textbox3.value,1) & '.' &
right(userform1.textbox3.value,Len(TextBox3.Value) - 2)

mais de toute façon, il y a mieux pour faire ce que tu veux

remplace
userform1.textbox3 = val(userform1.textbox1) + val(userform1.textbox2)

par
Me.TextBox3.Value = Replace(Val(Me.TextBox1.Value) + Val(Me.TextBox2.Value), ',', '.')

Cordialement, A+
 
S

spoter

Guest
c'est parfait !!
ça marche impeccable !

merci beaucoup

juste une petite question : comment faire ensuite pour imposer 4 chiffres après le point dans ma textbox3 ??
 
S

spoter

Guest
oui ça doit marcher mais j'ai trouvé autrement :

userform1.textbox3.value = val(userform1.textbox1.value) + userform1.textbox2.value)

userform1.textbox3.value = format(userform1.textbox3.value, '0.0000')

userform1.textbox3.value = replace(userform1.textbox3.value, ',', '.')

merci

a+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…