Controle format dans TextBox

Le
JPMonnier
Bonjour,
Excel 2000
Je bloque sur les contrôles de TextBox, je souhaiterais avec la Private Sub
suivante

Private Sub TTelF_Exit(ByVal Cancel As MSForms.ReturnBoolean)

n'autoriser qu'une valeur numérique de 10 chiffres
puis suivi d'un Setfocus si le TextBox ne rempli pas cette condition
Merci d'avance

--
Cordialement
jpmonnier-nospam@neuf.fr
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Caetera
Le #20022961
"JPMonnier"
Je bloque sur les contrôles de TextBox, je souhaiterais avec la Private Sub
n'autoriser qu'une valeur numérique de 10 chiffres



Un test sur la valeur numerique ET un test sur la longueur de la chaine :
if isnumeric(...) and len(...) then....

Etc
JPMonnier
Le #20023191
Bonjour Caetera
Merci c'est Ok, mais mon SetFocus ne fonctionne pas, il me renvoie bien mon
Msgbox de mauvaise saisie
voici mon test sans contrôler la longueur

Private Sub TTelF_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsNumeric(TTelF.Value) = False Then
MsgBox "Num obligatoire"
TTelF.SetFocus
Exit Sub
End If
End Sub
Merci
--
Cordialement

"Caetera" news:%
"JPMonnier"
Je bloque sur les contrôles de TextBox, je souhaiterais avec la Private
Sub n'autoriser qu'une valeur numérique de 10 chiffres



Un test sur la valeur numerique ET un test sur la longueur de la chaine :
if isnumeric(...) and len(...) then....

Etc



garnote
Le #20023351
Bonjour,

Alors, peut-être ceci :
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(TextBox2.Value) Or Len(TextBox2.Value) <> 10 Then
Cancel = True
TextBox2.SetFocus
End If
End Sub

Serge


"JPMonnier"
Bonjour Caetera
Merci c'est Ok, mais mon SetFocus ne fonctionne pas, il me renvoie bien
mon Msgbox de mauvaise saisie
voici mon test sans contrôler la longueur

Private Sub TTelF_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsNumeric(TTelF.Value) = False Then
MsgBox "Num obligatoire"
TTelF.SetFocus
Exit Sub
End If
End Sub
Merci
--
Cordialement

"Caetera" news:%
"JPMonnier"
Je bloque sur les contrôles de TextBox, je souhaiterais avec la Private
Sub n'autoriser qu'une valeur numérique de 10 chiffres



Un test sur la valeur numerique ET un test sur la longueur de la chaine :
if isnumeric(...) and len(...) then....

Etc






JPMonnier
Le #20023341
Bonjour Garnote,
Merci
Le Cancel = True inhibe le SetFocus
Je ne passe plus au TB suivant, mais je suis obligé de resélectionner mon TB
pour reprendre la main
??

--
Cordialement

"garnote" news:%
Bonjour,

Alors, peut-être ceci :
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(TextBox2.Value) Or Len(TextBox2.Value) <> 10 Then
Cancel = True
TextBox2.SetFocus
End If
End Sub

Serge


"JPMonnier"
Bonjour Caetera
Merci c'est Ok, mais mon SetFocus ne fonctionne pas, il me renvoie bien
mon Msgbox de mauvaise saisie
voici mon test sans contrôler la longueur

Private Sub TTelF_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsNumeric(TTelF.Value) = False Then
MsgBox "Num obligatoire"
TTelF.SetFocus
Exit Sub
End If
End Sub
Merci
--
Cordialement

"Caetera" news:%
"JPMonnier"
Je bloque sur les contrôles de TextBox, je souhaiterais avec la Private
Sub n'autoriser qu'une valeur numérique de 10 chiffres



Un test sur la valeur numerique ET un test sur la longueur de la chaine
:
if isnumeric(...) and len(...) then....

Etc










garnote
Le #20027211
Bonjour,

Avec un UserForm contenant trois TextBox
(TextBox1, TextBox2 et TextBox3) et cette macro :
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
v = TextBox1.Value
For i = 1 To Len(v)
If IsNumeric(Mid(v, i, 1)) Then k = k + 1
Next i
If k <> 10 Then
MsgBox "Nombre positif de 10 chiffres exigé."
Cancel = True
TextBox1.SetFocus
End If
End Sub
je ne peux pas sortir du TextBox1 tant qu'il ne contient pas
un nombre positif de 10 chiffres.
S'il contient un tel nombre, je peux alors sélectionner un autre
TextBox et si je tape sur "Entrée", le focus se met sur TextBox2.
Est-ce bien cela que tu veux ?
Inconvénient : Quand je ferme le UserForm, le message apparaît.

Serge




"JPMonnier"
Bonjour Garnote,
Merci
Le Cancel = True inhibe le SetFocus
Je ne passe plus au TB suivant, mais je suis obligé de resélectionner mon
TB pour reprendre la main
??

--
Cordialement

"garnote" news:%
Bonjour,

Alors, peut-être ceci :
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(TextBox2.Value) Or Len(TextBox2.Value) <> 10 Then
Cancel = True
TextBox2.SetFocus
End If
End Sub

Serge


"JPMonnier"
Bonjour Caetera
Merci c'est Ok, mais mon SetFocus ne fonctionne pas, il me renvoie bien
mon Msgbox de mauvaise saisie
voici mon test sans contrôler la longueur

Private Sub TTelF_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsNumeric(TTelF.Value) = False Then
MsgBox "Num obligatoire"
TTelF.SetFocus
Exit Sub
End If
End Sub
Merci
--
Cordialement

"Caetera" news:%
"JPMonnier" news:
Je bloque sur les contrôles de TextBox, je souhaiterais avec la
Private Sub n'autoriser qu'une valeur numérique de 10 chiffres



Un test sur la valeur numerique ET un test sur la longueur de la chaine
:
if isnumeric(...) and len(...) then....

Etc













JPMonnier
Le #20024551
Merci Garnote
C'est bien ce que je veux

--
Cordialement


"garnote" news:%
Bonjour,

Avec un UserForm contenant trois TextBox
(TextBox1, TextBox2 et TextBox3) et cette macro :
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
v = TextBox1.Value
For i = 1 To Len(v)
If IsNumeric(Mid(v, i, 1)) Then k = k + 1
Next i
If k <> 10 Then
MsgBox "10 chiffres exigés."
Cancel = True
TextBox1.SetFocus
End If
End Sub
je ne peux pas sortir du TextBox1 tant qu'il ne contient pas
un nombre positif de 10 chiffres.
S'il contient un tel nombre, je peux alors sélectionner un autre
TextBox et si je tape sur "Entrée", le focus se met sur TextBox2.
Est-ce bien cela que tu veux ?
Inconvénient : Quand je ferme le UserForm, le message apparaît.

Serge




"JPMonnier"
Bonjour Garnote,
Merci
Le Cancel = True inhibe le SetFocus
Je ne passe plus au TB suivant, mais je suis obligé de resélectionner mon
TB pour reprendre la main
??

--
Cordialement

"garnote" news:%
Bonjour,

Alors, peut-être ceci :
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(TextBox2.Value) Or Len(TextBox2.Value) <> 10 Then
Cancel = True
TextBox2.SetFocus
End If
End Sub

Serge


"JPMonnier"
Bonjour Caetera
Merci c'est Ok, mais mon SetFocus ne fonctionne pas, il me renvoie bien
mon Msgbox de mauvaise saisie
voici mon test sans contrôler la longueur

Private Sub TTelF_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsNumeric(TTelF.Value) = False Then
MsgBox "Num obligatoire"
TTelF.SetFocus
Exit Sub
End If
End Sub
Merci
--
Cordialement

"Caetera" news:%
"JPMonnier" news:
Je bloque sur les contrôles de TextBox, je souhaiterais avec la
Private Sub n'autoriser qu'une valeur numérique de 10 chiffres



Un test sur la valeur numerique ET un test sur la longueur de la
chaine :
if isnumeric(...) and len(...) then....

Etc

















MichDenis
Le #20023601
Bonjour,

Il y a ceci :
'-------------------------------------
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

Dim X As Variant
X = Me.TextBox1
If Len(X) = 10 Then
For a = 1 To Len(X)
If Not IsNumeric(Mid(X, a, 1)) Then
Cancel = True
Me.TextBox1.SetFocus
Me.TextBox1.SelStart = a - 1
Me.TextBox1.SelLength = 1
MsgBox "Ceci n'est pas un chiffre"
Exit Sub
End If
Next
Else
MsgBox "Le textbox doit contenir 10 chiffres."
Cancel = True
Me.TextBox1.SetFocus
End If
End Sub
'-------------------------------------

"JPMonnier"
Bonjour,
Excel 2000
Je bloque sur les contrôles de TextBox, je souhaiterais avec la Private Sub
suivante

Private Sub TTelF_Exit(ByVal Cancel As MSForms.ReturnBoolean)

n'autoriser qu'une valeur numérique de 10 chiffres
puis suivi d'un Setfocus si le TextBox ne rempli pas cette condition
Merci d'avance

--
Cordialement

JPMonnier
Le #20023761
Bonjour MichelDenis et merci,
Le contrôle fonctionne bien mais le SetFocus n'est pas actif dans mon
TextBox, je suis obligé de le sélectionner avec la souris !!

--
Cordialement


"MichDenis" news:%
Bonjour,

Il y a ceci :
'-------------------------------------
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

