I tried to putting an Application.EnableEvents = False and an
Applicatoin.EnableEvents = True before and after the code in the Change event
but that didn't make any difference. It almost acts as if its a timing
issue. Because if I click on the updown button within 5 or 10 of the hour
change (for example 4:05 and decreasing to 3:xx, the hour changes. But if I
continue holding down the updown button and want the minutes go down to where
the hour should change to 2:xx, the hour doesn't change, and the minutes
value continues to loop.
"Nigel" wrote:
> I wonder if you are re-triggering the change event when your function
> changes the DTPicker values? Turn off the events before and turn them on
> again after the update.
>
> HTH
>
> --
>
> Regards,
> Nigel
> (E-Mail Removed)
>
>
>
> "sarndt" <(E-Mail Removed)> wrote in message
> news:30370A26-DE8F-4CA0-AE9D-(E-Mail Removed)...
> >I have datetimepicker controls on my worksheet. They are set to display
> >time
> > in hh:mm tt format. I've coded the change events to add/subtract an hour
> > based on going from hh:59 to hh:60 and hh:00 to hh:59. This works fine if
> > you click on the updown arrow in the spinner portion of the control. But
> > it
> > doesn't work if you hold down the mouse key. What happens in this case is
> > the minutes go/up down, but the hour doesn't change. My code so far is as
> > follows:
> >
> > Public Time As Date
> >
> > Private Sub DTPicker1_SD_GotFocus()
> >
> > Time = DTPicker1_SD.Value
> >
> > End Sub
> >
> > Private Sub DTPicker1_SD_Change()
> >
> > DTPicker1_SD.Value = Validate_Time(DTPicker1_SD)
> > Time = DTPicker1_SD.Value
> >
> > End Sub
> >
> > Private Function Validate_Time(ByRef DTPickerField As DTPicker)
> >
> > Dim Time_Mn As Integer
> >
> > Time_Mn = Minute(Time)
> >
> > If Time_Mn = 0 And DTPickerField.Minute = 59 Then
> > If DTPickerField.Hour = 0 Then
> > DTPickerField.Hour = 11
> > Else
> > DTPickerField.Hour = DTPickerField.Hour - 1
> > End If
> > End If
> > If Time_Mn = 59 And DTPickerField.Minute = 0 Then
> > DTPickerField.Hour = DTPickerField.Hour + 1
> > End If
> > Set Validate_Time = DTPickerField
> >
> > End Function
> >
> > Thanks in advance for any assistance
>
> .
>