Recuperer valeur d'un textbox [Résolu]

Signaler
Messages postés
50
Date d'inscription
samedi 2 juillet 2005
Statut
Membre
Dernière intervention
2 mai 2013
-
Claiyah
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
-
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

9 réponses

Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
30
.... 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
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
30
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]
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
30
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)

++
Messages postés
50
Date d'inscription
samedi 2 juillet 2005
Statut
Membre
Dernière intervention
2 mai 2013

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
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010

les séparer comment ?
explique un peut ce que tu veut faire
Messages postés
50
Date d'inscription
samedi 2 juillet 2005
Statut
Membre
Dernière intervention
2 mai 2013

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
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
30
.... "qui peut le plus peut le moins" !!!!

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

[hr]
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010

à 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
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010

ah j'ai pas vue désolé


No comment