Saltar al contenido

Rango variable en un gráfico


jramia

Recommended Posts

publicado

Hola,

El problema es el siguiente:

Si hago el gráfico como a continuación me funciona:

i = 0

Charts.Add

ActiveChart.ChartType = xlColumnClustered

ActiveChart.SetSourceData Source:=Sheets("DC").Range("H15000")

ActiveChart.SeriesCollection.NewSeries

ActiveChart.SeriesCollection(1).XValues = "=DC!R1C3:R168C4"

ActiveChart.SeriesCollection(1).Values = "=DC!R1C5:R168C5"

ActiveChart.SeriesCollection(1).Name = "=""DISOLVENTE CONSUMIDO"""

ActiveChart.Location Where:=xlLocationAsNewSheet

With ActiveChart

.HasTitle = True

.ChartTitle.Characters.Text = "DISOLVENTE CONSUMIDO"

.Axes(xlCategory, xlPrimary).HasTitle = True

.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "HORAS"

.Axes(xlValue, xlPrimary).HasTitle = True

.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "KG"

End With

With ActiveChart.Axes(xlCategory)

.HasMajorGridlines = False

.HasMinorGridlines = False

End With

With ActiveChart.Axes(xlValue)

.HasMajorGridlines = True

.HasMinorGridlines = False

End With

ActiveChart.HasLegend = False

ActiveChart.PlotArea.Select

With Selection.Border

.Weight = xlThin

.LineStyle = xlNone

End With

With Selection.Interior

.ColorIndex = 2

.PatternColorIndex = 1

.Pattern = xlSolid

End With

ActiveChart.ChartArea.Select

ActiveChart.Axes(xlCategory).Select

With Selection.Border

.Weight = xlHairline

.LineStyle = xlAutomatic

End With

With Selection

.MajorTickMark = xlNone

.MinorTickMark = xlNone

.TickLabelPosition = xlNextToAxis

End With

ActiveChart.ChartArea.Select

Pero si quiero que los datos con que quiero hacer las gráficas sean variables (como a continuación) tengo un problema en el código que no se como solventar:

i = 0

Charts.Add

ActiveChart.ChartType = xlColumnClustered

ActiveChart.SetSourceData Source:=Sheets("DC").Range("H15000")

ActiveChart.SeriesCollection.NewSeries

ActiveChart.SeriesCollection(1).XValues = "=DC!R(1+168*i)C3:R(168+168*i)C4"

ActiveChart.SeriesCollection(1).Values = "=DC!R(1+168*i)C5:R(168+168*i)C5"

ActiveChart.SeriesCollection(1).Name = "=""DISOLVENTE CONSUMIDO"""

ActiveChart.Location Where:=xlLocationAsNewSheet

With ActiveChart

.HasTitle = True

.ChartTitle.Characters.Text = "DISOLVENTE CONSUMIDO"

.Axes(xlCategory, xlPrimary).HasTitle = True

.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "HORAS"

.Axes(xlValue, xlPrimary).HasTitle = True

.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "KG"

End With

With ActiveChart.Axes(xlCategory)

.HasMajorGridlines = False

.HasMinorGridlines = False

End With

With ActiveChart.Axes(xlValue)

.HasMajorGridlines = True

.HasMinorGridlines = False

End With

ActiveChart.HasLegend = False

ActiveChart.PlotArea.Select

With Selection.Border

.Weight = xlThin

.LineStyle = xlNone

End With

With Selection.Interior

.ColorIndex = 2

.PatternColorIndex = 1

.Pattern = xlSolid

End With

ActiveChart.ChartArea.Select

ActiveChart.Axes(xlCategory).Select

With Selection.Border

.Weight = xlHairline

.LineStyle = xlAutomatic

End With

With Selection

.MajorTickMark = xlNone

.MinorTickMark = xlNone

.TickLabelPosition = xlNextToAxis

End With

ActiveChart.ChartArea.Select

Les agradecería mucho que me ayudasen con este problema, gracias.

publicado

Hola jramia

Bienvenido al foro (¿Has leído las normas?, un archivo siempre ayuda a que te ayuden)

ActiveChart.SeriesCollection(1).XValues = "=DC!R(1+168*i)C3:R(168+168*i)C4"

ActiveChart.SeriesCollection(1).Values = "=DC!R(1+168*i)C5:R(168+168*i)C5"

Todo lo que va entre comillas será considerado como un texto y por lo tanto es lógico que no te funcione, deberías probar a separar la cadena en algo tal que

ActiveChart.SeriesCollection(1).XValues = "=DC!R(" & 1+168*i & ")C3:R(" & 168+168*i & ")C4"

ActiveChart.SeriesCollection(1).Values = "=DC!R(" & 1+168*i & ")C5:R(" & 168+168*i & ")C5"

no sé si te funcionará (si hubieras subido el archivo se podría haber probado) pero algo así debería valerte.

Un saludo desde Vitoria

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      187
    • Comentarios
      97
    • Revisiones
      28

    Más información sobre "Un juego del Rabino en Excel"
    Última descarga
    Por pegones1

    1    1

  • Crear macros Excel

  • Mensajes

    • Hola La opción brindada por @torquemada es correcta, funciona, pero hay algunos inconvenientes que (desde mi punto de vista) no la convierten en mi primera elección. Los inconvenientes son: Tendrías que ir columna por columna haciendo los reemplazos, claro que no se harían a mano sino que utilizarías la opción reemplazar o la opción texto en columnas, aun asi demorará un poquito y será trabajoso. Cada vez que descargues otro listado, tendrás que volver a realizar los reemplazos. Me parece una mejor propuesta lo siguiente: Descarga los movimientos a un archivo de Excel Desde tu control de pagos (otro archivo) cargas los movimientos del archivo descargado mediante Power Query Power Query hará los reemplazos y reconocerá todo correctamente (sin que tengas que hacer nada especial) Cuando descargues los movimientos un día posterior, solamente tendrás que hacer clic en "Actualizar" y todo funcionará en automático
    • Hola a todos, Efectivamente, me temo que tal como trabajan las funciones =HOY() y/o =AHORA() (volátiles), sólo con macros puedes obtener soluciones. Un recurso pedestre podría ser, cada vez que quieras que se fije un dato, te sitúes en esa celda y pulses F2, F9 e INTRO.  Pero claro, puede ser un inconveniente si hay que hacerlo repetitivamente en muchas ocasiones,.............. en fin, lo comento sólo como posibilidad. Saludos,
    • Hola nuevamente, mi duda sigue siendo la ruta, o rutas, finales que quedan, esas que llamas "relativas"; igual por si acaso pon 3 o 4 de esas, tal cual son y/o se ven en el explorador de cada PC y, de ser posible, en cualquier otro "lado" en que las veas.
    • Hola, tal cual se plantea, solamente con macros (VBA); en todo caso, hacerlo a mano o con "CTRL + ;". Saludos.
    • Mil gracias, en verdad todo apoyo es super agradecido,   Su aporte y comentarios valen mucho para in servidor, y tiene razon esperare a conocer si alguien comparte alguna otra manera,   Gracias!!! (y)
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.