Jump to content
Sign in to follow this  
juandi

[CERRADO] Cambiar tamaño y posicion de Conector recto de flecha con codigo

Recommended Posts

Hola amigos; coloqué en una hoja varias flechas; ahora lo no se como hacer con codigo para que cambien de posicion y de tamaño segun lo que yo elija en una lista.

With ActiveSheet.Shapes("171 Conector recto de flecha")

????????

End With

saludos

juandi

Share this post


Link to post
Share on other sites

pues debes hacer uso de la propiedades del objeto :)

mira en la ayuda:Método BeginConnect para ir "iniciando",luego ve complementando segun te guie la misma ayuda o tus dudas.,

procra 'probar' las macros de ejemplo como esta,que esta en al ayuda:

Sub crea_y_conecta()
Set myDocument = Worksheets(2)
Set s = myDocument.Shapes
Set firstRect = s.AddShape(msoShapeRectangle, 100, 50, 200, 100)
Set secondRect = s.AddShape(msoShapeRectangle, 300, 300, 200, 100)
Set c = s.AddConnector(msoConnectorCurve, 0, 0, 100, 100)
With c.ConnectorFormat
.BeginConnect ConnectedShape:=firstRect, ConnectionSite:=1
.EndConnect ConnectedShape:=secondRect, ConnectionSite:=1
c.RerouteConnections
End With
End Sub[/CODE]

luego procura ir adaptando a tus necesidades:

por ejemplo personalizando variables al castellano,valores de constantes y uno que otro toque personal como mensaje de aviso al final:

[CODE]Sub crea_y_conecta_by_ST()
Lugar = InputBox("Escriba el nombre de la hoja", "Figuras y conectores", "Hoja1")
Set Lahoja = Sheets(Lugar) 'Worksheets(2)
Set s = Lahoja.Shapes
Set fig1 = s.AddShape(msoShapeRectangle, 50, 25, 100, 50)
Set fig2 = s.AddShape(msoShapeRectangle, 150, 150, 100, 50)
Set c = s.AddConnector(msoConnectorCurve, 0, 0, 50, 50)
With c.ConnectorFormat
.BeginConnect ConnectedShape:=fig1, ConnectionSite:=1
.EndConnect ConnectedShape:=fig2, ConnectionSite:=1
c.RerouteConnections
End With
MsgBox "conexion realizada", , "Aviso para " & Application.UserName
End Sub[/CODE]

el mismo ejemplo pero personalizado :)

Share this post


Link to post
Share on other sites

hola juandi:

siguiendo tu ejemplo que comentas en el 'privado'..te comento que todo esta en 'familiarizarse' con las propiedades del objeto en cuestion,en tu caso mencionas que :

el problema es que siempre los ejemplos que encuentro es con addline y tengo que reemplazar con el nombre 171 Conector recto de flecha' date=' que es una de las que tengo que modificar. espero que me entiendas[/quote']

lo cual me levaa pensar que no 'encontraste el objeto principal que en este caso seria "Shape"

pues addline es un "Método" que usa el objeto shape para agregar una linea ..de Add=agregar y Line=linea

en sitesis lo que debes hacver es irte al objeto priuncipal desde ahi 'manipular sus propiedades,para lo cual debes revisar en la yauda el Objeto Shape

aquí de tejo la macro que me enviaste por el privado(misma que esta en la ayuda),y ligeramente modificada(solo le asigne un nombre personal a la linea:

Sub crea_linea()
With Worksheets(1).Shapes.AddLine(10, 10, 250, 250).Line
.DashStyle = msoLineDashDotDot
.ForeColor.RGB = RGB(50, 0, 128)
End With
Worksheets(1).Shapes(3).Name = "lineaST"
End Sub[/CODE]

y en seguida te muestro como usar algunas propiedades del objeto en cuestion:

Sub cambia_propiedades_linea()

[CODE]With ActiveSheet.Shapes("lineaST")
.Line.Style = msoLineSingle
.Line.DashStyle = msoLineSolid
.Line.BeginArrowheadStyle = msoArrowheadOval
.Line.EndArrowheadStyle = msoArrowheadTriangle
.Line.ForeColor.RGB = RGB(0, 0, 250)
.Line.Weight = 4.5
End With
End Sub[/CODE]

si eres observador podras ver que la palabra "Line" se repite varias veces dentro del código,pues bien esa puede ir en la pimer linea con la instruccion With ,y te quedaria asi:

[CODE]Sub cambia_propiedades_linea()
With ActiveSheet.Shapes("lineaST")[COLOR="darkred"][B].Line[/B][/COLOR]
.Style = msoLineSingle
.DashStyle = msoLineSolid
.BeginArrowheadStyle = msoArrowheadOval
.EndArrowheadStyle = msoArrowheadTriangle
.ForeColor.RGB = RGB(0, 0, 250)
.Weight = 4.5
End With
End Sub[/CODE]

lee por favor tambien la [color=blue]propieda line[/color] en la yuda y ve su ejemplo para que veas como se puedo haber modificado el 'grosor' desde la pimera macro

en sintesis es cuestion de que revises 'bien' los objetos y prpiedades para poder manipularlos.

solo comentarte que yo tampoco estaba familiarizado con ello lo que me llevo a una pequeña busqueda y algo de paciencia para poder ofertarte esta respuesta.

finalmente deirte/recomendarte la grabadora de macros,pues con ella se aprende muchisimo sobre lo que te he comentado y a sido la fuent inicial de los conocimientos que a la fecha poseo.

crea linea y modifica.zip

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.

Sign in to follow this  



×
×
  • Create New...

Important Information

Privacy Policy