** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Gráfico que tome los colores de los datos
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoGráfico que tome los colores de los datos

 Responder Responder
Autor
Mensaje
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3849
Enlace directo a este mensaje Tema: Gráfico que tome los colores de los datos
    Enviado: 04/Marzo/2021 a las 16:36
Buenas tardes a todos.

Estoy intentando hacer un gráfico (a ser posible lineal) donde cambie el color de la línea (una única línea) en función del color de los datos en la hoja Excel.

Es decir, si tengo un gráfico que me enseñe los valores desde C1 hasta C100

Normalmente saldría una línea de un solo color mostrando la gráfica correspondiente.

Ahora bien, si yo tengo los datos de C1 a C50 en rojo, de C51 a c 100 en verde, ¿es posible sacar un gráfico lineal donde la primera parte de la línea sea roja y la segunda verde?

En este ejemplo he puesto dos colores, pero en la vida real podrían ser N colores, incluso repetirse en distintos "segmentos" del gráfico.

Dado que es un excel mío, puedo añadir filas o poner controles sin problema, pero no se me ocurre como hacerlo para conseguir este efecto.

Cualquier idea, por descabellada que parezca, será muy bienvenida.

Luis
El Búho es un pajarraco
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Enlace directo a este mensaje Enviado: 04/Marzo/2021 a las 16:50
No hagas una línea, haz 100 y cada 'trozo' lleva el color en función de la celda origen.


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3849
Enlace directo a este mensaje Enviado: 04/Marzo/2021 a las 17:04
Gracias Muuuu

Esa es una de las cosas que intento, pero ¿como decirle que tome ese color?
El Búho es un pajarraco
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Enlace directo a este mensaje Enviado: 04/Marzo/2021 a las 17:14
Esto lo utilizo desde Access con automatización, tendrás que traducirlo a Excel, pero no creo que te de problemas ... apunte, una línea es un rectángulo muuuuu finito

Public Sub Rectangulo(Optional ByVal Rango As String = "", Optional ByVal DescuentoAlto = 0, Optional ByVal DescuentoIzquierda = 0, Optional ByVal DescuentoDerecha = 0, Optional ByVal ColorLinea = "", Optional ByVal ColorRelleno = "", Optional ByVal GrosorLinea = "")
    Dim AnchoRect As Long
    
    If Rango <> "" Then Me.XRango = Rango
    Xls.ActiveSheet.Range(Me.XRango).Select
    'protegemos el posible valor erroneo de ancho
    AnchoRect = Xls.Selection.Width - (DescuentoIzquierda + DescuentoDerecha): If AnchoRect < 0 Then AnchoRect = 2
    Xls.ActiveSheet.Shapes.AddShape(msoShapeRectangle, Xls.Selection.Left + DescuentoIzquierda, Xls.Selection.Top + DescuentoAlto, AnchoRect, Xls.Selection.Height - (DescuentoAlto * 2)).Select
    If ColorLinea <> "" Then Xls.Selection.ShapeRange.Line.ForeColor.RGB = ColorLinea
    If ColorRelleno <> "" Then Xls.Selection.ShapeRange.Fill.ForeColor.RGB = ColorRelleno
    If GrosorLinea <> "" Then Xls.Selection.ShapeRange.Line.Weight = GrosorLinea
End Sub


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5970
Enlace directo a este mensaje Enviado: 04/Marzo/2021 a las 21:23
La línea en el gráfico realmente son 99 líneas que unen los 100 puntos.

¿El color en los datos lo tiene la fuente o la celda?


Saludos desde Tenerife.
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5970
Enlace directo a este mensaje Enviado: 04/Marzo/2021 a las 22:24
Hice un ejemplo (con ayuda de Santa grabadora):
Fechas en A2:A20 (A1 = Fecha)  para el eje horizontal
Números en B2:B20 (B1 = datos)  El número de filas es indiferente.

Sub colorDeLinea()
  Dim punto&, p1&, p2&, miColor As Double
  p1 = 2
  p2 = Cells(Rows.Count, 1).End(xlUp).Row - 1
  ActiveSheet.ChartObjects("3 Gráfico").Activate
  For punto = p1 To p2
    miColor = Cells(punto, 2).Font.Color
    With ActiveChart.SeriesCollection(1).Points(punto).Format.Line
      .ForeColor.RGB = miColor
    End With
  Next punto
  [C1].Select
End Sub

Nota: coloreé a mano los números (fuente). Si el color lo tienes por formato condicional, el procedimiento para obtener el color será diferente (emplea la fórmula del propio FC).


Saludos desde Tenerife.
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3849
Enlace directo a este mensaje Enviado: 08/Marzo/2021 a las 11:33
Pues no lo consigo, la función de Antonio me casca en "With ActiveChart.SeriesCollection(1)." asi que sigo buscando (en mis ratos libres) una solución.

Y lo de Mihura, lo estoy traduciendo, pero de momento nada tampoco.


En cuanto tenga un par de horas, a ver si lo soluciono

Gracias

Luis
El Búho es un pajarraco
Arriba
Emilio Ver desplegable
Administrador
Administrador

Santander

Unido: 08/Agosto/2004
Localización: España
Estado: Sin conexión
Puntos: 18836
Enlace directo a este mensaje Enviado: 08/Marzo/2021 a las 13:01
Buenas.
Luis, échale un ojo a https://andypope.info/charts/conditionalline2.htm, en esa página hay un puñado de magníficos ejemplos de gráficos Excel.
Saludos a todos desde Huelva

http://www.mvp-access.es/emilio/
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Enlace directo a este mensaje Enviado: 08/Marzo/2021 a las 14:48
Don Luis, en una hoja (ThisWorkBook), Copia / pega y ejecuta AA.

Option Explicit

Public Function Rectangulo(XRango As String, Optional ByVal DescuentoAlto = 0, Optional ByVal DescuentoIzquierda = 0, Optional ByVal DescuentoDerecha = 0, Optional ByVal ColorLinea = "", Optional ByVal ColorRelleno = "", Optional ByVal GrosorLinea = "")
    Dim AnchoRect As Long
    
    ActiveSheet.Range(XRango).Select
    'protegemos el posible valor erroneo de ancho
    AnchoRect = Selection.Width - (DescuentoIzquierda + DescuentoDerecha): If AnchoRect < 0 Then AnchoRect = 2
    ActiveSheet.Shapes.AddShape(msoShapeRectangle, Selection.Left + DescuentoIzquierda, Selection.Top + DescuentoAlto, AnchoRect, Selection.Height - (DescuentoAlto * 2)).Select
    If ColorLinea <> "" Then Selection.ShapeRange.Line.ForeColor.RGB = ColorLinea
    If ColorRelleno <> "" Then Selection.ShapeRange.Fill.ForeColor.RGB = ColorRelleno
    If GrosorLinea <> "" Then Selection.ShapeRange.Line.Weight = GrosorLinea
End Function

Function AA()
    Rectangulo "A1:G1", ColorLinea:=vbRed, ColorRelleno:=vbGreen
End Function
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5970
Enlace directo a este mensaje Enviado: 08/Marzo/2021 a las 19:53
Como no comentabas nada, daba por hecho que lo tenias controlado, incluso eliminé el ejemplo.

Acabo de hacer este otro.

Si te «atascas» pásame el modelo de tus datos (con datos ficticios) con detalles de lo que te ocurre.



Saludos desde Tenerife.
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3849
Enlace directo a este mensaje Enviado: 09/Marzo/2021 a las 08:49
Antonio... quiero decir, Don Antonio.

¡Es usted un genio!

Cinco días devanándome los sesos y al final la solución es "así de simple"

Gracias mil.

Se da por cerrado con el ejemplo de AnSanVal.

Luis
El Búho es un pajarraco
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Enlace directo a este mensaje Enviado: 09/Marzo/2021 a las 09:02
Si señor, ... mas que Don, es Excmo  Tongue.

¡Que fácil son las cosas cuándo se sabe hacerlas!

Un saludo.
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable