Papynou
XLDnaute Occasionnel
Bonjour le forum,
Je souhaite formater une TextBox, destinée à recevoir une date, pour qu’à la saisie cette dernière s‘affiche suivant le format jj/mm/aa.
J’ai essayé les trois codes ci-dessous :
N°1
Valeur = Len(Me.TextBox1)
If Valeur = 2 or Valeur = 5 Then Me.TextBox1 = Me.TextBox1 & "/"
N°2
Private Sub Tbcompte_Change()
Dim Numb As String
Numb = Tbcompte
Select Case Len(Numb)
Case 3, 6
Numb = Numb & " / "
End Select
Tbcompte = Numb
End Sub
N°3
Public fl As Boolean
Private Sub TextBox1_Change()
Dim i As Integer
With Me.TextBox1
i = Len(.Value)
If fl Then fl = False
If i = 2 Then
.Value = .Value & "/"
End If
If i = 5 Then
.Value = .Value & "/"
End If
End With
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii <> Asc(" ") And KeyAscii > 47 And KeyAscii < 58 Then
fl = True
Else
KeyAscii = 0
End If
End Sub
Je n’en n’ai pas encore trouvé d’autres en fouillant dans les archives, mais ça viendra surement 😀
Mon problème est le suivant. Peu importe le code employé, une fois la saisie effectuée si l’on s’aperçoit d’une erreur et que l’on veut la corriger, le retour en arrière est impossible car le point d’insertion bloque sur le « / » rajouté. La seule solution est de sélectionner l’ensemble de la saisie et d’utiliser la touche retour. 😕
Je ne trouve pas ça pratique du tout aussi si quelqu’un a une explication et pourquoi pas, une solution, je suis preneur.
Je souhaite formater une TextBox, destinée à recevoir une date, pour qu’à la saisie cette dernière s‘affiche suivant le format jj/mm/aa.
J’ai essayé les trois codes ci-dessous :
N°1
Valeur = Len(Me.TextBox1)
If Valeur = 2 or Valeur = 5 Then Me.TextBox1 = Me.TextBox1 & "/"
N°2
Private Sub Tbcompte_Change()
Dim Numb As String
Numb = Tbcompte
Select Case Len(Numb)
Case 3, 6
Numb = Numb & " / "
End Select
Tbcompte = Numb
End Sub
N°3
Public fl As Boolean
Private Sub TextBox1_Change()
Dim i As Integer
With Me.TextBox1
i = Len(.Value)
If fl Then fl = False
If i = 2 Then
.Value = .Value & "/"
End If
If i = 5 Then
.Value = .Value & "/"
End If
End With
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii <> Asc(" ") And KeyAscii > 47 And KeyAscii < 58 Then
fl = True
Else
KeyAscii = 0
End If
End Sub
Je n’en n’ai pas encore trouvé d’autres en fouillant dans les archives, mais ça viendra surement 😀
Mon problème est le suivant. Peu importe le code employé, une fois la saisie effectuée si l’on s’aperçoit d’une erreur et que l’on veut la corriger, le retour en arrière est impossible car le point d’insertion bloque sur le « / » rajouté. La seule solution est de sélectionner l’ensemble de la saisie et d’utiliser la touche retour. 😕
Je ne trouve pas ça pratique du tout aussi si quelqu’un a une explication et pourquoi pas, une solution, je suis preneur.