ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Find Autoshape (https://www.excelbanter.com/excel-programming/334208-find-autoshape.html)

Ronbo

Find Autoshape
 
I have a lot of triangle autoshapes in row 20, that are used as macro
buttons. I want the current button that is being used to change to a
differant color. I have each autoshape programmed to change color when
selected.

What I need is a way for the autoshape to return to its original color when
another autoshape is selected.

Something to the effect;

ActiveSheet.Shapes("Row 20").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid

As always, any help/suggestions is very much appreciated.


Tom Ogilvy

Find Autoshape
 
Either maintain a variable that has a reference to the shape. then use that
in your macro to restore the color

or
At the start of your macro
Loop through all the appropriate shapes and recolor them.

--
Regards,
Tom Ogilvy

"Ronbo" wrote in message
...
I have a lot of triangle autoshapes in row 20, that are used as macro
buttons. I want the current button that is being used to change to a
differant color. I have each autoshape programmed to change color when
selected.

What I need is a way for the autoshape to return to its original color

when
another autoshape is selected.

Something to the effect;

ActiveSheet.Shapes("Row 20").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid

As always, any help/suggestions is very much appreciated.




Ronbo

Find Autoshape
 
Tom -

The first option is what I am looking for becasue there are a lot of
autoshapes. A variable that would reference the shape would be great, but
how do I generate that reference.

Also, how do you identify the autoshape Id or Number?


Thanks a lot for your help.


"Tom Ogilvy" wrote:

Either maintain a variable that has a reference to the shape. then use that
in your macro to restore the color

or
At the start of your macro
Loop through all the appropriate shapes and recolor them.

--
Regards,
Tom Ogilvy

"Ronbo" wrote in message
...
I have a lot of triangle autoshapes in row 20, that are used as macro
buttons. I want the current button that is being used to change to a
differant color. I have each autoshape programmed to change color when
selected.

What I need is a way for the autoshape to return to its original color

when
another autoshape is selected.

Something to the effect;

ActiveSheet.Shapes("Row 20").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid

As always, any help/suggestions is very much appreciated.





Tom Ogilvy

Find Autoshape
 
Show your code that colors the Autoshape.

Is it assigned to the autoshape? Do you have a routine for each shape?

--
Regards,
Tom Ogilvy

"Ronbo" wrote in message
...
Tom -

The first option is what I am looking for becasue there are a lot of
autoshapes. A variable that would reference the shape would be great, but
how do I generate that reference.

Also, how do you identify the autoshape Id or Number?


Thanks a lot for your help.


"Tom Ogilvy" wrote:

Either maintain a variable that has a reference to the shape. then use

that
in your macro to restore the color

or
At the start of your macro
Loop through all the appropriate shapes and recolor them.

--
Regards,
Tom Ogilvy

"Ronbo" wrote in message
...
I have a lot of triangle autoshapes in row 20, that are used as macro
buttons. I want the current button that is being used to change to a
differant color. I have each autoshape programmed to change color

when
selected.

What I need is a way for the autoshape to return to its original color

when
another autoshape is selected.

Something to the effect;

ActiveSheet.Shapes("Row 20").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid

As always, any help/suggestions is very much appreciated.







Ronbo

Find Autoshape
 
Tom:

The code I have for (AutoShape 1) is;

Sub SCA()
'
' SCA Macro "Sort Column C Accending"
'
Application.DisplayFullScreen = False
ActiveSheet.Protect UserInterFaceOnly:=True
Range("A19:CX219").Select
Selection.Sort Key1:=Range("C19"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A19").Select

ActiveSheet.Shapes("AutoShape 1").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
Range("c18").Select
Application.DisplayFullScreen = True

End Sub

Yes it is assigned to the AutoShape, as are all.

All Autohapes reside in row 18, two to a cell, so that C18 contains two
triangle AutoShapes; one a triangle the other an upsidedown triangle
(Accending/Decending) each has a macro to do a (Accending/Decending) sort on
the column.

My routine will do the sort and color the sort button "Yellow", so that it
is easy to identify the sort criteria. But when I choose a new sort, the
next AutoShape will change to "Yellow" but now I have two "Yellow" sort
identifiers.

I need to change all Autoshapes back to gray then run my routine.

As Always, Thanks A Lot









"Tom Ogilvy" wrote:

Show your code that colors the Autoshape.

Is it assigned to the autoshape? Do you have a routine for each shape?

--
Regards,
Tom Ogilvy

"Ronbo" wrote in message
...
Tom -

The first option is what I am looking for becasue there are a lot of
autoshapes. A variable that would reference the shape would be great, but
how do I generate that reference.

Also, how do you identify the autoshape Id or Number?


Thanks a lot for your help.


"Tom Ogilvy" wrote:

Either maintain a variable that has a reference to the shape. then use

that
in your macro to restore the color

or
At the start of your macro
Loop through all the appropriate shapes and recolor them.

--
Regards,
Tom Ogilvy

"Ronbo" wrote in message
...
I have a lot of triangle autoshapes in row 20, that are used as macro
buttons. I want the current button that is being used to change to a
differant color. I have each autoshape programmed to change color

when
selected.

What I need is a way for the autoshape to return to its original color
when
another autoshape is selected.

Something to the effect;

ActiveSheet.Shapes("Row 20").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid

As always, any help/suggestions is very much appreciated.








Tom Ogilvy

Find Autoshape
 
' at the top of the module outside any procedure.
Public Obj as Object

Sub SCA()
'
' SCA Macro "Sort Column C Accending"
'
Application.DisplayFullScreen = False
ActiveSheet.Protect UserInterFaceOnly:=True
Range("A19:CX219").Select
Selection.Sort Key1:=Range("C19"), Order1:=xlAscending, Header:=xlGuess,
_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A19").Select


If not obj is Nothing then
obj.ShapeRange.Fill.ForeColor.SchemeColor = "whatever
end if
ActiveSheet.Shapes("AutoShape 1").Select
set Obj = Selection
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
Range("c18").Select
Application.DisplayFullScreen = True

End Sub





--
Regards,
Tom Ogilvy

"Ronbo" wrote in message
...
Tom:

The code I have for (AutoShape 1) is;

Sub SCA()
'
' SCA Macro "Sort Column C Accending"
'
Application.DisplayFullScreen = False
ActiveSheet.Protect UserInterFaceOnly:=True
Range("A19:CX219").Select
Selection.Sort Key1:=Range("C19"), Order1:=xlAscending,

Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A19").Select

ActiveSheet.Shapes("AutoShape 1").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
Range("c18").Select
Application.DisplayFullScreen = True

End Sub

Yes it is assigned to the AutoShape, as are all.

All Autohapes reside in row 18, two to a cell, so that C18 contains two
triangle AutoShapes; one a triangle the other an upsidedown triangle
(Accending/Decending) each has a macro to do a (Accending/Decending) sort

on
the column.

My routine will do the sort and color the sort button "Yellow", so that it
is easy to identify the sort criteria. But when I choose a new sort, the
next AutoShape will change to "Yellow" but now I have two "Yellow" sort
identifiers.

I need to change all Autoshapes back to gray then run my routine.

As Always, Thanks A Lot









"Tom Ogilvy" wrote:

Show your code that colors the Autoshape.

Is it assigned to the autoshape? Do you have a routine for each shape?

--
Regards,
Tom Ogilvy

"Ronbo" wrote in message
...
Tom -

The first option is what I am looking for becasue there are a lot of
autoshapes. A variable that would reference the shape would be great,

but
how do I generate that reference.

Also, how do you identify the autoshape Id or Number?


Thanks a lot for your help.


"Tom Ogilvy" wrote:

Either maintain a variable that has a reference to the shape. then

use
that
in your macro to restore the color

or
At the start of your macro
Loop through all the appropriate shapes and recolor them.

--
Regards,
Tom Ogilvy

"Ronbo" wrote in message
...
I have a lot of triangle autoshapes in row 20, that are used as

macro
buttons. I want the current button that is being used to change

to a
differant color. I have each autoshape programmed to change color

when
selected.

What I need is a way for the autoshape to return to its original

color
when
another autoshape is selected.

Something to the effect;

ActiveSheet.Shapes("Row 20").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid

As always, any help/suggestions is very much appreciated.










Ronbo

Find Autoshape
 
Tom:

PERFECT!!! Exactly what I was looking for.

Thanks a lot for your help.





"Tom Ogilvy" wrote:

' at the top of the module outside any procedure.
Public Obj as Object

Sub SCA()
'
' SCA Macro "Sort Column C Accending"
'
Application.DisplayFullScreen = False
ActiveSheet.Protect UserInterFaceOnly:=True
Range("A19:CX219").Select
Selection.Sort Key1:=Range("C19"), Order1:=xlAscending, Header:=xlGuess,
_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A19").Select


If not obj is Nothing then
obj.ShapeRange.Fill.ForeColor.SchemeColor = "whatever
end if
ActiveSheet.Shapes("AutoShape 1").Select
set Obj = Selection
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
Range("c18").Select
Application.DisplayFullScreen = True

End Sub





--
Regards,
Tom Ogilvy

"Ronbo" wrote in message
...
Tom:

The code I have for (AutoShape 1) is;

Sub SCA()
'
' SCA Macro "Sort Column C Accending"
'
Application.DisplayFullScreen = False
ActiveSheet.Protect UserInterFaceOnly:=True
Range("A19:CX219").Select
Selection.Sort Key1:=Range("C19"), Order1:=xlAscending,

Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A19").Select

ActiveSheet.Shapes("AutoShape 1").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
Range("c18").Select
Application.DisplayFullScreen = True

End Sub

Yes it is assigned to the AutoShape, as are all.

All Autohapes reside in row 18, two to a cell, so that C18 contains two
triangle AutoShapes; one a triangle the other an upsidedown triangle
(Accending/Decending) each has a macro to do a (Accending/Decending) sort

on
the column.

My routine will do the sort and color the sort button "Yellow", so that it
is easy to identify the sort criteria. But when I choose a new sort, the
next AutoShape will change to "Yellow" but now I have two "Yellow" sort
identifiers.

I need to change all Autoshapes back to gray then run my routine.

As Always, Thanks A Lot









"Tom Ogilvy" wrote:

Show your code that colors the Autoshape.

Is it assigned to the autoshape? Do you have a routine for each shape?

--
Regards,
Tom Ogilvy

"Ronbo" wrote in message
...
Tom -

The first option is what I am looking for becasue there are a lot of
autoshapes. A variable that would reference the shape would be great,

but
how do I generate that reference.

Also, how do you identify the autoshape Id or Number?


Thanks a lot for your help.


"Tom Ogilvy" wrote:

Either maintain a variable that has a reference to the shape. then

use
that
in your macro to restore the color

or
At the start of your macro
Loop through all the appropriate shapes and recolor them.

--
Regards,
Tom Ogilvy

"Ronbo" wrote in message
...
I have a lot of triangle autoshapes in row 20, that are used as

macro
buttons. I want the current button that is being used to change

to a
differant color. I have each autoshape programmed to change color
when
selected.

What I need is a way for the autoshape to return to its original

color
when
another autoshape is selected.

Something to the effect;

ActiveSheet.Shapes("Row 20").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid

As always, any help/suggestions is very much appreciated.












All times are GMT +1. The time now is 08:43 AM.

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