bonjour,
voila j'ai recupéré des bouts de code qui fonctionnent super bien mais mon pb est que je n'arrive pas a faire accepter le chiffre "0" comme premier chiffre.
je suis pas encore tres doué en vba cela fait un mois que je pedale (mal) mais j'espère bien faire des progres.

a chaque entrée du style 0612121212 il y a la msgbox "saisie non valide"

un petit coup de main me serait agréable merci

voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub TextBox4TelFixe_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim strpassa As String
   strpassa = TextBox4TelFixe.Value
   If ChainePasOK1(strpassa) = True Then Cancel = True: TextBox4TelFixe.Value = "": Beep: MsgBox "Saisie non valide !"
End Sub
 
Private Function ChainePasOK1(strpassa As String) As Boolean
   If strpassa = "" Then Exit Function
   If Len(Replace(strpassa, ".", "")) <> Len(strpassa) Then ChainePasOK1 = True: Exit Function
   If Len(strpassa) = 1 And InStr("1234567890", strpassa) = 0 Then ChainePasOK1 = True: Exit Function
   strpassa = Replace(strpassa, ",", ".")
   If Len(CStr(Val(strpassa))) <> Len(strpassa) Then ChainePasOK1 = True
End Function
 
Private Sub TextBox4TelFixe_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
   If InStr("1234567890,-", Chr(KeyAscii)) = 0 Then
      KeyAscii = 0: Beep
   End If
End Sub