Autor Tema: Graficos con Excel desde VB 6.0  (Leído 9321 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Evonkc

  • PIC12
  • **
  • Mensajes: 50
Graficos con Excel desde VB 6.0
« en: 18 de Julio de 2013, 21:53:52 »
Saludos a todos..

Tengo un pequeño problema, Deseo Realizar con Vb una rutina que me permita hacer que cualquier Libro de Excel que contenga datos con indeterminadas Filas y Columnas, los importe a gráficos en una Sheets distinta.

Para ello he estado trabajando con el resultado de ya poder seleccionar el archivo por medio de Commondialog, sin embargo a continuación he copiado y pegado la linea de código de una macro de Excel en donde agregando una nueva hoja, seleccionando los datos y diseñando los gráficos; sin embargo este me arroja un error :huh:

Que me pueden aconsejar para poder solucionar esto, tambien dejo la programación.


Gracias  :mrgreen:


Código: [Seleccionar]
Private Sub Command1_Click()

With CommonDialog1
    'para abrir el archivo Excel
    .Filter = "archivo XLS|*.XLS|Todos los archivos|*.*"
    .DialogTitle = " Seleccionar el archivo XLS"
     .ShowOpen
     XLS = .FileName
End With
If XLS = "" Or XLS = "" Then
    Exit Sub
Else
    Call Diseñar_Graficos
End If
End Sub

Private Sub Diseñar_Graficos()
   
    Sheets.Add After:=Sheets(Sheets.Count)
    Range("C3").Select
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlLine
    ActiveSheet.Shapes("1 Gráfico").IncrementLeft -204.75
    ActiveSheet.Shapes("1 Gráfico").IncrementTop -60
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(1).Values = "=Hoja1!$C$2:$C$53"
    ActiveChart.SeriesCollection(1).XValues = "=Hoja1!$B$2:$B$53"
    Range("J3").Select
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlLine
    ActiveSheet.Shapes("2 Gráfico").IncrementLeft 216
    ActiveSheet.Shapes("2 Gráfico").IncrementTop -60
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(1).Values = "=Hoja1!$F$2:$F$53"
    ActiveChart.SeriesCollection(1).XValues = "=Hoja1!$B$2:$B$53"
   
End Sub


Desconectado gab163

  • PIC16
  • ***
  • Mensajes: 111
Re: Graficos con Excel desde VB 6.0
« Respuesta #1 en: 18 de Julio de 2013, 23:37:37 »
Realmente no he trabajado con esto pero creo que seria mas facil ademas de versatil si lo haces en una versión de VB mas reciente estan las express que son gratuitas ademas que ya los equipos nuevos no corren el VB 6, solo como comentario. Saludos

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Graficos con Excel desde VB 6.0
« Respuesta #2 en: 19 de Julio de 2013, 01:17:33 »
¿Cuál es el error?

Desconectado Evonkc

  • PIC12
  • **
  • Mensajes: 50
Re: Graficos con Excel desde VB 6.0
« Respuesta #3 en: 19 de Julio de 2013, 12:40:44 »
Saludos,

nocturno:
Error 1004 en tiempo de ejecución,
la descripción de esta dice: Error en el método 'Sheets' del objetivo '_Global'

Gab163, Gracias por la recomendacion  ;-)

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Graficos con Excel desde VB 6.0
« Respuesta #4 en: 19 de Julio de 2013, 13:55:48 »
Adjunta la hoja Excel para que pueda descargarla y echarle un vistazo a ver si puedo ayudarte.

Desconectado Evonkc

  • PIC12
  • **
  • Mensajes: 50
Re: Graficos con Excel desde VB 6.0
« Respuesta #5 en: 19 de Julio de 2013, 14:47:09 »
Adjuntado Nocturno


Se agradece la asistencia. Saludos  ((:-))

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Graficos con Excel desde VB 6.0
« Respuesta #6 en: 20 de Julio de 2013, 01:57:37 »
Tienes 4 macros, de las cuales me han funcionado 3 sin dar errores.
El único error está en la macro "graficos4", en la ínea
    ActiveSheet.Shapes("4 Gráfico").IncrementLeft

en la que únicamente falta el parámetro de cuánto quieres incrementar. Por ejemplo, poniendo esto
    ActiveSheet.Shapes("4 Gráfico").IncrementLeft 10

funciona perfectamente.

Desconectado Evonkc

  • PIC12
  • **
  • Mensajes: 50
Re: Graficos con Excel desde VB 6.0
« Respuesta #7 en: 23 de Julio de 2013, 13:31:50 »
Saludos,


