Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5
Default how to keep focus on txt_box in userform

Hi,

i have the following code for a txt_box on a userform:

Private Sub nw_premieNP_Exit(ByVal Cancel As MSForms.ReturnBoolean)
OnlyNumbers nw_premieNP
Worksheets("staffelberekening").Range("G12") = nw_premieNP.Value
End Sub

the Only numbers sub looks like

Private Sub OnlyNumbers(ctl As Object)
With ctl
If Not IsNumeric(Left(.Value, 1)) And .Value < vbNullString Then
MsgBox "Sorry, alleen getallen toegestaan", vbOKOnly, "De Pensioen
Adviseur"
.Value = vbNullString
.SetFocus
End If
End With
End Sub

The problem is that if the input is not numeric, the input is deleted but the
focus is put on the next input box.
How can i have the focus on the field that was input wrong ?

thanks,
Pierre


--
Message posted via OfficeKB.com
http://www.officekb.com/Uwe/Forums.a...mming/200509/1
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,302
Default how to keep focus on txt_box in userform

Hi Jean-Pierre,

Try:

Option Explicit
Public blInvalidEntry As Boolean '<<=== Module level flag


Private Sub nw_premieNP_Exit(ByVal Cancel As MSForms.ReturnBoolean)
OnlyNumbers nw_premieNP
Cancel = blInvalidEntry <<============ ADDED
Worksheets("Sheet2").Range("G12") = nw_premieNP.Value
End Sub

Private Sub OnlyNumbers(ctl As Object)
With ctl
If Not IsNumeric(Left(.Value, 1)) And .Value < vbNullString Then
MsgBox "Sorry, alleen getallen toegestaan", _
vbOKOnly, "De Pensioen Adviseur """
.Value = vbNullString
blInvalidEntry = True
Else
blInvalidEntry = False
End If
End With
End Sub

---
Regards,
Norman



"Pierre via OfficeKB.com" wrote in message
...
Hi,

i have the following code for a txt_box on a userform:

Private Sub nw_premieNP_Exit(ByVal Cancel As MSForms.ReturnBoolean)
OnlyNumbers nw_premieNP
Worksheets("staffelberekening").Range("G12") = nw_premieNP.Value
End Sub

the Only numbers sub looks like

Private Sub OnlyNumbers(ctl As Object)
With ctl
If Not IsNumeric(Left(.Value, 1)) And .Value < vbNullString
Then
MsgBox "Sorry, alleen getallen toegestaan", vbOKOnly, "De
Pensioen
Adviseur"
.Value = vbNullString
.SetFocus
End If
End With
End Sub

The problem is that if the input is not numeric, the input is deleted but
the
focus is put on the next input box.
How can i have the focus on the field that was input wrong ?

thanks,
Pierre


--
Message posted via OfficeKB.com
http://www.officekb.com/Uwe/Forums.a...mming/200509/1



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,302
Default how to keep focus on txt_box in userform

Hi Jean-Pierre,

As an alternative apporoach, you might consider using the textbox's KeyPress
event to ensure numeric entry, e.g:

Private Sub nw_premieNP_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57
Case Else
MsgBox "Sorry, alleen getallen toegestaan", vbOKOnly, "De Pensioen"
KeyAscii = 0
End Select
End Sub

---
Regards,
Norman



"Norman Jones" wrote in message
...
Hi Jean-Pierre,

Try:

Option Explicit
Public blInvalidEntry As Boolean '<<=== Module level flag


Private Sub nw_premieNP_Exit(ByVal Cancel As MSForms.ReturnBoolean)
OnlyNumbers nw_premieNP
Cancel = blInvalidEntry <<============ ADDED
Worksheets("Sheet2").Range("G12") = nw_premieNP.Value
End Sub

Private Sub OnlyNumbers(ctl As Object)
With ctl
If Not IsNumeric(Left(.Value, 1)) And .Value < vbNullString Then
MsgBox "Sorry, alleen getallen toegestaan", _
vbOKOnly, "De Pensioen Adviseur """
.Value = vbNullString
blInvalidEntry = True
Else
blInvalidEntry = False
End If
End With
End Sub

---
Regards,
Norman



"Pierre via OfficeKB.com" wrote in message
...
Hi,

i have the following code for a txt_box on a userform:

Private Sub nw_premieNP_Exit(ByVal Cancel As MSForms.ReturnBoolean)
OnlyNumbers nw_premieNP
Worksheets("staffelberekening").Range("G12") = nw_premieNP.Value
End Sub

the Only numbers sub looks like

Private Sub OnlyNumbers(ctl As Object)
With ctl
If Not IsNumeric(Left(.Value, 1)) And .Value < vbNullString
Then
MsgBox "Sorry, alleen getallen toegestaan", vbOKOnly, "De
Pensioen
Adviseur"
.Value = vbNullString
.SetFocus
End If
End With
End Sub

The problem is that if the input is not numeric, the input is deleted but
the
focus is put on the next input box.
How can i have the focus on the field that was input wrong ?

thanks,
Pierre


--
Message posted via OfficeKB.com
http://www.officekb.com/Uwe/Forums.a...mming/200509/1





  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5
