Buenas tardes:
Parece que he aprendido a adjuntar documentos e imágenes y puedo aportar la información adecuada
Adjunto un documento Calc "PruebaGraficosEasyDev" con tres hojas,
• Hoja1 con los datos a graficar
• Hoja2 sin utilizar
• Hoja3=Graficos en la que se incluyen los gráficos. Con objeto de reducir el tamaño y poder enviarlo he eliminado el gráfico
Como comentaba, he detectado un problema en la forma de indicar el rango origen de los datos del gráfico.
• Si la hoja se identifica por su nombre (como variable String) funciona correctamente
• Si la hoja se identifica por su íncide (como varaible Integer) no funciona. Adjunto los comentarios al respecto hechos días atrás
valenteres escribió:Hola de nuevo Mauricio.
Respecto a los gráficos he visto donde está el problema. No se como resolverlo, pero lo he identificado.
En el primer caso que planteé siguiendo tus instrucciones, el que funciona, la hoja se identifica por su nombre, como String
Código: Seleccionar todo
' Definición de rango de datos por índice
address.Doc = doc
address.Sheet = "Hoja1"
address.Col = 0
address.Row = 4
address.EndCol = 0
address.EndRow = 10010
' Rango de las ordenadas
rango_X = util.getRange(address)
En este caso el código funciona sin ningún problema. Pongo un punto de ruptura en la linea de código siguiente, voy a la ventana de Observador, y en Rango_X.RangeAddress.Sheet tiene el valor 0. He comprobado que si cambio "Hoja1" por cualquier otro nombre de hoja válido, funciona bien, y en Rango_X.RangeAddress.Sheet figura el valor correspondiente a esa hoja.
Si el valor de address.Sheet es entero se presentan dos casos:
- address.Sheet = 0 --> Rango_X.RangeAddress.Sheet toma el valor (indice) correspondiente a la hoja que está activa en Calc
- address.Sheet tiene cualquier otro valor entero --> da error
Espero que tenga una solución. De nuevo muchas gracias por tu trabajo
P.D. He intentado subir algunos archivos, pero siguen siendo demasiado grandes. ¿Cual es el tamaño máximo que admite?
Respecto a las imágenes, sigo sin saber como incluirlas en el mensaje, ¿Que es lo que hay que poner entre los corchetes? La ruta para encontrarla?. Supongo que ademas tendrá el mismo problema de tamaño
Con objeto de ilustrar este problema, el documento adjunto incluye dos macros
• Graficos01: Identifica los rangos adecuadamente y en la gráfica se representan las dos series. Las características son:
o Serie1: La hoja se identifica por su nombre, filas y columnas por su índice
o Serie2: Hoja, filas y columnas se identifican como variable String
• Graficos02: Identifica el rango de daos de la serie 2, pero no el de la serie La gráfica representan la serie 2 pero no la serie 1. Las características son:
o Serie1: La hoja, filas y columnas se identifican por su índice
o Serie2: Hoja, filas y columnas se identifican como variable String
La captura de pantalla adjunta corresponde a un punto de ruptura incluido en este segundo caso. Puede observase que para un valor address.Sheet=0, el valor que toma RangeAddress. Sheet es 2. Esto es porque la hoja seleccionada en ese momento es, como se ve en la misma imagen, la hoja “Graficos”, que ocupa el lugar 3 y por tanto, su índice es 2.
- Captura de pantalla con los datos cuando Address.Sheet=0
Espero haber proporcionado la información suficiente. En cualquier caso puedo ampliarla en los términos que consideres oportuno.
Muchas gracias por todo, y quedo a la espera de noticias.