appactivate sendkeys not working with accelerator

R

RB Smissaert

Using Excel 2002.
Have a simple sub that picks up a value from the active sheet, activates
another application and sends the value to the application. This sub runs
through a command button on a userform.
When I click the command button all works fine.
The command button has an accelerator key in this "z".
When I do Alt + z the application gets activated but the values don't get
send.

The simplified sub goes like this. The application is not actually
Calculator, but this sub shows the same behaviour.

Sub Test()

Dim ID As String

ID = ActiveCell.value

AppActivate "Calculator", True 'tried False as well

SendKeys ID, True

End Sub

When I put MsgBox ID before the line AppActivate it works again with the
accelerator key strokes.
It seems this problem has to do with focus, but I can't see the solution.
Thanks for any advice.


RBS
 
K

keepitcool

I think you've oversimplified it now <G>.

Sometimes including a line

Doevents

solves these issues as it gives some time for various handlers to do what
they wanna do....

give it a try and let us know



keepITcool

< email : keepitcool chello nl (with @ and .) >
< homepage: http://members.chello.nl/keepitcool >
 
T

Tom Ogilvy

Sub Test()
Dim ID As String
ID = "123{+}456="
AppActivate "Calculator", True 'tried False as well
SendKeys ID, True
End Sub


worked fine for me with the calculator.
 
R

RB Smissaert

Tom, Keepitcool,


Did you run this sub from a UserForm via an accelerator key connected to a
command button?
That is the situation I was talking about.
Managed to improve it by putting in 3 DoEvents like this:

Sub Test()

Dim ID As String

ID = ActiveCell.value

DoEvents

AppActivate "Calculator", True

DoEvents

SendKeys ID, True

DoEvents

End Sub


Even then it doesn't always work.
Would there be any alternative to using SendKeys?


RBS
 
R

RB Smissaert

Thanks. Perhaps there lies the difference. My UserForm is a modeless
UserForm.

RBS
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top