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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 Orfao
28/11/2007 - 02:13 | Informe spam
Hola Hector..
Yo como siempre suponiendo que todos saben lo que no les digo..
el bucle for X=3 to 43 indica el numero de la fila a revisar
aunque falta una parte del codigo siguiente a esta linea que es verificar
desde que fila arranca el conector (x1) y en que fila termina (x2)
luego con el codigo expuesto busco en la fila x1 las coordenadas XI,YI
(inicio)
y para la fila x2 las coordewnadas XF,YF (final)
entonces ploteo el conector y al final (que tambien falta) Next para hacer
el chequeo en la siguiente fila.
En BC2 tengo la fecha de inicio de la obra y en
BF3:BF43 las fechas de inicio de cada actividad
lo que hago es restar fecha inicioactividad-fechainicioobra para tener la
posicion del desplazamiento horizontal (que coincidiria con el inicio o el
fin de la barra creada con la formula. =+REPETIR("
";(BE3-$BC$2)/$BG$1)&REPETIR("█";REDONDEAR.MAS(AW3/$BG$1;0))
El alto de las filas es autoajustable segun lo que tenga en las columnas
A3:A43 (descripciones de tareas ) que en algunos casos son de una linea y en
otros puede llegar al alto de 5 lineas . esto segun el ancho de columna que
elija para la columna A.
si son 43-3+1partidas se generan 40 conectores (siempre y cuando tengan
alguna relacion mencionada en el post anterior de tipo FC CC FF etc.
Esta parte tamien la verifico despues del for (esta comentada +/- en el post
anterior titulado ENCONTRAR=FIND ???).
Si es necesario te envio el archivo con lo que tengo hasta ahora para que lo
examines mejor..(Tu dices.)
Gracias de nuevo.


Me alimento del conocimiento de todos


"Héctor Miguel" wrote:

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



Respuesta Responder a este mensaje
#3 Héctor Miguel
28/11/2007 - 02:30 | Informe spam
hola, moises !

Yo como siempre suponiendo que todos saben lo que no les digo...



(pues)... a veces como que se alcanzan a adivinar (de la propia exposicion y consulta)
pero otras... se quedan donde las dejo el consultante... "en el tintero" :D

Si es necesario te envio el archivo con lo que tengo hasta ahora para que lo examines mejor... (Tu dices.)



y... por que no lo pones en algun sitio de hospedaje y queda disponible para todo el grupo ?
(multiplicas sustancialmente tus probabilidades de obtener propuestas y alternativas)
(sobre todo, si lo haces desde una consulta "fresca") ;)

saludos,
hector.
Respuesta Responder a este mensaje
#4 Orfao
28/11/2007 - 02:56 | Informe spam
Hola, Hector !
Muy buena idea !!
Pero...me puedes indicar como y/o donde lo publico ?? (No tengo la mas
remota idea de como hacerlo).

Me alimento del conocimiento de todos


"Héctor Miguel" wrote:

hola, moises !

> Yo como siempre suponiendo que todos saben lo que no les digo...

(pues)... a veces como que se alcanzan a adivinar (de la propia exposicion y consulta)
pero otras... se quedan donde las dejo el consultante... "en el tintero" :D

> Si es necesario te envio el archivo con lo que tengo hasta ahora para que lo examines mejor... (Tu dices.)

y... por que no lo pones en algun sitio de hospedaje y queda disponible para todo el grupo ?
(multiplicas sustancialmente tus probabilidades de obtener propuestas y alternativas)
(sobre todo, si lo haces desde una consulta "fresca") ;)

saludos,
hector.



Respuesta Responder a este mensaje
#5 Héctor Miguel
28/11/2007 - 03:45 | Informe spam
hola, moises !

...me puedes indicar como y/o donde lo publico ?? (No tengo la mas remota idea de como hacerlo).



(gratis ?)
http://www.afmu.com/
http://www.esnips.com/signin/
http://www.ahostforfree.com/
-> no olvides visitar de este ultimo, el enlace...
las 10 razones para evitar el hospedaje gratuito :))

(bajo costo ?)
http://tophostrankings.com/

(seguramente) existiran otras alternativas (no soy muy conocedor de los hospedajes en web) :D

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida