Programación General > Visual Basic 6.0 e inferiores

 Error Al Exportar De Una Grilla Al Excel

(1/1)

desarrollo:
HOLA GENTE,   :lol:

COMO ESTAN AKI NUEVAMENTE PARA UNA NUEVA CONSULTA, resulta que kise migrar datos a excel por medio de un GRID y buscando encontre un codigo por la web.. este es :
--- Código: Text --- Option Explicit Public Enum eTGrilla   [DataGrid] = 1   [MSHFlexGrid] = 2   [MSFlexGrid] = 3End Enum Public Function mFn_GrillaToXls(ObjGrilla As Object, _                   TipoGRilla As eTGrilla, _                   Optional IniFillGrilla As Long = -1, _                   Optional IniColGrilla As Long = -1, _                   Optional FinFillGrilla As Long = -1, _                   Optional FinColGrilla As Long = -1, _                   Optional IniFillXls As Long = 1, _                   Optional FinColXls As Long = 1, _                   Optional FullPathNameFileXLS As String = "Archivo.xls", _                   Optional NameSheet As String = "Hoja") As Boolean'***********************************************************************************'* Funcion que Migra de Una grilla a un archivo de Excel'***********************************************************************************  ' variables Excel   Dim xlsApli As Excel.Application   Dim xlsWorkB As Excel.Workbook   Dim xlsSheet As Excel.Worksheet   'Variables Locales   Dim Columna As Long   Dim Fila As Long         'Fin de Variables      Set xlsApli = New Excel.Application   Set xlsApli = CreateObject("Excel.Application")   Set xlsWorkB = xlsApli.Workbooks.Add   Set xlsSheet = xlsWorkB.Worksheets.Add      If FullPathNameFileXLS = "Archivo.xls" Then FullPathNameFileXLS = App.Path & "\" & FullPathNameFileXLS      xlsSheet.Name = NameSheet   mFn_GrillaToXls = False   On Local Error GoTo GrillaToXlsError   For Fila = IIf(InicioFila = -1, ObjGrilla.FixedRows - 1, InicioFila) To IIf(FinalFila = -1, ObjGrilla.FixedRows - 1, FinalFila)       For Columna = IIf(InicioColumna = -1, ObjGrilla.FixedCols - 1, InicioColumna) To IIf(FinalColumna = -1, ObjGrilla.FixedCols - 1, FinalColumna)           Select Case eTGrilla           Case MSHFlexGrid Or MSFlexGrid                xlsSheet.Cells(IniFillXls, FinColXls) = ObjGrilla.TextMatrix(Fila, Columna)           Case DataGrid                ObjGrilla.Col = Columna                ObjGrilla.Row = Fila                xlsSheet.Cells(IniFillXls, FinColXls) = ObjGrilla.Text           End Select           FinColXls = FinColXls + 1       Next Fila       IniFillXls = IniFillXls + 1   Next Fila      xlsWorkB.SaveAs FullPathNameFileXLS   xlsWorkB.Close   xlsApli.Quit   mFn_GrillaToXls = True   Exit FunctionGrillaToXlsError:   MsgBox Err.Number & " : " & Err.Description    End Function   ... lo kise utilizar pero me sale un error al momento de llamar a la funcion en la parte donde dice variables de EXCEL el programa me indica que no estan declaradas por ejemplo (Excel.Application, Excel.Workbook, Excel.Worksheet) por lo que no puedo ejecutarlo la pregunta seria como declararia esas variable que utilizare para vincular con EXCEL y ademas es necesario color el OPTION EXPLICiT como dice al principio y por ultimo cuando llamo a la funciona es necesario detallar las condiciones opcionales como dice la funcion (call mFn_GrillaToXls(DATAGRID1, TipoGRilla [me da a escoger],opcional1, opcional2,etc..)

Disculpen las molestias pero necesito saberlo para poder exportar datos de un Grid (en este caso) al Excel de antemano mil gracias por la ayuda brindada   :hola:

desarrollo  :comp:

PD:muy a parte del comentario anterior existe otra manera de poder exportar al excel mayor cantidad de datos ya no con GRid (o referenciales) sino por medio de base me refiero desde SQl (ke es mi caso..) gracias y FELIZ AÑO NUEVO !!!

Brroz:
Hola Desarrollo.

Te falta una referencia a la biblioteca de objetos de Excel, pero puedes hacer una cosa en vez de añadirla:

Puedes instanciar las clases de excel mediante 'CreateObject', obviando el Set variable = New clase. Es decir: declara esas variables como Object y elimina la línea Set xlsApli = New Excel.Application, que además en el código es redundante. Con esto ya no te debería dar ese error.

Suerte.

desarrollo:
Hola BRROZ...  :hola:

mas o menos lo que tu me dices es asi:
Dim xlsApli As Object     ó
Create xlsApli As Object  (esta me da error)

podrias orientarme por favor... ya se en donde puedo colocar las referencias pero kiero de la manera que tu me dices

gracias
desarrollo  :comp:

Brroz:
Hola.

Cambia esto

--- Código: Text --- ' variables Excel  Dim xlsApli As Excel.Application  Dim xlsWorkB As Excel.Workbook  Dim xlsSheet As Excel.Worksheet  
por esto

--- Código: Text --- ' variables Excel  Dim xlsApli As Object  Dim xlsWorkB As Object  Dim xlsSheet As Object  
Cambia también esto

--- Código: Text ---   Set xlsApli = New Excel.Application  Set xlsApli = CreateObject("Excel.Application")  Set xlsWorkB = xlsApli.Workbooks.Add  Set xlsSheet = xlsWorkB.Worksheets.Add  
por esto otro  

--- Código: Text ---   Set xlsApli = CreateObject("Excel.Application")  Set xlsWorkB = xlsApli.Workbooks.Add  Set xlsSheet = xlsWorkB.Worksheets.Add  
Chao.

Navegación

[0] Índice de Mensajes

Ir a la versión completa