Graficos con rangos cambiantes

19/04/2007 - 01:26 por Bart | Informe spam
Hola grupo:

Estoy intentando hacer un gráfico automático a través de VBA, grabo como lo
hago manualmente, pero cuando intento reproducir lo que he hecho (la idea es
que el rango cambie), no funciona.

Alguien tiene un código de ejemplo para este problema?.

Por otro lado, el archivo contiene una base de datos de más o menos 5000
registros que mes a mes aumenta en un 20%, además que se hace pesado el libro
de Excel, se corre el riesgo que su pueda alterar la información. Cómo puedo
que Excel tome la información directamente de Access para sacar la base de
datos del archivo y pueda consultar de manera "automática" la información y
gráfique lo que he consultado.

Gracias por sus comentarios,

Bart Max

Preguntas similare

Leer las respuestas

#1 Tux
19/04/2007 - 15:08 | Informe spam
Bart escribió:
Hola grupo:

Estoy intentando hacer un gráfico automático a través de VBA, grabo como lo
hago manualmente, pero cuando intento reproducir lo que he hecho (la idea es
que el rango cambie), no funciona.

Alguien tiene un código de ejemplo para este problema?.

Por otro lado, el archivo contiene una base de datos de más o menos 5000
registros que mes a mes aumenta en un 20%, además que se hace pesado el libro
de Excel, se corre el riesgo que su pueda alterar la información. Cómo puedo
que Excel tome la información directamente de Access para sacar la base de
datos del archivo y pueda consultar de manera "automática" la información y
gráfique lo que he consultado.

Gracias por sus comentarios,

Bart Max



Hola :)

si por la << la idea es que el rango cambie >> imagino que te referiras
a crear un grafico el cual añada datos al grafico cada vez que se
inserten de nuevos en la hoja ¿?

Si es asi tendras que definir nombre para crear rangos dinamicos y hacer
el grafico dinamico: [todo esto a suposicion ya que faltan detalles
varios???]


Si tenemos por ejemplo Columna A Fechas y columna B Numeros ,
Definimos nombre y lo llamas Fechas [o como quieras] :

ÞSREF(Hoja2!$A$1;1;;CONTARA(Hoja2!$A:$A)-1;1)

y luego defines nombre para la columna B:

ÞSREF(Hoja2!$B$2;;;CONTARA(Hoja2!$B:$B)-1;1)

y ya creas el grafico con el asistente, y con los rangos dinamicos con
nombres que se han creado, los pones en el segundo paso > pestaña serie
donde dice valores:


=Hoja2!Numeros

y donde dice eje de categorias x :

=Hoja2!Fechas

Siguiente hasta finalizar .


Si quieres hacerlo todo mediante codigo : [quedaria algo asi , creandote
un grafico por defecto, si tienes por defecto graficos columnas o el que
tengas por defecto]

Sub MyGrafico()


Dim grafico As Chart
Set grafico = Charts.Add

With ActiveWorkbook.Names

.Add Name:="Temperaturas", RefersToR1C1:= _
"=OFFSET(Hoja2!R2C2,,,COUNTA(Hoja2!C2)-1,1)"
.Add Name:="Fechas", RefersToR1C1:= _
"=OFFSET(Hoja2!R1C1,1,,COUNTA(Hoja2!C1)-1,1)"
End With

grafico.SetSourceData Source:=Sheets("Hoja2").Range("A1:B4")

With ActiveChart.SeriesCollection(1)

.XValues = "=graficos.xls!Fechas"
.Values = "=graficos.xls!Temperaturas"
End With

ActiveChart.Location Where:=xlLocationAsNewSheet
With ActiveChart
.HasAxis(xlCategory, xlPrimary) = True
.HasAxis(xlValue, xlPrimary) = True
.Axes(xlCategory, xlPrimary).CategoryType = xlAutomatic
End With

Sheets("Hoja2").Select
End Sub

En cuanto a la segunda consulta :

Puedes Extraer solo los datos de Access aquellos necesarios para el
grafico y realizar tambien consultas y demas desde :

Datos > obtener datos externos > nueva consulta de bases de datos, y ya
sigues el asistente para traerte aquellos datos que necesites para graficar.

Comentanos ok? :)

Saludos
Monica




Estado: A la Espera By Fermu

Tic-Tac-Tic-Tac...

Now We are free [Enya]

www.fermu.com



Anotacion: Si por los foros veis Spam masivo sobre temas que nada tienen
que ver con el foro en cuestion,
Deciros que es un << Troll/s >> que unas veces usurpan el nombre e
identidad de gente profesional en la materia,
y otras veces usurpan el nombre e identidad de aquel o aquellos que
contestan a su Spam, su verdadero nombre es:

Pablito "Alias el Cuervo" y Compañia [payasos de circo ]

Lo mejor que podeis hacer, es o bien ignorarlos como si no existieran o
hacer seguimiento de las NEws de microsoft,

a traves de por ejemplo entre otros:

Outloock Express o Mesnews [con opcion a suprimirlos ]

Y Si utilizais el Thunderbird podeis utilizardo como Separador de hilos
y queda muy mono :-))))
Respuesta Responder a este mensaje
#2 Bart
19/04/2007 - 15:52 | Informe spam
Gracias amiguito Tux, esto era lo que estaba buscando.

Saludos,

Bart

"Tux" escribió:

Bart escribió:
> Hola grupo:
>
> Estoy intentando hacer un gráfico automático a través de VBA, grabo como lo
> hago manualmente, pero cuando intento reproducir lo que he hecho (la idea es
> que el rango cambie), no funciona.
>
> Alguien tiene un código de ejemplo para este problema?.
>
> Por otro lado, el archivo contiene una base de datos de más o menos 5000
> registros que mes a mes aumenta en un 20%, además que se hace pesado el libro
> de Excel, se corre el riesgo que su pueda alterar la información. Cómo puedo
> que Excel tome la información directamente de Access para sacar la base de
> datos del archivo y pueda consultar de manera "automática" la información y
> gráfique lo que he consultado.
>
> Gracias por sus comentarios,
>
> Bart Max

Hola :)

si por la << la idea es que el rango cambie >> imagino que te referiras
a crear un grafico el cual añada datos al grafico cada vez que se
inserten de nuevos en la hoja ¿?

Si es asi tendras que definir nombre para crear rangos dinamicos y hacer
el grafico dinamico: [todo esto a suposicion ya que faltan detalles
varios???]


Si tenemos por ejemplo Columna A Fechas y columna B Numeros ,
Definimos nombre y lo llamas Fechas [o como quieras] :

ÞSREF(Hoja2!$A$1;1;;CONTARA(Hoja2!$A:$A)-1;1)

y luego defines nombre para la columna B:

ÞSREF(Hoja2!$B$2;;;CONTARA(Hoja2!$B:$B)-1;1)

y ya creas el grafico con el asistente, y con los rangos dinamicos con
nombres que se han creado, los pones en el segundo paso > pestaña serie
donde dice valores:


=Hoja2!Numeros

y donde dice eje de categorias x :

=Hoja2!Fechas

Siguiente hasta finalizar .


Si quieres hacerlo todo mediante codigo : [quedaria algo asi , creandote
un grafico por defecto, si tienes por defecto graficos columnas o el que
tengas por defecto]

Sub MyGrafico()


Dim grafico As Chart
Set grafico = Charts.Add

With ActiveWorkbook.Names

..Add Name:="Temperaturas", RefersToR1C1:= _
"=OFFSET(Hoja2!R2C2,,,COUNTA(Hoja2!C2)-1,1)"
..Add Name:="Fechas", RefersToR1C1:= _
"=OFFSET(Hoja2!R1C1,1,,COUNTA(Hoja2!C1)-1,1)"
End With

grafico.SetSourceData Source:=Sheets("Hoja2").Range("A1:B4")

With ActiveChart.SeriesCollection(1)

..XValues = "=graficos.xls!Fechas"
..Values = "=graficos.xls!Temperaturas"
End With

ActiveChart.Location Where:=xlLocationAsNewSheet
With ActiveChart
.HasAxis(xlCategory, xlPrimary) = True
.HasAxis(xlValue, xlPrimary) = True
.Axes(xlCategory, xlPrimary).CategoryType = xlAutomatic
End With

Sheets("Hoja2").Select
End Sub

En cuanto a la segunda consulta :

Puedes Extraer solo los datos de Access aquellos necesarios para el
grafico y realizar tambien consultas y demas desde :

Datos > obtener datos externos > nueva consulta de bases de datos, y ya
sigues el asistente para traerte aquellos datos que necesites para graficar.

Comentanos ok? :)

Saludos
Monica




Estado: A la Espera By Fermu

Tic-Tac-Tic-Tac...

Now We are free [Enya]

www.fermu.com



Anotacion: Si por los foros veis Spam masivo sobre temas que nada tienen
que ver con el foro en cuestion,
Deciros que es un << Troll/s >> que unas veces usurpan el nombre e
identidad de gente profesional en la materia,
y otras veces usurpan el nombre e identidad de aquel o aquellos que
contestan a su Spam, su verdadero nombre es:

Pablito "Alias el Cuervo" y Compañia [payasos de circo ]

Lo mejor que podeis hacer, es o bien ignorarlos como si no existieran o
hacer seguimiento de las NEws de microsoft,

a traves de por ejemplo entre otros:

Outloock Express o Mesnews [con opcion a suprimirlos ]

Y Si utilizais el Thunderbird podeis utilizardo como Separador de hilos
y queda muy mono :-))))









Respuesta Responder a este mensaje
#3 Xavier Budet Graco
19/04/2007 - 19:16 | Informe spam
Lo de llamar amiguito a Mónica... ¿Qué no lees hasta el final?

Saludos,

Xavier

Quitar MAC para contestar. Gracias.

"Bart" escribió en el mensaje news:
Gracias amiguito Tux, esto era lo que estaba buscando.

Saludos,

Bart

"Tux" escribió:

Bart escribió:
> Hola grupo:
>
> Estoy intentando hacer un gráfico automático a través de VBA, grabo como lo
> hago manualmente, pero cuando intento reproducir lo que he hecho (la idea es
> que el rango cambie), no funciona.
>
> Alguien tiene un código de ejemplo para este problema?.
>
> Por otro lado, el archivo contiene una base de datos de más o menos 5000
> registros que mes a mes aumenta en un 20%, además que se hace pesado el libro
> de Excel, se corre el riesgo que su pueda alterar la información. Cómo puedo
> que Excel tome la información directamente de Access para sacar la base de
> datos del archivo y pueda consultar de manera "automática" la información y
> gráfique lo que he consultado.
>
> Gracias por sus comentarios,
>
> Bart Max

Hola :)

si por la << la idea es que el rango cambie >> imagino que te referiras
a crear un grafico el cual añada datos al grafico cada vez que se
inserten de nuevos en la hoja ¿?

Si es asi tendras que definir nombre para crear rangos dinamicos y hacer
el grafico dinamico: [todo esto a suposicion ya que faltan detalles
varios???]


Si tenemos por ejemplo Columna A Fechas y columna B Numeros ,
Definimos nombre y lo llamas Fechas [o como quieras] :

ÞSREF(Hoja2!$A$1;1;;CONTARA(Hoja2!$A:$A)-1;1)

y luego defines nombre para la columna B:

ÞSREF(Hoja2!$B$2;;;CONTARA(Hoja2!$B:$B)-1;1)

y ya creas el grafico con el asistente, y con los rangos dinamicos con
nombres que se han creado, los pones en el segundo paso > pestaña serie
donde dice valores:


=Hoja2!Numeros

y donde dice eje de categorias x :

=Hoja2!Fechas

Siguiente hasta finalizar .


Si quieres hacerlo todo mediante codigo : [quedaria algo asi , creandote
un grafico por defecto, si tienes por defecto graficos columnas o el que
tengas por defecto]

Sub MyGrafico()


Dim grafico As Chart
Set grafico = Charts.Add

With ActiveWorkbook.Names

..Add Name:="Temperaturas", RefersToR1C1:= _
"=OFFSET(Hoja2!R2C2,,,COUNTA(Hoja2!C2)-1,1)"
..Add Name:="Fechas", RefersToR1C1:= _
"=OFFSET(Hoja2!R1C1,1,,COUNTA(Hoja2!C1)-1,1)"
End With

grafico.SetSourceData Source:=Sheets("Hoja2").Range("A1:B4")

With ActiveChart.SeriesCollection(1)

..XValues = "=graficos.xls!Fechas"
..Values = "=graficos.xls!Temperaturas"
End With

ActiveChart.Location Where:=xlLocationAsNewSheet
With ActiveChart
.HasAxis(xlCategory, xlPrimary) = True
.HasAxis(xlValue, xlPrimary) = True
.Axes(xlCategory, xlPrimary).CategoryType = xlAutomatic
End With

Sheets("Hoja2").Select
End Sub

En cuanto a la segunda consulta :

Puedes Extraer solo los datos de Access aquellos necesarios para el
grafico y realizar tambien consultas y demas desde :

