Graficos

11/01/2008 - 06:47 por juankbm.mdd | Informe spam
Hola a todos feliz año 2008, tengo una data de resultados de
laboratotio en las columnas las mallas de tamizado y en las filas el
sondaje quisiera generar graficos para cada una de ellas pero son
muchas y estra haciendola una a una es un problema, quisiera
generarla
automaticamente en hojas diferentes para poder imprimirlas, desde ya
gracias por su ayuda.
De esta manera estan dispuestas los datos a graficar.

Sondaje 3" 2 1/2" 2" 1 1/2" 1" 3/4" 1/2"
3/8" N° 4 N° 10 N° 20 N° 40 N
° 100 N° 200
CA-1 100 100 100 100 100 100 100
100 100 99 96 88 70 59
CA-1 100 100 100 100 100 100 100
100 100 99 96 88 70 61
CA-1 100 100 100 100 100 100 100
100 100 99 96 87 71 61
CA-2 100 100 100 100 100 100 100
100 100 99 96 87 66 55
CA-2 100 100 100 100 100 100 100
100 100 85 70 57 41 33
CA-2 100 100 100 100 100 100 100
100 100 99 95 85 63 51
CA-3 100 100 100 100 100 100 100
100 100 100 99 97 80 66
CA-3 100 100 100 100 100 100 100
100 100 100 100 98 91 84
CA-9 100 100 100 100 100 100 100
100 100 99 94 86 72 63
CA-9 100 100 100 100 100 100 99
98 88 87 84 77 58 47
CA-9 100 100 100 100 100 100 100
100 100 99 96 89 76 68
CA-9 100 100 100 100 100 100 100
100 99 97 95 93 79 60
CA-9 100 100 100 100 100 100 100
100 98 94 84 65 31 18
.
.
.
.
.
.
Cada fila es una grafica, y la cantidad de filas puede ser numerosa


Saludos
Juank

Preguntas similare

Leer las respuestas

#1 Juan M
11/01/2008 - 23:07 | Informe spam
Hola juank,

Suponiendo que en la fila 1 tienes los titulos de las series
y a partir de la fila 2 los datos, en la columna A tienes los nombres de las
series una primera aproximación a la respuesta podría ser el código que
expongo al final

El primer procedimiento consiste en leer los rangos donde están los datos de
cada gráfica y el segundo es el que genera la gráfica en sí.
Este último procedimiento puedes adaptarlo a tu gusto grabando una macro
donde defines cada aspecto del gáfico que quieras modificar seleccionando
sólo una fila para hacer la gráfica y posterior mente adaptarlo al esquema
que te propongo.

Un saludo,
Juan

Inicio Codigo
Sub Principal()
Dim i As Long
Application.ScreenUpdating = False
With Worksheets("Hoja1")
i = 2
Do While .Range("A" & i) <> ""
GeneraGrafico .Range("b1:o1"), .Range("b" & i & ":o" & i)
i = i + 1
Loop
End With
Application.ScreenUpdating = True
End Sub

Sub GeneraGrafico(Xdata As Range, Ydata As Range)

Charts.Add
With ActiveChart
.ChartType = xlXYScatterSmoothNoMarkers
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = Xdata.Address
.SeriesCollection(1).Values = Ydata
.SeriesCollection(1).Name = Ydata.Resize(1, 1).Offset(, -1)
.Location Where:=xlLocationAsNewSheet
.HasTitle = True
.ChartTitle.Characters.Text = Ydata.Resize(1, 1).Offset(, -1)
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
.HasLegend = False
End With
End Sub
Fin codigo


escribió
Hola a todos feliz año 2008, tengo una data de resultados de
laboratotio en las columnas las mallas de tamizado y en las filas el
sondaje quisiera generar graficos para cada una de ellas pero son


muchas y estra haciendola una a una es un problema, quisiera
generarla
automaticamente en hojas diferentes para poder imprimirlas, desde ya
gracias por su ayuda.
De esta manera estan dispuestas los datos a graficar.

Sondaje 3" 2 1/2" 2" 1 1/2" 1" 3/4" 1/2"
3/8" N° 4 N° 10 N° 20 N° 40 N
° 100 N° 200
CA-1 100 100 100 100 100 100 100
100 100 99 96 88 70 59
CA-1 100 100 100 100 100 100 100
100 100 99 96 88 70 61
CA-1 100 100 100 100 100 100 100
100 100 99 96 87 71 61
CA-2 100 100 100 100 100 100 100
100 100 99 96 87 66 55
CA-2 100 100 100 100 100 100 100
100 100 85 70 57 41 33
CA-2 100 100 100 100 100 100 100
100 100 99 95 85 63 51
CA-3 100 100 100 100 100 100 100
100 100 100 99 97 80 66
CA-3 100 100 100 100 100 100 100
100 100 100 100 98 91 84
CA-9 100 100 100 100 100 100 100
100 100 99 94 86 72 63
CA-9 100 100 100 100 100 100 99
98 88 87 84 77 58 47
CA-9 100 100 100 100 100 100 100
100 100 99 96 89 76 68
CA-9 100 100 100 100 100 100 100
100 99 97 95 93 79 60
CA-9 100 100 100 100 100 100 100
100 98 94 84 65 31 18
.
.
.
.
.
.
Cada fila es una grafica, y la cantidad de filas puede ser numerosa


Saludos
Juank
Respuesta Responder a este mensaje
#2 juankbm.mdd
17/01/2008 - 03:31 | Informe spam
On 11 ene, 17:07, "Juan M" wrote:
Hola juank,

Suponiendo que en la fila 1 tienes los titulos de las series
y a partir de la fila 2 los datos, en la columna A tienes los nombres de las
series una primera aproximación a la respuesta podría ser el código que
expongo al final

El primer procedimiento consiste en leer los rangos donde están los datos de
cada gráfica y el segundo es el que genera la gráfica en sí.
Este último procedimiento puedes adaptarlo a tu gusto grabando una macro
donde defines cada aspecto del gáfico que quieras modificar seleccionando
sólo una fila para hacer la gráfica y posterior mente adaptarlo al esquema
que te propongo.

Un saludo,
Juan

Inicio Codigo
Sub Principal()
    Dim i As Long
    Application.ScreenUpdating = False
    With Worksheets("Hoja1")
        i = 2
        Do While .Range("A" & i) <> ""
            GeneraGrafico .Range("b1:o1"), .Range("b" & i & ":o" & i)
            i = i + 1
        Loop
    End With
Application.ScreenUpdating = True
End Sub

Sub GeneraGrafico(Xdata As Range, Ydata As Range)

    Charts.Add
    With ActiveChart
        .ChartType = xlXYScatterSmoothNoMarkers
        .SeriesCollection.NewSeries
        .SeriesCollection(1).XValues = Xdata.Address
        .SeriesCollection(1).Values = Ydata
        .SeriesCollection(1).Name = Ydata.Resize(1, 1).Offset(, -1)
        .Location Where:=xlLocationAsNewSheet
        .HasTitle = True
        .ChartTitle.Characters.Text = Ydata.Resize(1, 1).Offset(, -1)
        .Axes(xlCategory, xlPrimary).HasTitle = False
        .Axes(xlValue, xlPrimary).HasTitle = False
        .HasLegend = False
    End With
End Sub
Fin codigo>
escribió> Hola a todos feliz año 2008, tengo una data de resultados de
> laboratotio en las columnas las mallas de tamizado y en las filas el
> sondaje quisiera generar graficos para cada una de ellas pero son

muchas y estra haciendola una a una es un problema, quisiera
generarla
automaticamente en hojas diferentes para poder imprimirlas, desde ya
gracias por su ayuda.
De esta manera estan dispuestas los datos a graficar.

Sondaje 3" 2 1/2"     2" 1 1/2"     1" 3/4"       1/2"
3/8"       N° 4   N° 10  N° 20  N° 40  N
° 100  N° 200
CA-1    100     100     100     100     100     100     100
100     100     99      96      88      70      59
CA-1    100     100     100     100     100     100     100
100     100     99      96      88      70      61
CA-1    100     100     100     100     100     100     100
100     100     99      96      87      71      61
CA-2    100     100     100     100     100     100     100
100     100     99      96      87      66      55
CA-2    100     100     100     100     100     100     100
100     100     85      70      57      41      33
CA-2    100     100     100     100     100     100     100
100     100     99      95      85      63      51
CA-3    100     100     100     100     100     100     100
100     100     100     99      97      80      66
CA-3    100     100     100     100     100     100     100
100     100     100     100     98      91      84
CA-9    100     100     100     100     100     100     100
100     100     99      94      86      72      63
CA-9    100     100     100     100     100     100     99
98      88      87      84      77      58      47
CA-9    100     100     100     100     100     100     100
100     100     99      96      89      76      68
CA-9    100     100     100     100     100     100     100
100     99      97      95      93      79      60
CA-9    100     100     100     100     100     100     100
100     98      94      84      65      31      18
.
.
.
.
.
.
Cada fila es una grafica, y la cantidad de filas puede ser numerosa

Saludos
Juank



Juan M
Gracias por tu respuesta pero e estado tratando de usar lo que me
enviaste y no me funciona por nada no se que estoy haciendo mal no me
crea todas los graficos en un listado de 86 lineas que tengo y deveria
generarme las 86 graficas pero nada.me da mucha verguenza
no poder usar lo que me mandaste pero mas puede mi inquietud y por eso
recurro nuevamente a sus lecciones.

Saludos
Juank
Respuesta Responder a este mensaje
#3 Juan M
18/01/2008 - 20:18 | Informe spam
Hola Juank,

Pues no se por dónde empezar.

Primero, en una hoja llamada Hoja1 distribuímos los datos de la siguiente
forma:
En la fila en el rango B1:O1 escribimos el nombre de las series (3",2 1/2"
2" 1 1/2" 1" 3/4" 1)
En el rango A1:O2 escribimos el nombre (CA-1) y los valores (100, 100,
.)
y en las siguientes filas el resto de valores para cada gráfico.

A continuación vamos a poner el código.
Pulsa Alt+F11 que abre el editor de vba.
Ahora en el menu>insertar seleccionamos Modulo.
Escribimos el código propuesto en el mensaje anterior (ver el final) o sigue
el enlace:

http://tinyurl.com/yv2mn4

Ahora en la Hoja1 pulsamos Alt+F8 nos muestra el dialogo de elegir macro y
seleccionamos Principal.

y si no hemos hecho nada mal debería generar tantas hojas como filas de
series tengas.

Si no funciona comenta que es lo que has hecho, que mensajes de error te han
dado, los arreglos de la hoja, versión de excel, toda aquella información
que nos de pistas que es lo que pasa.

Un saludo,
Juan

PD: no debe darte vergüenza, peor será no resolver tu problema. Pregunta
todo lo que necesites.


Inicio Codigo
Sub Principal()
Dim i As Long
Application.ScreenUpdating = False
With Worksheets("Hoja1")
i = 2
Do While .Range("A" & i) <> ""
GeneraGrafico .Range("b1:o1"), .Range("b" & i & ":o" & i)
i = i + 1
Loop
End With
Application.ScreenUpdating = True
End Sub

Sub GeneraGrafico(Xdata As Range, Ydata As Range)

Charts.Add
With ActiveChart
.ChartType = xlXYScatterSmoothNoMarkers
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = Xdata.Address
.SeriesCollection(1).Values = Ydata
.SeriesCollection(1).Name = Ydata.Resize(1, 1).Offset(, -1)
.Location Where:=xlLocationAsNewSheet
.HasTitle = True
.ChartTitle.Characters.Text = Ydata.Resize(1, 1).Offset(, -1)
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
.HasLegend = False
End With
End Sub
Fin codigo>
Respuesta Responder a este mensaje
#4 juankbm.mdd
20/01/2008 - 20:35 | Informe spam
On 18 ene, 14:18, "Juan M" wrote:
Hola Juank,

Pues no se por dónde empezar.

Primero, en una hoja llamada Hoja1 distribuímos los datos de la siguiente
forma:
En la fila en el rango B1:O1 escribimos el nombre de las series (3",2 1/2"
2" 1 1/2" 1" 3/4" 1)
En el rango A1:O2 escribimos el nombre (CA-1) y los valores (100, 100,
.)
y en las siguientes filas el resto de valores para cada gráfico.

A continuación vamos a poner el código.
Pulsa Alt+F11 que abre el editor de vba.
Ahora en el menu>insertar seleccionamos Modulo.
Escribimos el código propuesto en el mensaje anterior (ver el final) o sigue
el enlace:

http://tinyurl.com/yv2mn4

Ahora en la Hoja1 pulsamos Alt+F8 nos muestra el dialogo de elegir macro y
seleccionamos Principal.

y si no hemos hecho nada mal debería generar tantas hojas como filas de
series tengas.

Si no funciona comenta que es lo que has hecho, que mensajes de error te han
dado, los arreglos de la hoja, versión de excel, toda aquella información
que nos de pistas que es lo que pasa.

Un saludo,
Juan

PD: no debe darte vergüenza, peor será no resolver tu problema. Pregunta
todo lo que necesites.





> Inicio Codigo
> Sub Principal()
> Dim i As Long
> Application.ScreenUpdating = False
> With Worksheets("Hoja1")
> i = 2
> Do While .Range("A" & i) <> ""
> GeneraGrafico .Range("b1:o1"), .Range("b" & i & ":o" & i)
> i = i + 1
> Loop
> End With
> Application.ScreenUpdating = True
> End Sub

> Sub GeneraGrafico(Xdata As Range, Ydata As Range)

> Charts.Add
> With ActiveChart
> .ChartType = xlXYScatterSmoothNoMarkers
> .SeriesCollection.NewSeries
> .SeriesCollection(1).XValues = Xdata.Address
> .SeriesCollection(1).Values = Ydata
> .SeriesCollection(1).Name = Ydata.Resize(1, 1).Offset(, -1)
> .Location Where:=xlLocationAsNewSheet
> .HasTitle = True
> .ChartTitle.Characters.Text = Ydata.Resize(1, 1).Offset(, -1)
> .Axes(xlCategory, xlPrimary).HasTitle = False
> .Axes(xlValue, xlPrimary).HasTitle = False
> .HasLegend = False
> End With
> End Sub
> Fin codigo=- Ocultar texto de la cita -

- Mostrar texto de la cita -



Juan M
Todo esta excelente si lo explicaste como para estudiante de primaria,
esta perfecto, una consulta mas como hago ahora para poderle dar
formato al grafico fondo y los valores de la mayas (3",
2"N200) que son ejes verticales para cada caso como las
puedo insertar, desde ya gracias nuevamente.
Si puedes mandame tu mail para anexarte el formato de como deberia
quedar.
Saludos
JC
Respuesta Responder a este mensaje
#5 Juan M
20/01/2008 - 22:42 | Informe spam
Hola Juank,

Para dar el formato que deseas a las gráficas pudes probar a grabar una
macro en donde modificas todos los parametros a tu gusto.

Para grabar la macro ve al menu herramientas>macro>grabar nueva macro.

Luego modifica el procedimiento generado para que pueda recibir los valores
según el procedimiento GeneraGrafico.

Si no lo consigues publica el código generado y vemos como modificarlo para
que se adecue a tus pretensiones.

Mi correo es el que aparece quitando el nospam.

Un saludo,
Juan
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida