GRÁFICOS DINÁMICOS

07/10/2003 - 12:56 por xuank | Informe spam
Estoy intentando usar nombres de rango dinámicos para hacer que un gráfico
represente automáticamente nuevos datos al ser agregados a su hoja, pero no
me sale.

He leido que hay que poner una fórmula parecida a la siguiente en la fórmula
SERIES:

asignando por ejemplo un nombre Fecha a la siguiente definición:

ÞSPLAZAMIENTO(Hoja1!$A$1;1;0;CONTARA($A:$A)-1)

¿Alguien me puede decir donde está el error?

Muchas gracias a tod@s

Preguntas similare

Leer las respuestas

#1 pepito
07/10/2003 - 19:21 | Informe spam
Te envío una rutina que utilizo. Tendrás que adaptarla.


Private Sub HacerGrafico(Libro)

Set ExcelLibroGrafico = LibroExcel(AplicacionExcel, _
Directorio & Libro & ".xls")

For Each objHoja In ExcelLibroGrafico.Worksheets

Modelo = objHoja.Name

Sheets(Modelo).Select

ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activate
UltimaFilaHoja = ActiveCell.Row
Rango = "A2:L" & Trim$(Str(UltimaFilaHoja))

Sheets(Modelo).ChartObjects.Delete ' borro todos los gráficos de la
hoja
Set Grafico = Sheets(Modelo).ChartObjects.Add(250, 200, 600, 400)
Grafico.Chart.ChartWizard Source:=Worksheets(Modelo).Range(Rango), _
Gallery:=xlLine, PlotBy:=xlColumns, CategoryLabels:=1,
SeriesLabels:=1
Sheets(Modelo).ChartObjects(1).Left = 10
Sheets(Modelo).ChartObjects(1).Top = 60 + UltimaFilaHoja * 12
Grafico.Activate
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = Modelo
.SeriesCollection(1).Name = "=""Total"""
.SeriesCollection(2).Name = "=""Nombre1"""
.SeriesCollection(3).Name = "=""Nombre2"""
.SeriesCollection(4).Name = "=""Nombre3"""
.SeriesCollection(5).Name = "=""Nombre4"""
.SeriesCollection(6).Name = "=""Nombre5"""
.SeriesCollection(7).Name = "=""Nombre6"""
.SeriesCollection(8).Name = "=""Nombre7"""
.SeriesCollection(9).Name = "=""Nombre8"""
.SeriesCollection(10).Name = "=""Nombre9"""
.SeriesCollection(11).Name = "=""Nombre10"""
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Fechas"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Número de
documentos"
End With

ActiveChart.PlotArea.Select
With Selection.Border
.ColorIndex = 16
.Weight = xlThin
.LineStyle = xlContinuous
End With
With Selection.Interior
.ColorIndex = 2
.PatternColorIndex = 1
.Pattern = xlSolid
End With

' selecciono la celda a1 para quitar
' el foco del gráfico
Sheets(Modelo).Range("A1").Select

' MsgBox "La ventana activa es " & ActiveWindow.Caption & vbCrLf & _
"La hoja es " & Modelo

ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 1


Next


ExcelLibroGrafico.Save
ExcelLibroGrafico.Close

Set ExcelLibroGrafico = Nothing

End Sub



"xuank" escribió en el mensaje
news:fZwgb.146499$
Estoy intentando usar nombres de rango dinámicos para hacer que un gráfico
represente automáticamente nuevos datos al ser agregados a su hoja, pero


no
me sale.

He leido que hay que poner una fórmula parecida a la siguiente en la


fórmula
SERIES:

asignando por ejemplo un nombre Fecha a la siguiente definición:

ÞSPLAZAMIENTO(Hoja1!$A$1;1;0;CONTARA($A:$A)-1)

¿Alguien me puede decir donde está el error?

Muchas gracias a


Respuesta Responder a este mensaje
#2 Héctor Miguel
08/10/2003 - 07:15 | Informe spam
Hola, J.C.G.Alcazar !

... nombres ... dinamicos ... que un grafico represente automaticamente ... datos al ser agregados [...]
... hay que poner una formula ... en ... SERIES ... asignando p.e. un nombre Fecha a la siguiente definicion:
... ÞSPLAZAMIENTO(Hoja1!$A$1;1;0;CONTARA($A:$A)-1) ... donde esta el error?



==> no dices cual es el error [que 'obtienes'], pero supongo que sea el valor de error '#¿NOMBRE?'
debido a [que yo sepa] la funcion 'desplazamiento' =>NO 'existe'<= :((
la funcion que 'necesitas usar' [para Español] es: =DesRef(ref,filas,columnas,alto,ancho)
[en ingles es =OffSet(...] que 'sirve' para 'DESplazar una REFerencia' =>DesRef<
==> modifica la referencia [del nombre] en el campo 'Se refiere a...' [Insertar -> Nombre -> Definir...]
por la siguiente formula: ÞSREF(Hoja1!$A$1;1;;CONTARA(Hoja1!$A:$A)-1)
[supongo que tambien definiras nombre/s 'dinamico/s' para los valores que se van a graficar]
si el nombre ['Fecha'] sera el rango para el eje de categorias ['X'] podrias 'definir' [p.e.] 'Valor'
ÞSREF(Fecha;;1) =>'mismas filas' que Fecha pero una columna a la derecha<
==> Para usar este tipo de rangos 'dinámicos' en graficos, es necesario ingresarlos ...
EN LA BARRA DE FORMULAS [del grafico] seleccionando la serie de que se trate
Tomando en cuenta que la sintaxis [para la/s serie/s del grafico] es: =SERIES(Titulo;Rotulos;Valores;Orden)
en la barra de formulas [de la serie seleccionada ] deberas sustituir [p.e. el argumento 'Valores']
por el nombre del rango que creaste para ese fin. (p.e. =SERIES(xxx;xxx;Aquí_el_nombre;1)
[suponiendo que la serie seleccionada es la serie numero 1 del grafico.]
_______
Saludos,
Héctor.
MS-MVP
Respuesta Responder a este mensaje
#3 xuank
08/10/2003 - 11:00 | Informe spam
Gracias Hector.
en la ayuda). Ahora todo funciona correctamente. Por cierto lo de esta
función desplazamiento, es un error increible de este libro:

Microsoft Excel version 2002 "Running+".

estos de microsoft

"Héctor Miguel" escribió en el mensaje
news:
Hola, J.C.G.Alcazar !

> ... nombres ... dinamicos ... que un grafico represente automaticamente


... datos al ser agregados [...]
> ... hay que poner una formula ... en ... SERIES ... asignando p.e. un


nombre Fecha a la siguiente definicion:
> ... ÞSPLAZAMIENTO(Hoja1!$A$1;1;0;CONTARA($A:$A)-1) ... donde esta el


error?

==> no dices cual es el error [que 'obtienes'], pero supongo que sea el


valor de error '#¿NOMBRE?'
debido a [que yo sepa] la funcion 'desplazamiento' =>NO 'existe'<:((
la funcion que 'necesitas usar' [para Español] es:


=DesRef(ref,filas,columnas,alto,ancho)
[en ingles es =OffSet(...] que 'sirve' para 'DESplazar una


REFerencia' =>DesRef<>
==> modifica la referencia [del nombre] en el campo 'Se refiere a...'


[Insertar -> Nombre -> Definir...]
por la siguiente formula:


ÞSREF(Hoja1!$A$1;1;;CONTARA(Hoja1!$A:$A)-1)
[supongo que tambien definiras nombre/s 'dinamico/s' para los


valores que se van a graficar]
si el nombre ['Fecha'] sera el rango para el eje de categorias


['X'] podrias 'definir' [p.e.] 'Valor'
ÞSREF(Fecha;;1) =>'mismas filas' que Fecha pero una columna a


la derecha<>
==> Para usar este tipo de rangos 'dinámicos' en graficos, es necesario


ingresarlos ...
EN LA BARRA DE FORMULAS [del grafico] seleccionando la serie de


que se trate
Tomando en cuenta que la sintaxis [para la/s serie/s del grafico]


es: =SERIES(Titulo;Rotulos;Valores;Orden)
en la barra de formulas [de la serie seleccionada ] deberas


sustituir [p.e. el argumento 'Valores']
por el nombre del rango que creaste para ese fin. (p.e.


=SERIES(xxx;xxx;Aquí_el_nombre;1)
[suponiendo que la serie seleccionada es la serie numero 1 del


grafico.]
_______
Saludos,
Héctor.
MS-MVP


Respuesta Responder a este mensaje
#4 Héctor Miguel
09/10/2003 - 09:51 | Informe spam
Hola, J.C.Alcazar !

... lo de esta función desplazamiento, es un error increible de este libro:
Microsoft Excel version 2002 "Running+" ...estos de microsoft



==> 'sucede' [hasta] en las mejores familias ;)
[quizas] una 'retro-alimentacion' del 'control de calidad' en la informacion 'suministrada' [ISO xxxxx]

Saludos,
Héctor.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida