Textbox

P

Pedro

Guest
Bonjour à Tous,


J'ai créé un Userform dans lequel l'utilisateur doit saisir un numero de telephone dans un Texbox. Dans la propiété dc textbox j'ai mis la valeur de 10 au niveau de MaxLength pour empêcher de dépasser 10 caractères. Je souhaiterais savoir comment refuser la validation (OK) si l'utilisateur rentre un nombre de caractère inférieur à 10.

Merci
 
P

Pedro

Guest
Merci Arnaud

J'ai inséré If Len(TextBox1.Value) < 10 Then MsgBox "saisie incorrect" juste après ActiveCell.Offset(0, 10) = Txttel.Value. J'obtiens bien le message d'erreur si la condition n'est pas remplie mais tout de même le chiffre est inséré dans la feuille donc accepté, ce qui ne devait pas être le cas. L'opérateur de saisie devrait corriger (respecter le nombre de caractères) avant que l'enrégistrement ne soit valider.

Merci
 
A

Arnaud

Guest
effectivement c normal, il fallais adapter a ton code.
par ex :

If Len(Txttel.Value) < 10 Then
MsgBox "saisie incorrect"
else
ActiveCell.Offset(0, 10) = Txttel.Value 'écris ici le code que tu souhaite faire si la saisie est correct.
end if


si cela ne marche tjs pas, met en pière jointe ton fichier, cela sera plus simple
 
P

Pedro

Guest
Re: Textbox -Fichier Exemple

J'envoi un exemple dans ce fichier. Je recapitule mes demandes:

-1 Empêcher l'insertion dans la table d'une saisie de Telephone qui n'aura pas 10 caractères.

2- Empêcher aussi l'insertion d'un enrégistrement qui aura et le même Nom et le même Numero de Telephone qu'un autre déjà existant.
Par exemple si dans la table il existe Papi comme nom et 0495045628 comme Tel, ne plus autorisé un autre enrégistrement ayant Papi comme nom et 0495045628 comme Tel. Mais Papi et 0195688968 doit être accepté.

3- Comment formater le textbox Date (Txdatenvoi) en jj/mm/aa - Je souhaiterais que le slach (/) apparaissent dans le TextBox.


Merci for your Help!
 

Pièces jointes

  • SAISIFORM.zip
    11.7 KB · Affichages: 19
T

Tom_Tom

Guest
Bonsoir Pedro,


Pour le pb des 10 caractères, les codes du bouton OK corrigé:

Private Sub cmdOK_Click()

If Len(Txttel) < 10 Then
MsgBox "Il faut 10 caractères"
Txttel.SetFocus
Else
ActiveWorkbook.Sheets("Table").Activate
Range("A1").Select
Do
If IsEmpty(ActiveCell) = False Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
ActiveCell.Value = Txdatenvoi.Value
ActiveCell.Offset(0, 1) = Txtnomclt.Value
ActiveCell.Offset(0, 2) = Txttel.Value


Range("A1").Select
End If

End Sub


@+
 
T

Tom_Tom

Guest
Re Pedro,


Code de OK, corrigé en tenant compte de la 2ème question.


Private Sub cmdOK_Click()

If Len(Txttel) < 10 Then
MsgBox "Il faut 10 caractères"
Txttel.SetFocus
Else

Dim Cell
Dim Ligne_Fin
Ligne_Fin = Sheets("TABLE").Range("B65536").End(xlUp).Row

' Balayage pour comparer données existantes par rapport aux saisies
For Each Cell In Sheets("TABLE").Range("B2:B" & Ligne_Fin)
If Cell.Value = Txtnomclt.Value And Sheets("TABLE").Range("C" & Cell.Row).Value = Txttel.Value Then
MsgBox "Donnée déjà existante !!"
Exit Sub
End If
Next Cell

ActiveWorkbook.Sheets("Table").Activate
Range("A1").Select
Do
If IsEmpty(ActiveCell) = False Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
ActiveCell.Value = Txdatenvoi.Value
ActiveCell.Offset(0, 1) = Txtnomclt.Value
ActiveCell.Offset(0, 2) = Txttel.Value
Range("A1").Select

End If

End Sub


Nota: Je suis débutant en VBA... J'espère que ce que j'essaie de faire ne fait trop grincer les dents des pro
 

Discussions similaires

Réponses
12
Affichages
576

Statistiques des forums

Discussions
312 558
Messages
2 089 596
Membres
104 220
dernier inscrit
Fredericchau