Bonjour à tout le monde, étant débutant en VBA, je suyis en train de créer mon premier fichier avec lien vers excel.
Dans un textbox, je demande de renseigner la date, différents tests sont faits pour vérifier que c'est bien une date, ainsi que pour adapter le format au transfert vers excel.
J'ai ajouté pour plus de souplesse, une mise en place de "/" et de l'année pour augmenter la rapidité de saisie.
Le problème se pose quand je saisi une date farfelue ex:"35/12/2011", une erreur 13 d'incompatibilité apparait sur le code ci dessous, pouvez vous m'aider svp? Merci d'avance.
'GESTION DATE
Private Sub TextBox5_Change()
Dim dDate As Date
'VERIFICATION CARACTERE NUMERIQUE
If Not IsNumeric(Right(TextBox5, 1)) And TextBox5 <> "" And (Right(TextBox5, 1)) <> "/" Then
MsgBox "Le caractere saisi n'est pas valide"
TextBox5 = Left(TextBox5, Len(TextBox5) - 1)
End If
'AJOUT / AUTOMATIQUE
If Len(TextBox5) = 2 Then TextBox5 = TextBox5 & "/"
If Len(TextBox5) = 5 Then TextBox5 = TextBox5 & "/" & Year(Date)
If (Right(TextBox5, 1)) = "/" Then
Exit Sub
End If
'VERIFICATION ET FORCAGE FORMAT DATE POUR TRANSFERT EXCEL
If Len(TextBox5) = 10 Then
If IsDate(TextBox5) Then TextBox6.SetFocus Else MsgBox "Ceci n'est pas une date correcte"
If IsDate(TextBox5) Then TextBox6.SetFocus Else TextBox6 = ""
If Mid(TextBox5.Value, 4, 2) > 12 Then
TextBox5.Value = vbNullString
TextBox5.SetFocus
Exit Sub
End If
dDate = DateSerial(Year(Date), Month(Date), Day(Date))
TextBox5.Value = Format(TextBox5.Value, "dd/mm/yyyy")
dDate = TextBox5.Value
End If
End Sub
Dans un textbox, je demande de renseigner la date, différents tests sont faits pour vérifier que c'est bien une date, ainsi que pour adapter le format au transfert vers excel.
J'ai ajouté pour plus de souplesse, une mise en place de "/" et de l'année pour augmenter la rapidité de saisie.
Le problème se pose quand je saisi une date farfelue ex:"35/12/2011", une erreur 13 d'incompatibilité apparait sur le code ci dessous, pouvez vous m'aider svp? Merci d'avance.
'GESTION DATE
Private Sub TextBox5_Change()
Dim dDate As Date
'VERIFICATION CARACTERE NUMERIQUE
If Not IsNumeric(Right(TextBox5, 1)) And TextBox5 <> "" And (Right(TextBox5, 1)) <> "/" Then
MsgBox "Le caractere saisi n'est pas valide"
TextBox5 = Left(TextBox5, Len(TextBox5) - 1)
End If
'AJOUT / AUTOMATIQUE
If Len(TextBox5) = 2 Then TextBox5 = TextBox5 & "/"
If Len(TextBox5) = 5 Then TextBox5 = TextBox5 & "/" & Year(Date)
If (Right(TextBox5, 1)) = "/" Then
Exit Sub
End If
'VERIFICATION ET FORCAGE FORMAT DATE POUR TRANSFERT EXCEL
If Len(TextBox5) = 10 Then
If IsDate(TextBox5) Then TextBox6.SetFocus Else MsgBox "Ceci n'est pas une date correcte"
If IsDate(TextBox5) Then TextBox6.SetFocus Else TextBox6 = ""
If Mid(TextBox5.Value, 4, 2) > 12 Then
TextBox5.Value = vbNullString
TextBox5.SetFocus
Exit Sub
End If
dDate = DateSerial(Year(Date), Month(Date), Day(Date))
TextBox5.Value = Format(TextBox5.Value, "dd/mm/yyyy")
dDate = TextBox5.Value
End If
End Sub
Dernière édition: