setfocus function not working...


Well-known Member
Hello you all, good people.

It has been a few years last time I have been around.

I have been dwelling with the code bellow and the setfocus function is driving me nuts, as it's not working.

Instead, the cursor is moving to the next field in the form.

What am I doing wrong please?

Private Sub tbnctel_AfterUpdate()

    If Len(Me.tbnctel.Value) < 11 Then
        MsgBox "Error! Contact number not long enough."
        Me.tbnctel.Value = Left(Me.tbnctel.Value, 11)
        tbnctel.Value = "" 'Does clear the correct field.
        tbnctel.SetFocus 'Does not set focus on the correct field.
        Exit Sub
    End If
    tbnctel = Format(tbnctel, "00000 000 000")
End Sub
As always, I am very much appreciated for all of your help.

Many thanks.

It's good to be back.


Active Member
It's because your code is in afterupdate. Just the way it works i'm afraid. Try:

Private Sub tbnctel_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    Application.EnableEvents = False
    If Len(tbnctel.Value) < 11 Then
        Cancel = True
        MsgBox "Error! Contact number not long enough.", vbCritical
        tbnctel.Value = Left(Me.tbnctel.Value, 11) '<--Not sure why this is even here!
        tbnctel.Value = ""
        tbnctel = Format(tbnctel, "00000 000 000")
    End If
    Application.EnableEvents = True
End Sub


Well-known Member
Hi trunten, again.

I have replied three times now and for some reason I can't see them in here.

The code you provided works a treat.

Much appreciated.

On another note what would you add to the code to say landlines must start 01?

Thanks for your time.


Some videos you may like

This Week's Hot Topics

  • Get External Data (long shot question!)
    This is likely a long shot but I am wondering if it is at all possible for Excel to somehow 'change' the contents of a URL that is being linked to...
  • Importing multiple excel files into one spreadsheet
    Hi, I'm trying to import multiple excel files (with the same format into a single spreadsheet) so that each day's file is listed underneath the...
  • Cell Formatting
    Good Morning, I need to format a few different cells in the following manners: A1 has to always add a colon (:) after whatever is typed in by a...
  • How to copy multiple rows using If
    Hi all, I'm very new to VBA and have written this simple code to copy certain cells if a certain cell within that row contains any data. I need...
  • Workbook_Change stopped working !
    I am working on an app to speed up & automate processing of Credit Cards statements. After data is input from a CSV file, it is presented to the...
  • VBA If statement
    Dear All, I have two dates, where I'd like a message box to pop, if the dates are between this criteria. [CODE] sDate1 = #10/1/2019#...