Grafico de tabla

06/01/2005 - 12:30 por martin | Informe spam
Perdon, puse mal el mensaje

Buen dia de Magos de Oriente a todos:

Necesito ayuda para hacer los graficos de una tabla. La tabla tiene 20
columnas y 95 filas, aunque estas iran aumentando al paso de los dias. La
columna a es la fecha del dia dia por dia (excepto domingos), las celdas
b1, c1, d1, y siguientes hasta 20 son nombres (de representantes en este
caso). Lo que queda en el cuerpo de la tabla es el volumen de ventas dia
por dia de cada uno. Quiero hacer un grafico de cada uno de ellos que se
actualice automaticamente al introducir los datos correspondientes de cada
dia.
De momento selecciono la columna fecha y la del que quiero graficar y
pulso f11. Obtengo en el acto el grafico que quiero, pero al actualizar los
datos no se actualiza y me gustaria no tener que crearlo cada vez.

Puede ayudarme alguien?. Gracias por anticipado.

Preguntas similare

Leer las respuestas

#6 KL
06/01/2005 - 19:47 | Informe spam
martin,

A ver este. Supongo q no tienes mas graficos en el fichero q los 20 q
corresponden a los vendedores, si no, tendras q modificar el codigo para
excluir los q no deben actualizarse.

Saludos,
KL

'--Inicio Codigo
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Hoja As Worksheet
Dim Rng As Range
Dim nGrfs As Integer

With ThisWorkbook
Set Hoja = .Worksheets("Hoja1")
Set Rng = Intersect(Hoja.UsedRange, Hoja.Range("A:U"))
If Not Rng Is Nothing Then
If .Charts.Count <= Rng.Columns.Count - 1 Then
nGrfs = .Charts.Count
Else
nGrfs = Rng.Columns.Count - 1
End If
For i = 1 To nGrfs
With Charts(i).SeriesCollection(1)
.XValues = Rng.Columns(1)
.Values = Rng.Columns(1 + i)
.Name = Rng.Columns(1 + i).Cells(1, 1)
End With
Next i
End If
End With
End Sub
'--Fin Codigo


"KL" wrote in message
news:%
martin,

Ya me preguntaba yo como ibas a distinguir 20 lineas con 95 puntos cada en
un grafico porque te habia entendido asi. Bueno dame unos 5 min y te
escribo otro codigo.

Saludos,
KL


"martin" wrote in message
news:
Gracias Kl por tu atencion,

En efecto, era el acento de la palabra grafico. Ahora funciona, pero no
solo se actualiza el grafico de los datos de la columna seleccionada; Se
actualiza el grafico 1, pero lo hace con todas las series en el mismo
chart, de modo que sale un lio de lineas. Yo lo que queria era tener una
pestaña-grafico para cada columna que se actualizase cada vez que
añadiera los datos de cada vendedor a la tabla cada dia, y tener un
grafico de cada vendedoralguna ayuda?

saludos y gracias otra vez,

martin




martin,

Lo primero a comprobar es el nombre del grafico: mira a ver si el tuyo
se llama "grafico1" y no "grafico1" o "grafico 1" o "grafico 1" ,
etc. Mejor, copia el nombre de la hoja del grafico al codigo. Entiendo
q tambien queda confirmado q el grafico es una hoja en si y no un
objeto dentro de una hoja de calculo, si no, este podria ser el
problema.

Saludos,
Kl

"martin" wrote in message
news:
Gracias KL, pero no funciona. Lo hago, y supongo que esta bien,
puesto que la hoja se llama hoja1 y el grafico, grafico1, pero doy
f11, tengo el grafico y al añadir datos del dia en la siguiente fila
sale:

Se ha producido el error 9 en tiempo de ejecucion

Subindice fuera del intervalo

Al depurar se para en:

Set Graf = .Charts("Grafico1")


¿cual es el problema'

Gracias otra vez







Private Sub Worksheet_Change(ByVal Target As Range)
Dim Hoja As Worksheet
Dim Rng As Range
Dim Graf As Chart

With ThisWorkbook
Set Hoja = .Worksheets("Hoja1")
Set Graf = .Charts("Grafico1")
Set Rng = Intersect(Hoja.UsedRange, Hoja.Range("A:U"))
End With

If Not Rng Is Nothing Then Graf.SetSourceData Source:=Rng
End Sub














Respuesta Responder a este mensaje
#7 martin
06/01/2005 - 20:07 | Informe spam
MIL GRACIAS KL, este funciona maravillosammmmente. Si amplio la lista de
vendedores, supongo que solo deberia modificar el rango ("A:U") hasta la
letra conveniente ¿no?,


Gracias otra vez. Feliz dia.


Martin



martin,

A ver este. Supongo q no tienes mas graficos en el fichero q los 20 q
corresponden a los vendedores, si no, tendras q modificar el codigo
para excluir los q no deben actualizarse.

Saludos,
KL

'--Inicio Codigo
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Hoja As Worksheet
Dim Rng As Range
Dim nGrfs As Integer

With ThisWorkbook
Set Hoja = .Worksheets("Hoja1")
Set Rng = Intersect(Hoja.UsedRange, Hoja.Range("A:U"))
If Not Rng Is Nothing Then
If .Charts.Count <= Rng.Columns.Count - 1 Then
nGrfs = .Charts.Count
Else
nGrfs = Rng.Columns.Count - 1
End If
For i = 1 To nGrfs
With Charts(i).SeriesCollection(1)
.XValues = Rng.Columns(1)
.Values = Rng.Columns(1 + i)
.Name = Rng.Columns(1 + i).Cells(1, 1)
End With
Next i
End If
End With
End Sub
'--Fin Codigo


"KL" wrote in message
news:%
martin,

Ya me preguntaba yo como ibas a distinguir 20 lineas con 95 puntos
cada en un grafico porque te habia entendido asi. Bueno dame unos 5
min y te escribo otro codigo.

Saludos,
KL


"martin" wrote in message
news:
Gracias Kl por tu atencion,

En efecto, era el acento de la palabra grafico. Ahora funciona, pero
no solo se actualiza el grafico de los datos de la columna
seleccionada; Se actualiza el grafico 1, pero lo hace con todas las
series en el mismo chart, de modo que sale un lio de lineas. Yo lo
que queria era tener una pestaña-grafico para cada columna que se
actualizase cada vez que añadiera los datos de cada vendedor a la
tabla cada dia, y tener un grafico de cada vendedoralguna ayuda?

saludos y gracias otra vez,

martin




martin,

Lo primero a comprobar es el nombre del grafico: mira a ver si el
tuyo se llama "grafico1" y no "grafico1" o "grafico 1" o "grafico
1" , etc. Mejor, copia el nombre de la hoja del grafico al codigo.
Entiendo q tambien queda confirmado q el grafico es una hoja en si
y no un objeto dentro de una hoja de calculo, si no, este podria
ser el problema.

Saludos,
Kl

"martin" wrote in message
news:
Gracias KL, pero no funciona. Lo hago, y supongo que esta bien,
puesto que la hoja se llama hoja1 y el grafico, grafico1, pero doy
f11, tengo el grafico y al añadir datos del dia en la siguiente
fila sale:

Se ha producido el error 9 en tiempo de ejecucion

Subindice fuera del intervalo

Al depurar se para en:

Set Graf = .Charts("Grafico1")


¿cual es el problema'

Gracias otra vez







Private Sub Worksheet_Change(ByVal Target As Range)
Dim Hoja As Worksheet
Dim Rng As Range
Dim Graf As Chart

With ThisWorkbook
Set Hoja = .Worksheets("Hoja1")
Set Graf = .Charts("Grafico1")
Set Rng = Intersect(Hoja.UsedRange, Hoja.Range("A:U"))
End With

If Not Rng Is Nothing Then Graf.SetSourceData Source:=Rng
End Sub



















Respuesta Responder a este mensaje
#8 KL
06/01/2005 - 20:30 | Informe spam
"martin"...

Si amplio la lista de
vendedores, supongo que solo deberia modificar el rango ("A:U") hasta la
letra conveniente ¿no?,



Si. Y tambien crear mas graficos :-)

KL
Respuesta Responder a este mensaje
#9 martin
07/01/2005 - 01:31 | Informe spam
Muchisimas gracias, KL. Abusando de tu amabilidad, voy a plantearte una
ultima duda: como los nombres estan en la primera fila, al moverme en la
hoja hacia abajo, los pierdo y al subir no veo los valores de la ultima
fila de abajo. Intente pegar la fila inicial hacia el centro-final de la
tabla para tener a la vista los nombres sin tener que subir al inicio, pero
entonces el grafico me grafica esas celdas con los nombres con valor cero.
¿hay alguna forma de visualizar esa fila de nombres mas abajo sin que
interfiera en la generacion del grafico?, ¿una caja de texto tal vez?, de
nuevo gracias.


Saludos. Martin


"martin"...

Si amplio la lista de
vendedores, supongo que solo deberia modificar el rango ("A:U") hasta la
letra conveniente ¿no?,



Si. Y tambien crear mas graficos :-)

KL


Respuesta Responder a este mensaje
#10 KL
07/01/2005 - 01:37 | Informe spam
Martin,

Esto si q tiene facil solucion.

1) selecciona la celda [B2]
2) ve al menu Ventana>Inmobilizar Paneles
3) disfruta

Saludos,
KL

"martin" wrote in message
news:
Muchisimas gracias, KL. Abusando de tu amabilidad, voy a plantearte una
ultima duda: como los nombres estan en la primera fila, al moverme en la
hoja hacia abajo, los pierdo y al subir no veo los valores de la ultima
fila de abajo. Intente pegar la fila inicial hacia el centro-final de la
tabla para tener a la vista los nombres sin tener que subir al inicio,
pero
entonces el grafico me grafica esas celdas con los nombres con valor cero.
¿hay alguna forma de visualizar esa fila de nombres mas abajo sin que
interfiera en la generacion del grafico?, ¿una caja de texto tal vez?, de
nuevo gracias.


Saludos. Martin


"martin"...

Si amplio la lista de
vendedores, supongo que solo deberia modificar el rango ("A:U") hasta la
letra conveniente ¿no?,



Si. Y tambien crear mas graficos :-)

KL





Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida