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 -
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
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
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