Default how to keep focus on txt_box in userform

Hi Norman,

This seems to work but i still don't get the focus on the curent textbox.
In my code the cursor was blinking in the next txt_box.
With your code, i don't see a blinking cursor at all....
Is there a way tot select the 'invalid' code in the field so that the user
can give a new input?
thanks,
Pierre

Norman Jones wrote:
Hi Jean-Pierre,

Try:

Option Explicit
Public blInvalidEntry As Boolean '<<=== Module level flag

Private Sub nw_premieNP_Exit(ByVal Cancel As MSForms.ReturnBoolean)
OnlyNumbers nw_premieNP
Cancel = blInvalidEntry <<============ ADDED
Worksheets("Sheet2").Range("G12") = nw_premieNP.Value
End Sub

Private Sub OnlyNumbers(ctl As Object)
With ctl
If Not IsNumeric(Left(.Value, 1)) And .Value < vbNullString Then
MsgBox "Sorry, alleen getallen toegestaan", _
vbOKOnly, "De Pensioen Adviseur """
.Value = vbNullString
blInvalidEntry = True
Else
blInvalidEntry = False
End If
End With
End Sub

---
Regards,
Norman

Hi,

[quoted text clipped - 27 lines]
thanks,
Pierre



--
Message posted via OfficeKB.com
http://www.officekb.com/Uwe/Forums.a...mming/200509/1
  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,302
Default how to keep focus on txt_box in userform

Hi Pierre,

With your code, i don't see a blinking cursor at all....


Try restoring your original SetFocus instruction in the OnlyNumbers sub,
i.e.:

Private Sub OnlyNumbers(ctl As Object)
With ctl
If Not IsNumeric(Left(.Value, 1)) And .Value < vbNullString Then
MsgBox "Sorry, alleen getallen toegestaan", _
vbOKOnly, "De Pensioen Adviseur """
.Value = vbNullString
.SetFocus ' <<=========== Restored
blInvalidEntry = True
Else
blInvalidEntry = False
End If
End With
End Sub

---
Regards,
Norman



"Pierre via OfficeKB.com" wrote in message
...
Hi Norman,

This seems to work but i still don't get the focus on the curent textbox.
In my code the cursor was blinking in the next txt_box.
With your code, i don't see a blinking cursor at all....
Is there a way tot select the 'invalid' code in the field so that the user
can give a new input?
thanks,
Pierre

Norman Jones wrote:
Hi Jean-Pierre,

Try:

Option Explicit
Public blInvalidEntry As Boolean '<<=== Module level flag

Private Sub nw_premieNP_Exit(ByVal Cancel As MSForms.ReturnBoolean)
OnlyNumbers nw_premieNP
Cancel = blInvalidEntry <<============ ADDED
Worksheets("Sheet2").Range("G12") = nw_premieNP.Value
End Sub

Private Sub OnlyNumbers(ctl As Object)
With ctl
If Not IsNumeric(Left(.Value, 1)) And .Value < vbNullString Then
MsgBox "Sorry, alleen getallen toegestaan", _
vbOKOnly, "De Pensioen Adviseur """
.Value = vbNullString
blInvalidEntry = True
Else
blInvalidEntry = False
End If
End With
End Sub

---
Regards,
Norman

Hi,

[quoted text clipped - 27 lines]
thanks,
Pierre



--
Message posted via OfficeKB.com
http://www.officekb.com/Uwe/Forums.a...mming/200509/1





  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default how to keep focus on txt_box in userform

You have an alternative at your first post.

"Pierre via OfficeKB.com" wrote:

Hi,

i have the following code for a txt_box on a userform:

Private Sub nw_premieNP_Exit(ByVal Cancel As MSForms.ReturnBoolean)
OnlyNumbers nw_premieNP
Worksheets("staffelberekening").Range("G12") = nw_premieNP.Value
End Sub

the Only numbers sub looks like

Private Sub OnlyNumbers(ctl As Object)
With ctl
If Not IsNumeric(Left(.Value, 1)) And .Value < vbNullString Then
MsgBox "Sorry, alleen getallen toegestaan", vbOKOnly, "De Pensioen
Adviseur"
.Value = vbNullString
.SetFocus
End If
End With
End Sub

The problem is that if the input is not numeric, the input is deleted but the
focus is put on the next input box.
How can i have the focus on the field that was input wrong ?

thanks,
Pierre

--
Message posted via OfficeKB.com
http://www.officekb.com/Uwe/Forums.a...mming/200509/1


--

Dave Peterson
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Switch focus to inactive userform GrahamUNC Excel Programming 2 April 15th 05 09:37 PM
Object on userform can't get focus Jos Vens[_2_] Excel Programming 3 February 28th 05 11:50 PM
Show userform without it taking focus? leah Excel Programming 2 August 10th 04 07:07 PM
Focus on Control before UserForm(s) pop up Bob Phillips[_6_] Excel Programming 0 May 5th 04 04:03 PM
UserForm Loss Focus Orlando Magalhães Filho Excel Programming 2 September 5th 03 04:47 AM


All times are GMT +1. The time now is 04:51 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"