Convertir un Code VB6 en vbnet

Messages postés
111
Date d'inscription
mardi 10 mai 2005
Statut
Membre
Dernière intervention
23 mars 2018
- - Dernière réponse : cs_colby
Messages postés
111
Date d'inscription
mardi 10 mai 2005
Statut
Membre
Dernière intervention
23 mars 2018
- 6 juin 2011 à 08:58
Bonsoir
Soyez indulgent avec les nuls.
je suis à la recherche d'un code pour effacer un espace dans un textbox après modification ou qui reformate le texte contenu dans le texbox.
Format du textbox : texbox1.text = CInt(textbox1.text).ToString("0,0")
Donc le texte de depart par exemple est : "1 680 500"
J'effaçe le "1" et j"essai deux opération avec le nouveau chiffre.
Valider et il donne comme erreur " immpossible de convertir en integer le " 680 500". Donc le vide avant pose problème. Il faut "680 500" pour être valide. Comment l'effacer juste avant l'operation.
"Trim" ne marche pas.
Voila j'ai trouvé quelque chose qui peut faire l'affaire en l'adaptant mais il est en VB6. Aidez-moi à le traduire; C'est sur cette page:
http://www.codes-sources.com/code.aspx?ID=35535

Merci
Colby
Afficher la suite 

7 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
Salut

Trim supprime les espaces devant et derrière, mais pas ceux à l'intérieur.
En l'occurrence, c'est l'espace central qui pose problème.
Un simple Replace suffit :
TextBox1.Text.Replace(" ", "")  ' Remplace les espaces par ... rien
Ensuite, ce sera convertible en Integer

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
Ah bah non, ça marcherait quand même :
CInt("123 456") renvoie bien le chiffre.
Par contre, .ToString qui suit n'est pas autorisé
Commenter la réponse de cs_Jack
Messages postés
95
Date d'inscription
vendredi 7 février 2003
Statut
Membre
Dernière intervention
28 novembre 2017
0
Merci
salut,

regardes, dans l'espaces de nom Microsoft.VisualBasic.String, les fonctions suivantes :
- Replace
- Right ou Mid


bonne continuation, alKa
Commenter la réponse de AlKatou
Messages postés
136
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
22 mars 2014
2
0
Merci
bonjour,
comme il a déjà dit jack, replace elimine les espaces soit string ou integer.


Me.TextBox1.Text = Replace(TextBox1.Text, " ", "")

bon courage
Commenter la réponse de germany1970
Messages postés
111
Date d'inscription
mardi 10 mai 2005
Statut
Membre
Dernière intervention
23 mars 2018
0
Merci
Bonsoir
Merci pour la sollicitude mais la fonction "Replace" ne marche pas aussi.
Voila
faites deux texbox
txt1.text = "1 650 000"
txt2.text= txt1.text
vous modifier le premier en effaçant le "1". vous aurez
txt1.text " 650 000" donc txt2.text " 650 000"
si vous faites: txt1.text = Replace(txt1.text, " ", "") vous n'aviez rien
si vous faites: txt2.text = replace(text2.text, " ", "") rien non plus
j'ai essayé "Trim" avant "Replace" cela est négatif.
j'ai alors pensé au lieu de formater le texte de départ par la conversion en integer : CInt(txt1.text).ToString("0,0") je fais simplement :
txt1.Text = Format(txt1.Text, "#,##"). Mais ça refuse toujours de marcher.
Merci
Colby
Commenter la réponse de cs_colby
0
Merci
Bonsoir,
Essaye donc avec TryParse.
Dans l'exemple ci-dessous, si TryParse n'a pas échoué, resultat (ByRef) contiendra un integer exploitable pour d'éventuels calculs.
Dim resultat As Integer
If Integer.TryParse(txt1.Text.Replace(" ", ""), resultat) Then
    'exploiter resultat ici ...
    txt1.Text = String.Format("{0:### ### ###}", resultat)
    '... ou ici
End If
Commenter la réponse de Utilisateur anonyme
Messages postés
111
Date d'inscription
mardi 10 mai 2005
Statut
Membre
Dernière intervention
23 mars 2018
0
Merci
Bonjour
ça ne marche pas.
Merci quand même.
Colby
Commenter la réponse de cs_colby