Datos > obtener datos externos > nueva consulta de bases de datos, y ya
sigues el asistente para traerte aquellos datos que necesites para graficar.

Comentanos ok? :)

Saludos
Monica




Estado: A la Espera By Fermu

Tic-Tac-Tic-Tac...

Now We are free [Enya]

www.fermu.com



Anotacion: Si por los foros veis Spam masivo sobre temas que nada tienen
que ver con el foro en cuestion,
Deciros que es un << Troll/s >> que unas veces usurpan el nombre e
identidad de gente profesional en la materia,
y otras veces usurpan el nombre e identidad de aquel o aquellos que
contestan a su Spam, su verdadero nombre es:

Pablito "Alias el Cuervo" y Compañia [payasos de circo ]

Lo mejor que podeis hacer, es o bien ignorarlos como si no existieran o
hacer seguimiento de las NEws de microsoft,

a traves de por ejemplo entre otros:

Outloock Express o Mesnews [con opcion a suprimirlos ]

Y Si utilizais el Thunderbird podeis utilizardo como Separador de hilos
y queda muy mono :-))))









Respuesta Responder a este mensaje
#4 Bart
20/04/2007 - 02:30 | Informe spam
I'm sorry o debería decir "Burry", por la emoción al ver que había encontrado
la solución al problema que me tenía estresado no vi la firma, en todo caso
nuevamente muchas gracias Monica por la Súper ayuda. Ya presente el trabajo
y quedo de maravilla. Te debo una AMIGUITA !!!!

Saludos,

Bart Max

"Xavier Budet Graco" escribió:

Lo de llamar amiguito a Mónica... ¿Qué no lees hasta el final?

Saludos,

Xavier

Quitar MAC para contestar. Gracias.

