![]() |
Dates In UserForm Textboxes
What did you expect from day(0)?
How about a test: msgbox day(0) & vblf & format(0,"mmmm dd, yyyy") How about something like: Option Explicit Private Sub CommandButton1_Click() Unload Me End Sub Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) Dim StartDate As Date Dim EndDate As Date Me.Label1.Caption = "" If IsDate(Me.TextBox1.Text) = True Then StartDate = CDate(Me.TextBox1.Text) EndDate = DateSerial(Year(StartDate), _ Month(StartDate) + 12, Day(StartDate)) Me.TextBox2.Text = Format(EndDate, "dd/mm/yyyy") Else Me.Label1.Caption = "Please Enter a date!" Cancel = True End If End Sub Private Sub UserForm_Initialize() With Me.CommandButton1 .Cancel = True .TakeFocusOnClick = False .Caption = "Cancel" End With Me.Label1.Caption = "" End Sub ps. If you want to remove the possibility of using the wrong date (01/02/03 is ambiguous), maybe using a calendar control to prompt the user would be better: See Ron de Bruin's site for more info: http://www.rondebruin.nl/calendar.htm johnboy wrote: Hi all, I have a userform with two textboxes - one to enter a start date. The other shows the calculated end date from textbox1 change event. However, my code is not producing the required result (entered date + 12 months) I would be grateful if some kind person could assist and correct the problem please. Private Sub HolStartTextBox_Change() Dim startdate As Date, enddate As Date On Error Resume Next startdate = CDate(HolStartTextBox.Text) enddate = Year(startdate) & "/" & Month(startdate) + 12 & "/" & Day(0) If IsDate(startdate) = True Then HolEndTextBox.Text = Format(enddate, "dd/mm/yyyy") End If On Error GoTo 0 End Sub -- Jon -- Dave Peterson |
Dates In UserForm Textboxes
Dave,
I expected Day(0) to give me last day of the month. Anyway - thankyou for your kind suggestion but I have now resolved problem with joel's earlier posting. -- JB "Dave Peterson" wrote: What did you expect from day(0)? How about a test: msgbox day(0) & vblf & format(0,"mmmm dd, yyyy") How about something like: Option Explicit Private Sub CommandButton1_Click() Unload Me End Sub Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) Dim StartDate As Date Dim EndDate As Date Me.Label1.Caption = "" If IsDate(Me.TextBox1.Text) = True Then StartDate = CDate(Me.TextBox1.Text) EndDate = DateSerial(Year(StartDate), _ Month(StartDate) + 12, Day(StartDate)) Me.TextBox2.Text = Format(EndDate, "dd/mm/yyyy") Else Me.Label1.Caption = "Please Enter a date!" Cancel = True End If End Sub Private Sub UserForm_Initialize() With Me.CommandButton1 .Cancel = True .TakeFocusOnClick = False .Caption = "Cancel" End With Me.Label1.Caption = "" End Sub ps. If you want to remove the possibility of using the wrong date (01/02/03 is ambiguous), maybe using a calendar control to prompt the user would be better: See Ron de Bruin's site for more info: http://www.rondebruin.nl/calendar.htm johnboy wrote: Hi all, I have a userform with two textboxes - one to enter a start date. The other shows the calculated end date from textbox1 change event. However, my code is not producing the required result (entered date + 12 months) I would be grateful if some kind person could assist and correct the problem please. Private Sub HolStartTextBox_Change() Dim startdate As Date, enddate As Date On Error Resume Next startdate = CDate(HolStartTextBox.Text) enddate = Year(startdate) & "/" & Month(startdate) + 12 & "/" & Day(0) If IsDate(startdate) = True Then HolEndTextBox.Text = Format(enddate, "dd/mm/yyyy") End If On Error GoTo 0 End Sub -- Jon -- Dave Peterson |
All times are GMT +1. The time now is 04:20 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com