FORMA DEL CONECTOR??

27/11/2007 - 05:22 por Orfao | Informe spam
Hola Gente!
Necesito colocar unos conectores entre dos rangos ej: entre BH3 y BH4
y tiene un valor =+REPETIR(" ";(BE3-$BC$2)/$BG$1)&REPETIR("█";REDONDEAR.MAS(AW3/$BG$1;0))
el tipo de letra es TERMINAL
esto me reflaja una especie de barra horizontal
la idea es conectar desde el final de la barra que aparece en BH3 y la de BH4
he usado lo siguiente:


For X = 3 To 45

XI = Range("BH" & x1).Left + (Range("BF" & x1) - Range("BC2")) * 4
YI = Range("BH" & x1).Top + Range("BH" & x1).Height / 2
XF = Range("BH" & x2).Left + (Range("BE" & x2) - Range("BC2")) * 4
YF = Range("BH" & x2).Top + Range("BH" & x2).Height / 2

ActiveSheet.Shapes.AddConnector(msoConnectorElbow, BEGINX:=XI,
BEGINY:=YI, ENDX:=XF - XI, ENDY:=YF - YI).Select
Selection.ShapeRange.Fill.Transparency = 0#
Selection.ShapeRange.Line.Weight = 0.75
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.ConnectorFormat.Type = msoConnectorElbow
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Transparency = 0#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.ForeColor.SchemeColor = 13
Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.Line.BeginArrowheadLength = msoArrowheadLengthMedium
Selection.ShapeRange.Line.BeginArrowheadWidth = msoArrowheadWidthMedium
Selection.ShapeRange.Line.BeginArrowheadStyle = msoArrowheadNone
Selection.ShapeRange.Line.EndArrowheadLength = msoArrowheadLengthMedium
Selection.ShapeRange.Line.EndArrowheadWidth = msoArrowheadWidthMedium
Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
Next

funciona a la perfeccin , solo que en alguna filas coloca las lineas del
conector de una forma (Horizontal ,vertical, horizontal) y en otros de otra
(vertical Horizontal, Vertical).
como hago para que siempre las coloque (Horizontal, vertical,horizontal) ??
Muchas Gracias.

Me alimento del conocimiento de todos
 

Leer las respuestas

#1 Héctor Miguel
28/11/2007 - 01:25 | Informe spam
hola, moises !

Necesito colocar unos conectores entre dos rangos ej: entre BH3 y BH4 y tiene un valor
=REPETIR(" ";(BE3-$BC$2)/$BG$1)&REPETIR("â–ˆ";REDONDEAR.MAS(AW3/$BG$1;0))
el tipo de letra es TERMINAL esto me reflaja una especie de barra horizontal
la idea es conectar desde el final de la barra que aparece en BH3 y la de BH4 he usado lo siguiente:
funciona a la perfeccion, solo que en alguna filas coloca las lineas del conector de una forma (Horizontal, vertical, horizontal)
y en otros de otra (vertical Horizontal, Vertical). como hago para que siempre las coloque (Horizontal, vertical, horizontal) ?



(hasta donde se) las autoformas siguen "su camino mas corto" desde su origen hasta su final (a menos que las dirijas) -?-
por lo que es conveniente si comentas algunos detalles como los valores de x1 y x2, el "factor" en la celda "BC2"...
y el alto de las filas y ancho de columnas donde se hace el "ajuste" de la autoforma...
(los argumentos BEGINX, BEGINY, ENDX y ENDY) -???-

no entiendo por que le "atascas" 43 autoformas (iguales) con el bucle For X = 3 To 45
a menos que tengas tus razones para ello, te sugiero eliminar dicho bucle -???-

tambien puedes adelgazar el codigo metiendo el "re-tipeo" en n bloque With ... End With (al insertar la autoforma) p.e.

With ActiveSheet.Shapes.AddConnector(msoConnectorElbow, XI, YI, XF - XI, YF - YI)
.Fill.Transparency = 0#
.ConnectorFormat.Type = msoConnectorElbow
With .Line
.Weight = 0.75
.DashStyle = msoLineSolid
.Style = msoLineSingle
.Transparency = 0#
.Visible = msoTrue
.ForeColor.SchemeColor = 13
.BackColor.RGB = RGB(255, 255, 255)
.BeginArrowheadLength = msoArrowheadLengthMedium
.BeginArrowheadWidth = msoArrowheadWidthMedium
.BeginArrowheadStyle = msoArrowheadNone
.EndArrowheadLength = msoArrowheadLengthMedium
.EndArrowheadWidth = msoArrowheadWidthMedium
.EndArrowheadStyle = msoArrowheadTriangle
End With
End With

saludos,
hector.

__ el codigo expuesto __
For X = 3 To 45
XI = Range("BH" & x1).Left + (Range("BF" & x1) - Range("BC2")) * 4
YI = Range("BH" & x1).Top + Range("BH" & x1).Height / 2
XF = Range("BH" & x2).Left + (Range("BE" & x2) - Range("BC2")) * 4
YF = Range("BH" & x2).Top + Range("BH" & x2).Height / 2
ActiveSheet.Shapes.AddConnector(msoConnectorElbow, BEGINX:=XI, BEGINY:=YI, ENDX:=XF - XI, ENDY:=YF - YI).Select
Selection.ShapeRange.Fill.Transparency = 0#
Selection.ShapeRange.Line.Weight = 0.75
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.ConnectorFormat.Type = msoConnectorElbow
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Transparency = 0#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.ForeColor.SchemeColor = 13
Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.Line.BeginArrowheadLength = msoArrowheadLengthMedium
Selection.ShapeRange.Line.BeginArrowheadWidth = msoArrowheadWidthMedium
Selection.ShapeRange.Line.BeginArrowheadStyle = msoArrowheadNone
Selection.ShapeRange.Line.EndArrowheadLength = msoArrowheadLengthMedium
Selection.ShapeRange.Line.EndArrowheadWidth = msoArrowheadWidthMedium
Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
Next

Preguntas similares