Dim X As Variant
X = Me.TextBox1
If Len(X) = 10 Then
For a = 1 To Len(X)
If Not IsNumeric(Mid(X, a, 1)) Then
Cancel = True
Me.TextBox1.SetFocus
Me.TextBox1.SelStart = a - 1
Me.TextBox1.SelLength = 1
MsgBox "Ceci n'est pas un chiffre"
Exit Sub
End If
Next
Else
MsgBox "Le textbox doit contenir 10 chiffres."
Cancel = True
Me.TextBox1.SetFocus
End If
End Sub
'-------------------------------------

"JPMonnier" de discussion :

Bonjour,
Excel 2000
Je bloque sur les contrôles de TextBox, je souhaiterais avec la Private
Sub
suivante

Private Sub TTelF_Exit(ByVal Cancel As MSForms.ReturnBoolean)

n'autoriser qu'une valeur numérique de 10 chiffres
puis suivi d'un Setfocus si le TextBox ne rempli pas cette condition
Merci d'avance

--
Cordialement




MichDenis
Le #20023881
L'événement "Before_Update" pour qu'elle s'enclenche, le textbox doit
avoir reçu un caractère quelconque ! si l'usager n'a jamais
rien saisi dans le textbox, l'événement ne va pas se déclencher
si l'usager décide de cliquer dans un autre textbox.

Ajoute ceci dans ton formulaire, cela forcera l'usager à répondre
obligatoirement aux exigences de ton textbox dès qu'il aura mis
le "pied" dedans.
'---------------------
Private Sub TextBox1_Enter()
Me.TextBox1 = " ": Me.TextBox1 = ""
End Sub
'---------------------


"JPMonnier" Oe$
Bonjour MichelDenis et merci,
Le contrôle fonctionne bien mais le SetFocus n'est pas actif dans mon
TextBox, je suis obligé de le sélectionner avec la souris !!

--
Cordialement


"MichDenis" news:%
Bonjour,

Il y a ceci :
'-------------------------------------
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

Dim X As Variant
X = Me.TextBox1
If Len(X) = 10 Then
For a = 1 To Len(X)
If Not IsNumeric(Mid(X, a, 1)) Then
Cancel = True
Me.TextBox1.SetFocus
Me.TextBox1.SelStart = a - 1
Me.TextBox1.SelLength = 1
MsgBox "Ceci n'est pas un chiffre"
Exit Sub
End If
Next
Else
MsgBox "Le textbox doit contenir 10 chiffres."
Cancel = True
Me.TextBox1.SetFocus
End If
End Sub
'-------------------------------------

"JPMonnier" de discussion :

Bonjour,
Excel 2000
Je bloque sur les contrôles de TextBox, je souhaiterais avec la Private
Sub
suivante

Private Sub TTelF_Exit(ByVal Cancel As MSForms.ReturnBoolean)

n'autoriser qu'une valeur numérique de 10 chiffres
puis suivi d'un Setfocus si le TextBox ne rempli pas cette condition
Merci d'avance

--
Cordialement




JPMonnier
Le #20023871
Merci beaucoup, c'est le top
--
Cordialement

"MichDenis" news:
L'événement "Before_Update" pour qu'elle s'enclenche, le textbox doit
avoir reçu un caractère quelconque ! si l'usager n'a jamais
rien saisi dans le textbox, l'événement ne va pas se déclencher
si l'usager décide de cliquer dans un autre textbox.

Ajoute ceci dans ton formulaire, cela forcera l'usager à répondre
obligatoirement aux exigences de ton textbox dès qu'il aura mis
le "pied" dedans.
'---------------------
Private Sub TextBox1_Enter()
Me.TextBox1 = " ": Me.TextBox1 = ""
End Sub
'---------------------


"JPMonnier" de discussion :
Oe$
Bonjour MichelDenis et merci,
Le contrôle fonctionne bien mais le SetFocus n'est pas actif dans mon
TextBox, je suis obligé de le sélectionner avec la souris !!

--
Cordialement


"MichDenis" news:%
Bonjour,

Il y a ceci :
'-------------------------------------
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

Dim X As Variant
X = Me.TextBox1
If Len(X) = 10 Then
For a = 1 To Len(X)
If Not IsNumeric(Mid(X, a, 1)) Then
Cancel = True
Me.TextBox1.SetFocus
Me.TextBox1.SelStart = a - 1
Me.TextBox1.SelLength = 1
MsgBox "Ceci n'est pas un chiffre"
Exit Sub
End If
Next
Else
MsgBox "Le textbox doit contenir 10 chiffres."
Cancel = True
Me.TextBox1.SetFocus
End If
End Sub
'-------------------------------------

"JPMonnier" de discussion :

Bonjour,
Excel 2000
Je bloque sur les contrôles de TextBox, je souhaiterais avec la Private
Sub
suivante

Private Sub TTelF_Exit(ByVal Cancel As MSForms.ReturnBoolean)

n'autoriser qu'une valeur numérique de 10 chiffres
puis suivi d'un Setfocus si le TextBox ne rempli pas cette condition
Merci d'avance

--
Cordialement







Publicité
Poster une réponse
Anonyme