- recherche ds chaine de carac

ckoo Messages postés 96 Date d'inscription jeudi 2 mai 2002 Statut Membre Dernière intervention 18 août 2004 - 30 mai 2002 à 17:18
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013 - 30 mai 2002 à 22:17
Je voudrais rechercher dans une chaine de caractère (saisie dans une textBox) si il y a des cractères autres que des chiffres.
Comment vérifier aussi que le champ saisit pour un numéro de téléphone contient bien 10 chiffre et commence par 0
Aidez moi SVP je n'ai pas d'aide sous VB je commence juste et je rame
merci d'avance....

3 réponses

fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 3
30 mai 2002 à 18:30
Déja un petit truc ;)

Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hWnd As Long, _
ByVal nIndex As Long) As Long

Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Public Const ES_NUMBER = &H2000&
Public Const GWL_STYLE = (-16)

SetWindowLong Text1.hWnd, GWL_STYLE, GetWindowLong(Text1.hWnd, GWL_STYLE) Or ES_NUMBER

Voilà une foi que tu à fait ça à ta textBox elle n'accepte que les chiffres sans que tu ne fasse rien :)

Pour le test tu fais du genre ...
Private Sub Text1_Change() If Len(Text1.Text) 10 And Left(Text1.Text, 1) "0" Then
'Ici ton numéro est valide
Else
'ici ton num est invalide
End If
End Sub

<center>http://www.lynx-asp.fr.st
WebMaster</center>
0
granddebutant Messages postés 7 Date d'inscription mardi 9 avril 2002 Statut Membre Dernière intervention 4 juillet 2002
30 mai 2002 à 18:46
Pour le numéro de téléphone, le plus simple est que tu ajoutes le composant Microsoft Masked Edit Control 6.0 (bouton droit de la souris sur la barre d'outils - Composants...).
Tu places le controle MaskEdBox1 sur ta form et tu changes la propriété Mask en 0#-##-##-##-## par exemple .
Le zéro est automatiquement placé au début.
Les # obligent à placer un chiffre.
Et la longueur de ton mask ne permet pas de rentrer plus de 9 chiffres en plus du 0.
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
30 mai 2002 à 22:17
Pour Mr FredLynx ET Mr ckoo :
Pour s'asurrer que le gars ne mettent que des chiffres et pas des lettres ya encore 1000 fois plus simple :

Tu mets cette fonction dans ton code ou tu veux :

Private Function Controle_Saisie(KeyAscii As Integer) As Integer
If KeyAscii < 48 Or KeyAscii > 57 Then
Controle_Saisie = 0
Else
Controle_Saisie = KeyAscii
End If
End Function

Puis ensuite dans l'evenement KeyPress de ta textbox tu devra avoir ca :

Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = Controle_Saisie(KeyAscii)
End Sub

Voili voilou .... ca marche tres bien et c'est surtout beaucoup plus simple

Sinon pour ce qui est de la verification de la taille de la chaine de charactere, le methode de FredLynx va tres bien...

A++
DeAtH_-_CrAsH :]
0
Rejoignez-nous