Conocer que "forma" o "shape" es al hacer click

Hola,
Me creado un mapa de España con todas las provincias en "shapes". Quiero que al pinchar en cada una de las "formas" me realice unas acciones iguales aunque con la variación de que si es tal provincia acceda a los datos de esa, y si es otra provincia pues los datos de esa otra.
Para todo esto necesito conocer el nombre de la "forma". Yo lo se hacer, creándome un evento por cada forma (pero son 52 eventos prácticamente iguales). ¿Es posible crear un evento único para todas las formas, indicándome en que forma pinchas y a través de este dado (o sea el nombre de la forma pinchada) acceder a los datos que tengo en otra hoja?
No se si he liado un poco la pregunta, si necesitas cualquier aclaración no dudes en preguntarme.
Gracias de antemano.
Respuesta
1
No podrás crear un solo 'evento click' porque no es lo mismo pinchar en Valencia que en Asturias.
Lo que sí podrás hacer es 1 única rutina que trabajará con variables, en lugar del nbre del objeto pinchado.
Es decir que tendrás por cada objeto algo como esto:
Sub oval_Astu() 'objeto Oval para Asturias
nbre = "Oval 2"
Call formitas
End Sub
Sub rect_Vale() 'objeto rectángulo para Valencia
nbre = "Rectangle 1"
Call formitas
End Sub
Luego la rutina única:
Sub formitas()
'tus instrucciones para todos los objetos
'aquí por ej solo lo selecciona
ActiveSheet.Shapes(nbre).Select
End Sub

Para conocer el nombre de cada objeto tal como debe aparecer en la rutina, esta macro te ayudará:
sub nbre_formas()
For Each fm In ActiveSheet.Shapes
MsgBox fm.Name
Next
end sub
No olvides colocar al inicio del módulo esta declaración:
Public nbre as string

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas