Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 267
  • Last Modified:

VBA: User form in Excel

Hi everyone,
What I have created, using VBA in Excel, is a custom user form for customer payments input.
The form has 3 fields for specifying the customer number, the customer name and the amount paid.
The customer name is linked to a database in the same Excel s/sheet containing all customer numbers and names.
On the form I have a button and when pressed, I have a macro that runs and picks up the customer name by looking at the database until it finds the customer number and picks up the name - the cell on the right.  The macro works, but I want to know if there is a way to do this without pressing this button.
Can I get the macro to run or use another method so that the customer name can be displayed automatically once the customer is entered.
I am hoping this is pretty simple, but please help.
I can not think of a way and it does get annoying to always go through an extra step in order to verify the customer name.
Help!
0
vbAngel
Asked:
vbAngel
  • 3
  • 2
1 Solution
 
bruintjeCommented:
put it under the on leave method of the textbox? or another method of the textbox, lost focus?

why do you want to do that anyway, it can be a bit cumbersome if you key in a wrong name and leave the box the program tries to look it up...

:O)Bruintje
0
 
vbAngelAuthor Commented:
"leave method of the textbox" or "lost focus" - what are those and how could I use them?
Are they available in VBA?

I need for the keyer to varify the customer name as the payment can be easily keyed to a wrong customer.  I want to display it tough, so the keyer can just look up, make sure the name is right and keep on keying other payments.
Thanks,
vb
0
 
bruintjeCommented:
Hi vbAngel,

here are 4 possible candidates to get the check handled by an eventhandler of the textbox

Private Sub TextBox1_AfterUpdate()
  MsgBox "afterupdate"
End Sub

Private Sub TextBox1_Change()
  MsgBox "change"
End Sub

Private Sub TextBox1_Enter()
  MsgBox "enter"
End Sub

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  MsgBox "exit"
End Sub

I guess the on enter, change, are not suitable leaves

afterupdate which is triggered by tab or leaving the cell

exit which is triggered by enter but you can set the focus back on the box like

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  MsgBox "exit"
  TextBox1.SetFocus
End Sub

HTH:O)Bruintje
0
 
vbAngelAuthor Commented:
Thanks Bruintje,
this is exactly what I wanted.
Simple yet effective.
Thanks again,
vb
0
 
bruintjeCommented:
glad it helped
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now