esquina diagonal en otro color

30/07/2006 - 01:10 por José | Informe spam
Hola a todos,
quiero que la esquina superior izquierda de una celda (o varias) tengan un
color distinto al resto.
He trazado una linea diagonal con las opciones de celda, bordes,... pero
cuando quiero poner el color afecta a toda la celda. como puedo hacer para
que se vea en otro color desde la diagonal para arriba (dentro de la celda).

Gracias y salu2 a to2.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
30/07/2006 - 03:34 | Informe spam
hola, José !

quiero que la esquina superior izquierda de una celda (o varias) tengan un color distinto al resto.
He trazado una linea diagonal con las opciones de celda, bordes,... pero cuando quiero poner el color afecta a toda la celda.
como puedo hacer para que se vea en otro color desde la diagonal para arriba (dentro de la celda).



ya que estas incrustando lineas para la 'division' de las celdas...
y aunque excel/word/etc. no son programas 'ideales' para dibujar [ya que hay programas 'especializados']...
[ademas de que podrias 'correr el riesgo' de llegar a corromper los archivos por 'exceso' de objetos incrustados] :-(
y si no te resultan 'incomodas/desconocidas/... las macros...
el siguiente ejemplo incrusta cuatro 'objetos' [uno en cada esquina] de las celdas que le pongas en el codigo
[puedes cambiar los colores del ejemplo, asi como los tipos de 'formas'] estoy ejemplificando con triangulos.
[por si fuera necesario]... 'ajusta' primero el alto-fila/ancho-columna de los rangos donde se vayan a incrustar
[y asegurate de que el nombre de 'la hoja' coincida con el que usa el ejemplo]
-> solo estoy usando DOS celdas no-contiguas para que se puedan 'apreciar' las formas :)

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
en un modulo de codigo 'normal' ==Sub Insertar_Triangulos()
Application.ScreenUpdating = False
Dim Celda As Range, L As Single, T As Single, W As Single, H As Single
With Worksheets("Hoja1")
For Each Celda In .Range("b2,c4")
L = Celda.Left: T = Celda.Top: W = Celda.Width: H = Celda.Height
' en la esquina superior izquierda '
With .Shapes.AddShape( _
msoShapeRightTriangle, L, T, H / 2, H / 2)
.Rotation = 90
.Fill.ForeColor.RGB = RGB(255, 255, 0) ' amarillo '
End With
' en la esquina superior derecha '
With .Shapes.AddShape( _
msoShapeRightTriangle, L + W - (H / 2), T, H / 2, H / 2)
.Rotation = 180
.Fill.ForeColor.RGB = RGB(0, 0, 255) ' azul '
End With
' en la esquina inferior derecha '
With .Shapes.AddShape( _
msoShapeRightTriangle, L + W - (H / 2), T + (H / 2), H / 2, H / 2)
.Rotation = 270
.Fill.ForeColor.RGB = RGB(0, 255, 0) ' verde '
End With
' en la esquina inferior izquierda '
With .Shapes.AddShape( _
msoShapeRightTriangle, L, T + (H / 2), H / 2, H / 2)
.Fill.ForeColor.RGB = RGB(255, 0, 0) ' rojo '
End With
Next
End With
End Sub

notas:
-> si prefieres otro tipo de formas... prueba a modificar las formas insertadas...
de -> msoShapeRightTriangle
a -> msoShapeOval o... msoShapeDonut
[en cuyo caso... DEBERAS eliminar las lineas que les hacen 'rotaciones'
-> consulta la ayuda en vba por otros colores para la propiedad RGB(rojo, azul, verde)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida