Unselect shaperange object after drawing it with VBA?

  • Thread starter Thread starter jedihe
  • Start date Start date
J

jedihe

I use VBA to draw lines and dots on a control chart that consists of cells
border and color formats.

When the code finishes, the last thing drawn is still "selected". So if I
say, hit an arrow key, that dot or line is moved. I don't want that. I have
12 other people using this chart and I need predictable behavior.

I tried adding to the end of the sub "Activecell.offset(0,1).activate" or
"select" but the dot is still selected (ergo affected by the next
keystrokes).

If you hit the {ESC} key in Excel, problem solved, so you would think ...

SendKeys "{ESC}" ... once or twice would do the trick, right? Nope, doesn't
work.

Help! Please, help. This is driving me nuts. -JayH
 
Hi Jay,

You didn't post your code so I'm going to assume that you are selecting the
lines after you draw them. For example, you draw them like this:

ActiveSheet.Shapes.AddLine(100, 100, 200, 200).Select

You can draw lines without selecting them which should solve your problem.
So, draw them like this:

ActiveSheet.Shapes.AddLine 100, 100, 200, 200
 
Jay,

As noted, you don't need to select objects in your code to add them. Your
suggestion (Activecell.offset(0,1).activate) should work, but you can always
force a range selection:

Dim mySel As Range
Set mySel = Selection
'Other code here
mySel.Select

will return your sheet to its original selection.

Otherwise, just select a specific cell:

Range("A1").Select

HTH,
Bernie
MS Excel MVP
 

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

Back
Top