Estuve un poco fuera de Internet por un tiempo, Sin Embargo gracias por la asistencia Nocturno.
Ahora Vamos al grano como dice el dermatologo, realice el cambio que me has recomendado Pero tengo que comentar que sigo sin cumplir el objetivo Con otras Hojas excel e inclusive la 4 no la realiza.. 

:shock:

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Graficos con Excel desde VB 6.0
« Respuesta #8 en: 23 de Julio de 2013, 15:04:20 »
¿Qué versión del Excel estás usando?

Desconectado Evonkc

  • PIC12
  • **
  • Mensajes: 50
Re: Graficos con Excel desde VB 6.0
« Respuesta #9 en: 23 de Julio de 2013, 22:43:07 »
Utilizo la 2010, para visual basic utilizo Microsoft excel 14.0 Object Library como librería y utilizo microsoft Common Dialog Control 6.0 Sp6 como componentes..

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Graficos con Excel desde VB 6.0
« Respuesta #10 en: 24 de Julio de 2013, 00:49:29 »
Pues no me quedan argumentos entonces, estoy usando lo mismo que tú.

Desconectado Evonkc

  • PIC12
  • **
  • Mensajes: 50
Re: Graficos con Excel desde VB 6.0
« Respuesta #11 en: 24 de Julio de 2013, 01:06:13 »
bueno esto es sin decepcionarse, hay que seguir intentando hasta encontrar el pero y solucionarlo, Gracias por tu ayuda se valora... Si encuentro la manera lo publicare  :-/

Desconectado Evonkc

  • PIC12
  • **
  • Mensajes: 50
Re: Graficos con Excel desde VB 6.0
« Respuesta #12 en: 25 de Julio de 2013, 13:50:07 »
saludos,
les comento seguí investigando y realizando tareas para dar con lo deseado, no llego aun a puerto final pero creo que voy en al dirección correcta, hasta el momento soy capaz de abrir cualquier archivo Excel; agregar una nueva hoja al libro con su respectivo nombre y puedo agregar gráficos, sin embargo estoy en esto ultimo solo agregar un gráfico y solo sale el recuadro en blanco sin datos, pues me falta enlazar los datos de interés y graficarlos en uno de linea.

Dejo aquí lo que he realizado hasta el momento para aquellos que puedan ver alguna utilidad en ello. Ademas dejo adjunto un archivo excel con datos para que puedan ver lo que sucede.
Saludos a todos.

Código: [Seleccionar]
Private Sub Command1_Click()
On Error Resume Next
Dim oExcel As Object 'excel aplicacion
Dim oBook As Object  'woorkbook aplicacion
Dim oSheet As Object 'excel worksheets aplicacion
Dim ochart As Object 'excel shart

Dim ubicacion As String
With CommonDialog1
    .CancelError = True
    'Para Abrir el xls
    .Filter = "Archivo xls|*.xls|Todos los archivos|*.*"
    .FilterIndex = 2
    .ShowOpen
    If Err = 0 Then
    ubicacion = .FileName
    End If
 End With
    'ubicacion = "C:\Users\Evonkc\Desktop\datos recabados\6.xls"
    Call abrir(ubicacion)
End Sub

Private Sub abrir(ubicacion)
  
    
    'comienza, abre la hoja excel especificada
    Set oExcel = CreateObject("Excel.Application")
    Set oBook = oExcel.Workbooks.Open(ubicacion, , False, , "", "")
    ' crea una nueva hoja de excel
    Set oSheet = oExcel.Sheets.Add
    oSheet.Name = "graficos"
    'Insertar un grafico en la hoja agregada
    Set ochart = oSheet.ChartObjects.Add(50, 40, 300, 200).Chart
    Set ochart = oSheet.ChartObjects.Add(450, 40, 300, 200).Chart 'Set ochart = oSheet.ChartObjects.Add(9 * 50, 40, 300, 200).Chart
    Set ochart = oSheet.ChartObjects.Add(50, 340, 300, 200).Chart 'el (x,y,tamaño x, tamaño y ) x=desplazamiento hacia la izquierda
    Set ochart = oSheet.ChartObjects.Add(450, 340, 300, 200).Chart 'y=desplazamiento hacia arriba grafica ; tamaño x= aumenta tamaño grafico a lo ancho; tamaño y= aumenta tamañao grafico alto
    
    
    'se hace visible el libro de excel
     oExcel.Visible = True
End Sub

« Última modificación: 25 de Julio de 2013, 13:53:27 por Evonkc »


 

anything