Añadir acciones a shape form de acuerdo a los nombres
publicado
Hola a todos! tengo una consulta que pareciera ser imposible... vengo investigando hace mas de un mes y no encuentro la forma de resolverlo....
Tengo una rutina que me crea una serie de shapes rectangulares como si fueran boton de un indice... la rutina recorre cada hoja, y crea en la hoja1 un shape por cada hoja que encuentre en el libro, ... logre que le ponga el nombre de cada hoja como texto al shape... pero lo que necesito agregar el action para cada shape, ,
ejemplo: si existe una hoja "X" creo el shape con texto "X" en la hoja 1. y el action debe ser : ir a la hoja X , si esta oculta, mostrarla.
For Each Worksheet In ThisWorkbook.Worksheets
Worksheet.Activate
'Dim shp As Shape
Set ws = ThisWorkbook.Sheets("Sheet1")
If Worksheet.Name <> "Sheet1" Then
ws.Activate
clTop = clTop + 40
Set shp = ws.Shapes.AddShape(msoShapeRoundedRectangle, clLeft, clTop, clWidth, clHeight)
shp.Line.Visible = msoFalse
shp.Name = Worksheet.Name
With shp.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 255, 255)
.Transparency = 0
.Solid
End With
ese utimo paso no lo he logrado de ninguna forma, y termine cayendo una tarea manual y nada automatizada de que el action; concatene el "go" + nombre de la hoja, despues creo una a una las rutinas para ir a la hoja necesaria...
Private Sub goX()
xname = ActiveSheet.Name
If Sheets(xname).Visible = False Then
Sheets(xname).Visible = True
Sheets(xname).Activate
End If
End SuB
y por ultimo lo que NO he logrado hacer es , que en el mismo Shape "Normal View", que ejecutar:
Existe alguna forma de que lo pueda automatizar al 100% y evitarme la creacion manual de cada rutina para ir a la hoja determinada? Adjunto hoja de ejemplo
Agradezco desde ya su colaboracion.... en lo que pareciera mision imposible
Hola a todos! tengo una consulta que pareciera ser imposible... vengo investigando hace mas de un mes y no encuentro la forma de resolverlo....
Tengo una rutina que me crea una serie de shapes rectangulares como si fueran boton de un indice... la rutina recorre cada hoja, y crea en la hoja1 un shape por cada hoja que encuentre en el libro, ... logre que le ponga el nombre de cada hoja como texto al shape... pero lo que necesito agregar el action para cada shape, ,
ejemplo: si existe una hoja "X" creo el shape con texto "X" en la hoja 1. y el action debe ser : ir a la hoja X , si esta oculta, mostrarla.
For Each Worksheet In ThisWorkbook.Worksheets
Worksheet.Activate
'Dim shp As Shape
Set ws = ThisWorkbook.Sheets("Sheet1")
If Worksheet.Name <> "Sheet1" Then
ws.Activate
clTop = clTop + 40
Set shp = ws.Shapes.AddShape(msoShapeRoundedRectangle, clLeft, clTop, clWidth, clHeight)
shp.Line.Visible = msoFalse
shp.Name = Worksheet.Name
With shp.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 255, 255)
.Transparency = 0
.Solid
End With
shp.Shadow.Type = msoShadow21
With shp.TextFrame2.TextRange
.Text = Worksheet.Name
.Font.Bold = msoTrue
.Font.Fill.ForeColor.RGB = RGB(0, 0, 0)
.Font.Size = 11
.Font.Bold = False
.Font.Name = "Calibri"
End With
shp.TextFrame.HorizontalAlignment = xlHAlignCenter
shp.TextFrame.VerticalAlignment = xlVAlignCenter
xname = "go" & Worksheet.Name
ASD = "'" & Worksheet.Name & "!'A1"
Action = xname
shp.OnAction = Action
SubAddress:="'" & wsName & "'!A1"
End If
Next Worksheet
ese utimo paso no lo he logrado de ninguna forma, y termine cayendo una tarea manual y nada automatizada de que el action; concatene el "go" + nombre de la hoja, despues creo una a una las rutinas para ir a la hoja necesaria...
Private Sub goX()
xname = ActiveSheet.Name
If Sheets(xname).Visible = False Then
Sheets(xname).Visible = True
Sheets(xname).Activate
End If
End SuB
y por ultimo lo que NO he logrado hacer es , que en el mismo Shape "Normal View", que ejecutar:
Application.ExecuteExcel4Macro "show.toolbar(""Ribbon"",True)"
Application.ExecuteExcel4Macro "show.toolbar(""Ribbon"",false)"
Existe alguna forma de que lo pueda automatizar al 100% y evitarme la creacion manual de cada rutina para ir a la hoja determinada? Adjunto hoja de ejemplo
Agradezco desde ya su colaboracion.... en lo que pareciera mision imposible
indice.zip