ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Unselect shaperange object after drawing it with VBA? (https://www.excelbanter.com/excel-programming/394331-unselect-shaperange-object-after-drawing-vba.html)

jedihe

Unselect shaperange object after drawing it with VBA?
 
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



Vergel Adriano

Unselect shaperange object after drawing it with VBA?
 
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




--
Hope that helps.

Vergel Adriano


"jedihe" wrote:

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




Bernie Deitrick

Unselect shaperange object after drawing it with VBA?
 
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


"jedihe" wrote in message
m...
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





All times are GMT +1. The time now is 11:14 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com