"Bart" escribió en el mensaje news:
> Gracias amiguito Tux, esto era lo que estaba buscando.
>
> Saludos,
>
> Bart
>
> "Tux" escribió:
>
>> Bart escribió:
>> > Hola grupo:
>> >
>> > Estoy intentando hacer un gráfico automático a través de VBA, grabo como lo
>> > hago manualmente, pero cuando intento reproducir lo que he hecho (la idea es
>> > que el rango cambie), no funciona.
>> >
>> > Alguien tiene un código de ejemplo para este problema?.
>> >
>> > Por otro lado, el archivo contiene una base de datos de más o menos 5000
>> > registros que mes a mes aumenta en un 20%, además que se hace pesado el libro
>> > de Excel, se corre el riesgo que su pueda alterar la información. Cómo puedo
>> > que Excel tome la información directamente de Access para sacar la base de
>> > datos del archivo y pueda consultar de manera "automática" la información y
>> > gráfique lo que he consultado.
>> >
>> > Gracias por sus comentarios,
>> >
>> > Bart Max
>>
>> Hola :)
>>
>> si por la << la idea es que el rango cambie >> imagino que te referiras
>> a crear un grafico el cual añada datos al grafico cada vez que se
>> inserten de nuevos en la hoja ¿?
>>
>> Si es asi tendras que definir nombre para crear rangos dinamicos y hacer
>> el grafico dinamico: [todo esto a suposicion ya que faltan detalles
>> varios???]
>>
>>
>> Si tenemos por ejemplo Columna A Fechas y columna B Numeros ,
>> Definimos nombre y lo llamas Fechas [o como quieras] :
>>
>> ÞSREF(Hoja2!$A$1;1;;CONTARA(Hoja2!$A:$A)-1;1)
>>
>> y luego defines nombre para la columna B:
>>
>> ÞSREF(Hoja2!$B$2;;;CONTARA(Hoja2!$B:$B)-1;1)
>>
>> y ya creas el grafico con el asistente, y con los rangos dinamicos con
>> nombres que se han creado, los pones en el segundo paso > pestaña serie
>> donde dice valores:
>>
>>
>> =Hoja2!Numeros
>>
>> y donde dice eje de categorias x :
>>
>> =Hoja2!Fechas
>>
>> Siguiente hasta finalizar .
>>
>>
>> Si quieres hacerlo todo mediante codigo : [quedaria algo asi , creandote
>> un grafico por defecto, si tienes por defecto graficos columnas o el que
>> tengas por defecto]
>>
>> Sub MyGrafico()
>>
>>
>> Dim grafico As Chart
>> Set grafico = Charts.Add
>>
>> With ActiveWorkbook.Names
>>
>> ..Add Name:="Temperaturas", RefersToR1C1:= _
>> "=OFFSET(Hoja2!R2C2,,,COUNTA(Hoja2!C2)-1,1)"
>> ..Add Name:="Fechas", RefersToR1C1:= _
>> "=OFFSET(Hoja2!R1C1,1,,COUNTA(Hoja2!C1)-1,1)"
>> End With
>>
>> grafico.SetSourceData Source:=Sheets("Hoja2").Range("A1:B4")
>>
>> With ActiveChart.SeriesCollection(1)
>>
>> ..XValues = "=graficos.xls!Fechas"
>> ..Values = "=graficos.xls!Temperaturas"
>> End With
>>
>> ActiveChart.Location Where:=xlLocationAsNewSheet
>> With ActiveChart
>> .HasAxis(xlCategory, xlPrimary) = True
>> .HasAxis(xlValue, xlPrimary) = True
>> .Axes(xlCategory, xlPrimary).CategoryType = xlAutomatic
>> End With
>>
>> Sheets("Hoja2").Select
>> End Sub
>>
>> En cuanto a la segunda consulta :
>>
>> Puedes Extraer solo los datos de Access aquellos necesarios para el
>> grafico y realizar tambien consultas y demas desde :
>>
>> Datos > obtener datos externos > nueva consulta de bases de datos, y ya
>> sigues el asistente para traerte aquellos datos que necesites para graficar.
>>
>> Comentanos ok? :)
>>
>> Saludos
>> Monica
>>
>>
>>
>>
>> Estado: A la Espera By Fermu
>>
>> Tic-Tac-Tic-Tac...
>>
>> Now We are free [Enya]
>>
>> www.fermu.com
>>
>>
>>
>> Anotacion: Si por los foros veis Spam masivo sobre temas que nada tienen
>> que ver con el foro en cuestion,
>> Deciros que es un << Troll/s >> que unas veces usurpan el nombre e
>> identidad de gente profesional en la materia,
>> y otras veces usurpan el nombre e identidad de aquel o aquellos que
>> contestan a su Spam, su verdadero nombre es:
>>
>> Pablito "Alias el Cuervo" y Compañia [payasos de circo ]
>>
>> Lo mejor que podeis hacer, es o bien ignorarlos como si no existieran o
>> hacer seguimiento de las NEws de microsoft,
>>
>> a traves de por ejemplo entre otros:
>>
>> Outloock Express o Mesnews [con opcion a suprimirlos ]
>>
>> Y Si utilizais el Thunderbird podeis utilizardo como Separador de hilos
>> y queda muy mono :-))))
>>
>>
>>
>>
>>
>>
>>
>>
>>

Respuesta Responder a este mensaje
#5 Tux
20/04/2007 - 09:58 | Informe spam
Bart escribió:
I'm sorry o debería decir "Burry", por la emoción al ver que había encontrado
la solución al problema que me tenía estresado no vi la firma, en todo caso
nuevamente muchas gracias Monica por la Súper ayuda. Ya presente el trabajo
y quedo de maravilla. Te debo una AMIGUITA !!!!

Saludos,

Bart Max

"Xavier Budet Graco" escribió:

Lo de llamar amiguito a Mónica... ¿Qué no lees hasta el final?

Saludos,

Xavier

Quitar MAC para contestar. Gracias.






:))) !!!

¡A mandar !!! :-P


Y Os guiño un ojico a ambos ;) ;) !!!

Saludos!!
Monica



Estado: A la Espera By Fermu

Tic-Tac-Tic-Tac...

Now We are free [Enya]

www.fermu.com



Anotacion: Si por los foros veis Spam masivo sobre temas que nada tienen
que ver con el foro en cuestion,
Deciros que es un << Troll/s >> que unas veces usurpan el nombre e
identidad de gente profesional en la materia,
y otras veces usurpan el nombre e identidad de aquel o aquellos que
contestan a su Spam, su verdadero nombre es:

Pablito "Alias el Cuervo" y Compañia [payasos de circo ]

Lo mejor que podeis hacer, es o bien ignorarlos como si no existieran o
hacer seguimiento de las NEws de microsoft,

a traves de por ejemplo entre otros:

Outloock Express o Mesnews [con opcion a suprimirlos ]

Y Si utilizais el Thunderbird podeis utilizardo como Separador de hilos
y queda muy mono :-))))
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida