View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Robin Hammond[_2_] Robin Hammond[_2_] is offline
external usenet poster
 
Posts: 575
Default Excel throws exception if cell being edited

I haven't tried to do this with automation, but all of us in the VBA sphere
just know that if a cell is being edited then VBA will not function.

In most VBA situations, it's hard to get into this position. If VBA is
running you can't edit, if editing VBA can't run, so the most typical time
that we see this is when scheduling routines to run at a future time.

There is no method that I know of that will get you out of edit mode
unfortunately. I'd guess you are looking at some kind of control loop in VB
that creates a delay and a retry if your call fails.

Alternatively, can you do this with another hidden instance of Excel rather
than the instance that can be locked up by your users? Or, can you have a
launch routine that asks your user if it is ok to run, and an exit message
when your code has run. This way if the launch routine fails you don't do
anything. I know I'd be annoyed if Excel got hijacked while I was working on
something.

Robin Hammond
www.enhanceddatasystems.com

"Pixeled" wrote in
message ...

I'm at my wits end with this bug.. I'm hoping this is so common, that
there is a very simple fix.

I have a C++ app that does COM based import/export of data directly
from Excel, but I have to think that anyone doing VBA would see this
all the time..

All of my calls to Excel to determine current workbook, how many
workbooks, current worksheet, how many worksheets, getting/setting cell
data all work wonderfully.. *unless* the user was editing a cell in the
worksheet..

If the worksheet is left in 'editing mode', almost all of the COM calls
will thow an exception, and not return successfully.

To get out of 'editing mode', I have tried everything from
SendKeys("ENTER") to closing the damn Workbook & reopening it (and
switching workbooks, activating, etc etc)

The machine either locks up, or just throws more exceptions.

I've meticulously gone through excel9.tli and excel9.tlh, looking for
some method remotely pertainant, such as a 'deactive' or 'end edit' or
anything that would allow the COM automation calls to succeed..

This is so very frustrating, because one very common user action in
Excel can bring (the functionality of) my whole app to its knees..

Any help/pointers/direction/solution would be greatly appreciated..

Thank You.



--
Pixeled
------------------------------------------------------------------------
Pixeled's Profile:
http://www.excelforum.com/member.php...o&userid=26932
View this thread: http://www.excelforum.com/showthread...hreadid=401558