Unable to set focus on Textbox

ipbr21054

Well-known Member
Joined
Nov 16, 2010
Messages
4,048
Office Version
  1. 2007
Platform
  1. Windows
Morning,
The code in use is supplied below.

I enter some text in TextBox8 to be searched for but none was found.
I then see the Msgbox saying NO CUSTOMER WAS FOUND USING THAT INFORMATION
I then click OK to the Msgbox BUT now i wish for TextBox8 to have the text removed of which it does BUT in respect of TextBox8 having the focus applied to it i dont see the flashing vetical line at all.


Rich (BB code):
    Private Sub TextBox8_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = vbKeyReturn Then
      Dim r As Range, f As Range, cell As String, added As Boolean
      Dim sh As Worksheet
      
      Set sh = Sheets("POSTAGE")
      sh.Select
      With ListBox1
        .Clear
        .ColumnCount = 4
        .ColumnWidths = "220;110;130;10"
        If TextBox8.Value = "" Then Exit Sub
        Set r = Range("B8", Range("B" & Rows.Count).End(xlUp))
        Set f = r.Find(TextBox8.Value, LookIn:=xlValues, lookat:=xlPart)
        If Not f Is Nothing Then
          cell = f.Address
          Do
            added = False
            For i = 0 To .ListCount - 1
              Select Case StrComp(.List(i), f.Value, vbTextCompare)
                Case 0, 1
                  .AddItem f.Value, i                 'col B
                  .List(i, 1) = f.Offset(, 2).Value   'col D
                  .List(i, 2) = f.Offset(, 5).Text    'col G .TEXT is used as date in Listbox was shown as 12/17/2020 as opposed 17/12/2020
                  .List(i, 3) = f.Row                 'row
                  added = True
                  Exit For
              End Select
            Next
            If added = False Then
              .AddItem f.Value                                 'col B
              .List(.ListCount - 1, 1) = f.Offset(, 2).Value   'col D
              .List(.ListCount - 1, 2) = f.Offset(, 5).Text    'col G .TEXT is used as date in Listbox was shown as 12/17/2020 as opposed 17/12/2020
              .List(.ListCount - 1, 3) = f.Row                 'row
            End If
            Set f = r.FindNext(f)
          Loop While Not f Is Nothing And f.Address <> cell
          TextBox8 = UCase(TextBox8)
          .TopIndex = 0
        Else
          MsgBox "NO CUSTOMER WAS FOUND USING THAT INFORMATION", vbCritical, "POSTAGE SHEET CUSTOMER NAME SEARCH"
        End If
      End With
        TextBox8.Value = ""
        TextBox8.SetFocus
      End If
    End Sub
 

Excel Facts

What is the shortcut key for Format Selection?
Ctrl+1 (the number one) will open the Format dialog for whatever is selected.

Zot

Well-known Member
Joined
Nov 26, 2020
Messages
1,411
Office Version
  1. 2016
Platform
  1. Windows
Instead of deleting TextBox8 content I usually just select the content waiting to be overwritten. Replace
VBA Code:
TextBox8.Value = ""
TextBox8.SetFocus
with
VBA Code:
With Me.TextBox8
    .SetFocus
    .SelStart = 0
    .SelLength = Len(.Text)
End With
I think if you delete the value also the focus should still be there
 

ipbr21054

Well-known Member
Joined
Nov 16, 2010
Messages
4,048
Office Version
  1. 2007
Platform
  1. Windows
Hi,

Do you mean add it like this ?

Rich (BB code):
            Set f = r.FindNext(f)
          Loop While Not f Is Nothing And f.Address <> cell
          TextBox8 = UCase(TextBox8)
          .TopIndex = 0
        Else
          MsgBox "NO CUSTOMER WAS FOUND USING THAT INFORMATION", vbCritical, "POSTAGE SHEET CUSTOMER NAME SEARCH"
        End If
        With Me.TextBox8
    .SetFocus
    .SelStart = 0
    .SelLength = Len(.Text)
     End With
      End With
      End If
    End Sub
 

Zot

Well-known Member
Joined
Nov 26, 2020
Messages
1,411
Office Version
  1. 2016
Platform
  1. Windows
After last End With, not before.

Rich (BB code):
End With
With Me.TextBox8
   .SetFocus
   .SelStart = 0
   .SelLength = Len(.Text)
End With
 

ipbr21054

Well-known Member
Joined
Nov 16, 2010
Messages
4,048
Office Version
  1. 2007
Platform
  1. Windows

ADVERTISEMENT

Ok,
So ive inserted it like shown.


I see the Msgbox.
I click on ok but the text is still shown in the Textbox8 & no focus is applied

Rich (BB code):
            If added = False Then
              .AddItem f.Value                                 'col B
              .List(.ListCount - 1, 1) = f.Offset(, 2).Value   'col D
              .List(.ListCount - 1, 2) = f.Offset(, 5).Text    'col G .TEXT is used as date in Listbox was shown as 12/17/2020 as opposed 17/12/2020
              .List(.ListCount - 1, 3) = f.Row                 'row
            End If
            Set f = r.FindNext(f)
          Loop While Not f Is Nothing And f.Address <> cell
          TextBox8 = UCase(TextBox8)
          .TopIndex = 0
        Else
          MsgBox "NO CUSTOMER WAS FOUND USING THAT INFORMATION", vbCritical, "POSTAGE SHEET CUSTOMER NAME SEARCH"
        End If
        End With
        With Me.TextBox8
          .SetFocus
          .SelStart = 0
          .SelLength = Len(.Text)
        End With
        End If
    End Sub
 

Zot

Well-known Member
Joined
Nov 26, 2020
Messages
1,411
Office Version
  1. 2016
Platform
  1. Windows
Is the text in TextBox8 get selected? If it does, then you can just key in new input to overwrite.
 

ipbr21054

Well-known Member
Joined
Nov 16, 2010
Messages
4,048
Office Version
  1. 2007
Platform
  1. Windows

ADVERTISEMENT

No it’s not selected.
 

NoSparks

Well-known Member
Joined
Mar 15, 2013
Messages
1,090
Office Version
  1. 2010
Platform
  1. Windows
Have you tried setting the focus to another control and then back to Textbox8 ?
 

ipbr21054

Well-known Member
Joined
Nov 16, 2010
Messages
4,048
Office Version
  1. 2007
Platform
  1. Windows
This morning ive removed the setFocus with TextBox8.Value = 123 and it does as shown.
SetFocus not working so i will just put up with it

Thanks for the help
 

Forum statistics

Threads
1,136,909
Messages
5,678,514
Members
419,768
Latest member
eguechi09x

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Top