Recuperer valeur d'un textbox [Résolu]

Messages postés
50
Date d'inscription
samedi 2 juillet 2005
Dernière intervention
2 mai 2013
- - Dernière réponse : Claiyah
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Dernière intervention
20 avril 2010
- 7 oct. 2009 à 17:17
bonjour,

dans un textbox j'ai ce type de données :
AA1
BB12
ABC123
A123

je voudrais pouvoir séparer la partie text de la partie chiffre.

merci
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
3
Merci
.... VB.NET !!

Dim iPos As Integer, j As Integer
For j = 0 To text1.text.Length - 1
If Char.IsDigit(text1.text(j)) Then
iPos = j
Exit For
End If
Next j

' affichage résultat, pour chaque ligne :
If j = 0 Then
MessageBox.Show("'" & text1.text & "' ne contient aucun caractère numérique")
Else
text2.text = text1.text.Substring(0, iPos)
text3.text = text1.text.Substring(iPos))
End If

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de PCPT
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
0
Merci
salut,

il faut parcourir le tableau de tes données, et marquer le caractère qui est un numérique :



Private Sub Form_Load()
Dim text As String
text = "AA1" & vbCrLf & _
"BB12" & vbCrLf & _
"ABC123" & vbCrLf & _
"A123"

' tableau pour chaque ligne
Dim sLines() As String, i As Integer, iPos As Integer, j As Integer
sLines = Split(text, vbCrLf)

' boucle
For i = LBound(sLines) To UBound(sLines)
' tant que ce n'est pas un chiffre, on lit le caractère suivant
iPos = 0
For j = 1 To Len(sLines(i))
If IsNumeric(Mid$(sLines(i), j, 1)) Then
iPos = j
Exit For
End If
Next j

' affichage résultat, pour chaque ligne :
If j = 0 Then
MsgBox "'" & sLines(i) & "' ne contient aucun caractère numérique"
Else
MsgBox "'" & sLines(i) & "' : " & vbCrLf & _
Left$(sLines(i), iPos - 1) & vbCrLf & _
Mid$(sLines(i), iPos)
End If
Next i

Unload Me
End Sub


++
[hr]
Commenter la réponse de PCPT
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
0
Merci
je viens de me rendre compte que tu étais en VB.NET :



Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

' tableau pour chaque ligne
Dim sLines() As String = {"AA1", "BB12", "ABC123", "A123"}

Dim i As Integer, iPos As Integer, j As Integer, c As Char

' boucle
For i = sLines.GetLowerBound(0) To sLines.GetUpperBound(0)
' tant que ce n'est pas un chiffre, on lit le caractère suivant
iPos = 0
For j = 0 To sLines(i).Length - 1
If Char.IsDigit(sLines(i)(j)) Then
iPos = j
Exit For
End If
Next j

' affichage résultat, pour chaque ligne :
If j = 0 Then
MessageBox.Show("'" & sLines(i) & "' ne contient aucun caractère numérique")
Else
MessageBox.Show(String.Format("'{1}' : {0}{2}{0}{3}", _
Environment.NewLine, _
sLines(i), _
sLines(i).Substring(0, iPos), _
sLines(i).Substring(iPos)))
End If
Next i


End Sub


(à part la syntaxe tu remarqueras que le fonctionnement est évidemment strictement identique)

++
Commenter la réponse de PCPT
Messages postés
50
Date d'inscription
samedi 2 juillet 2005
Dernière intervention
2 mai 2013
0
Merci
merci

je me suis mal exprimé sur ma question

en fait j'ai qu'une de ces valeurs d'ecrite dans le textbox.

AA1 ou ABC123 ou A123 etc......

mais les chiffres et les lettres sont aléatoires.

merci
Commenter la réponse de astouz2000k
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Dernière intervention
20 avril 2010
0
Merci
les séparer comment ?
explique un peut ce que tu veut faire
Commenter la réponse de Claiyah
Messages postés
50
Date d'inscription
samedi 2 juillet 2005
Dernière intervention
2 mai 2013
0
Merci
ok,
en fais j'ai une valeur dans une textbox composé de chiffres et de lettres.

je souhaite séparer les chiffres des lettres.
par exemple :
ex 1:
textbox 1 = ab199
ce qui donne
textbox 2 = ab
textbox 3 = 199
ex 2 :
textbox 1 : zze1
ce qui donne
textbox 2 = zze
textbox 3 = 1

merci
Commenter la réponse de astouz2000k
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
0
Merci
.... "qui peut le plus peut le moins" !!!!

le code indiqué "en boucle" fonctionne d'autant plus "sans boucle" !!!

[hr]
Commenter la réponse de PCPT
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Dernière intervention
20 avril 2010
0
Merci
à mettre dans un bouton si tu veux :

Dim i As Long, car As String
For i = 1 To Len(Text1.Text)
car = Mid(Text1.Text, i, 1)
If IsNumeric(car) Then
Text3.SelStart = Len(Text3.Text)
Text3.SelText = car
Else
Text2.SelStart = Len(Text2.Text)
Text2.SelText = car
End If
Next


No comment
Commenter la réponse de Claiyah
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Dernière intervention
20 avril 2010
0
Merci
ah j'ai pas vue désolé


No comment
Commenter la réponse de Claiyah

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.