Visual Basic - datagrid a excel

Life is soft - evento anual de software empresarial
 
Vista:

datagrid a excel

Publicado por Alex (4 intervenciones) el 29/08/2007 22:20:24
Hola amigos, tengo un problema con un codigo para exportar un datagrid a excel. El datagrid lo lleno de datos previamente trayendelos de la base de datos y hay un boton por el cual llamo a esta funcion con el siguiente comando Call exportar_Datagrid(DataGrid1, DataGrid1.ApproxCount)

Lo q hace es abrir el Libro1.xls, le pone el primer titulo a la primer columna y ahi el VB tira un msgbox q dice "Invalid row number" y no se puede exportar a excel :S
Lo raro es que yo este codigo ya lo habia testeado y andaba, anduvo un tiempo y de repente lo pruebo y tira ese error :S (tengo windows xp professional)

Private Sub exportar_Datagrid(Datagrid As Datagrid, n_Filas As Long)

' On Error GoTo ErrSub

Dim i As Integer, j As Integer, iCol As Integer


If n_Filas = 0 Then
MsgBox "No hay datos para exportar a excel": Exit Sub
Else
Set Obj_Excel = CreateObject("Excel.Application")
Set Obj_Libro = Obj_Excel.Workbooks.Add(App.Path & "\libro1.xls")

'Ponemos la aplicación excel visible
Obj_Excel.Visible = True

'Hoja activa
Set Obj_Hoja = Obj_Excel.ActiveSheet

' Recorre el Datagrid
iCol = 0
For i = 0 To Datagrid.Columns.Count - 1
If Datagrid.Columns(i).Visible Then
If i = 2 Or i = 4 Then
i = i + 1
End If
iCol = iCol + 1
'Caption de la columna
Obj_Hoja.Cells(1, iCol) = Datagrid.Columns(i).Caption

For j = 1 To n_Filas - 1
'asigna el valor a la celda del Excel
On Error GoTo handler
Obj_Hoja.Cells(j + 2, iCol) = _
Datagrid.Columns(i).CellValue(Datagrid.GetBookmark(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 = vbRed

'Autoajustamos
Obj_Hoja.Columns("A:Z").AutoFit
End If

'Eliminamos las variables de objeto excel
Set Obj_Hoja = Nothing
Set Obj_Libro = Nothing
Set Obj_Excel = Nothing

Exit Sub

handler:
MsgBox "Error", vbCritical, "Error!"

On Error Resume Next

Set Obj_Hoja = Nothing
Set Obj_Libro = Nothing
Set Obj_Excel = Nothing

end sub


Gracias de antemano, Alex.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:datagrid a excel

Publicado por csdk (127 intervenciones) el 29/08/2007 22:56:57
sss eso es porque el renglon no deve ser =0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar