Userform et textbox

Tuline Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai créé un userform où l'utilisateur doit entrer deux dates, une de début et une de fin
Je n'arrive pas à récupérer ces valeurs comme il se doit.

Voilà comment j'ai codé l'exécution :



Private Sub Simulation_Click()

Dim dte1 As Variant
Dim dte2 As Variant

dte1 = TextBox1.Value
dte2 = TextBox2.Value

If dte1 = "" Or dte2 = "" Then
MsgBox "There is no begin or end date. Write a proper date xx/xx/201x"
Exit Sub
ElseIf Not IsDate(dte1) Or Not IsDate(dte2) Then
MsgBox "The date is not valid, it must comply with format dd/mm/201x"
Exit Sub
ElseIf dte1 < Workbooks("Paul Document").Worksheets("Weather datas every hour").Cells(3,"C").Value Or dte2 < Workbooks("Paul Document").Worksheets("Weather datas every hour").Cells(3,"C").Value Then
MsgBox "One of the dates is too old for the document. Select a date after 01/01/2010"
Exit Sub
ElseIf dte1 > dte2 Then
MsgBox "The begin date should predate the end date"
Exit Sub
Else: MsgBox "ok"

End If


Quand l'un des champs est vide, il me renvoie bien le premier msg.
Quand la date 1 est plus grand que la 2, ca fonctionne aussi.
Quand ce n'est pas du format xx/xx/xxxx, le msgbox fonctionne également.

Mais quand j'entre date1 = 01/01/1989 et date2 = 02/02/2013
il me renvoie ok alors que Worksheets("Weather datas every hour").Cells(3,"C").Value = 08/11/2012

Auriez vous une idée svp ?

Cette macro fonctionne très bien sans userform, lorsque les dates sont entrées dans des cases du tableau excel, donc je ne comprends pas.

Merci d'avance
Tuline

1 réponse

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Private Sub Simulation_Click()

Dim dte1 As Variant
Dim dte2 As Variant

dte1 = TextBox1.Value 'chaine de caracteres
dte2 = TextBox2.Value 'chaine de caracteres

Date_Mini = Workbooks("Paul Document").Worksheets("Weather datas every hour").Cells(3, "C")

If dte1 = "" Or dte2 = "" Then
MsgBox "There is no begin or end date. Write a proper date xx/xx/201x"
Exit Sub
ElseIf Not IsDate(dte1) Or Not IsDate(dte2) Then
MsgBox "The date is not valid, it must comply with format dd/mm/201x"
Exit Sub
ElseIf CDate(dte1) < Date_Mini Or CDate(dte2) < Date_Mini Then
MsgBox "One of the dates is too old for the document. Select a date after " & Date_Mini
Exit Sub
ElseIf dte1 > dte2 Then
MsgBox "The begin date should predate the end date"
Exit Sub
Else
MsgBox "ok"
End If
End Sub
0