Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Urgente: Error al Exportar a Excel de un DataGrid en vb6.0

Estas en el tema de Urgente: Error al Exportar a Excel de un DataGrid en vb6.0 en el foro de Visual Basic clásico en Foros del Web. Buenos días, tengo este problema, bueno implementé este codigo para poder exportar al excel desde un datagrid, el código esta en el menu principal (MDI) ...
  #1 (permalink)  
Antiguo 26/09/2008, 11:20
 
Fecha de Ingreso: septiembre-2008
Mensajes: 1
Antigüedad: 15 años, 7 meses
Puntos: 0
Urgente: Error al Exportar a Excel de un DataGrid en vb6.0

Buenos días, tengo este problema, bueno implementé este codigo para poder exportar al excel desde un datagrid, el código esta en el menu principal (MDI) donde me permite exportar la primera vez, luego quiero hacerlo de nuevo y me sale de mensaje los siguiente: "Variable de Tipo Object o la variable de tipo With no est.a establecida". Bueno como les comento sólo me sale exportar a la primera vez de ejecutado el programa, a la segunda y sucesivamente sale ese mensaje y no exporta nada, para poder exportar otra cosa tengo q cerrar todo el programa y volver a ejecutar de nuevo, le doy varias vueltas al asunto y no encuentro la solución, espero que me ayuden, muchas gracias. El código es el siguiente:

Private Sub Exportar_Datagrid(Data_Grid As Datagrid, n_Filas As Long)
On Error GoTo ErrSub
'Variables para Excel
Dim Obj_Excel As Object
Dim Obj_Libro As Object
Dim Obj_Hoja As Object
Dim i As Long, j As Long, icol As Long

If n_Filas = 0 Then
MsgBox "No hay datos para exportar a excel": Exit Sub
Else
Set Obj_Excel = New Excel.Application
Set Obj_Libro = Excel.Workbooks.Add
Set Obj_Hoja = Excel.ActiveSheet
'Ponemos la aplicación excel visible
Obj_Excel.Visible = True
'Recorre el Datagrid
icol = 0
For i = 0 To Data_Grid.Columns.Count - 1
If Data_Grid.Columns(i).Visible Then
icol = icol + 1
'Caption de la columna
Obj_Hoja.Cells(1, icol) = Data_Grid.Columns(i).Caption
For j = 0 To n_Filas - 1
'asigna el valor a la celda del Excel
Obj_Hoja.Cells(j + 2, icol) = _
Data_Grid.Columns(i).CellValue(Data_Grid.GetBookma rk(j))
Next
End If
Next
'Opcional : colocamos en negrita y de color rojo los enbezados en la hoja
Obj_Hoja.Rows(1).Font.Bold = True
Obj_Hoja.Rows(1).Font.Color = vbBlue
'Autoajustamos
Obj_Hoja.Columns("A:Z").AutoFit
'Guardamos el archivo
Obj_Excel.ActiveWorkbook.SaveAs FileName:=App.Path & "Exportados" & TABLA & "_" & FechaTex(Date) & ".xls"
'Si ocultas te la hoja de excel hayq ue visualizarla sino se queda la instancia abierta
Obj_Excel.Application.Visible = True
Set Obj_Hoja = Nothing
Set Obj_Libro = Nothing
Set Obj_Excel = Nothing
End If
'Eliminamos las variables de objeto excel
Set Obj_Hoja = Nothing
Set Obj_Libro = Nothing
Set Obj_Excel = Nothing
'Error
ErrSub:
Set Obj_Hoja = Nothing
Set Obj_Libro = Nothing
Set Obj_Excel = Nothing
MsgBox Err.Description, vbCritical
On Error Resume Next
End Sub

Donde llamo desde otro formulario hijo a ese procedimiento con:
Call Exportar_Datagrid(FrmMemos.Data1, FrmMemos.Data1.ApproxCount)

Y como ya saben sólo exporta la primera vez....Help me!!! gracias!
  #2 (permalink)  
Antiguo 26/09/2008, 12:10
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: Urgente: Error al Exportar a Excel de un DataGrid en vb6.0

Hola rruiz84. Bienvenid@ al foro.

Para hacer preguntas es preferible utilizar el foro que mejor se adapte a tu duda, así podrán ayudarte más usuarios.

Muevo tu mensaje al foro de Visual Basic desde Bienvenida a Foros del Web.

Saludos,
  #3 (permalink)  
Antiguo 26/09/2008, 12:12
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Urgente: Error al Exportar a Excel de un DataGrid en vb6.0

¿Cuál es la línea que te da el error?. Para saberlo, quita el On Error que tienes al comienzo.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:20.