[Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 256
  • 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

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

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