De Visual a Excel

Pau
23 de Septiembre del 2008
Tengo un grid y en ese grid datos de una tabla, mediante un boton guardar, paso esos datos a un documento excel, pero en este documeno me salen los datos desordenados, sin separaciones y que queda horrible vamos que eso no se puede imprimir asi, pero si le meto en la colocacion del grid alguna separacion o algo asi me come los datos, que manera hay de hacer que los datos lleguen bien o hacer una plantilla en excel o alguna solucion por favor
gracias

Floyd
23 de Septiembre del 2008
Si lo que quieres es enviar datos tipo texto:
AreaHojaEx.Cells(Fila, Columna) = "'" & celdadelgrid
Los dem谩s datos pueden ir con funciones como FORMAT:
AreaHojaEx.Cells(Fila, Columna) = "'" & FORMAT(celdadelgrid,"Standard")

Si quieres que las columnas en la hoja de excel tengan el ancho autom谩tico:
AreaHojaEx.Columns(Columna).AutoFit
Si quieres que la alineaci贸n dentro de la columna en excel sea centrada:
AreaHojaEx.Columns(Columna).HorizontalAlignment = xlHAlignRight

Donde AreaHojaEx est谩:
Dim AreaHojaEx As Excel.Worksheet

Cualquier cosa puedes ser m谩s espec铆fico y tratar茅 de ayudarte

Pau
23 de Septiembre del 2008
Y en donde meto todo ese codigo

Pau
23 de Septiembre del 2008
Porfa especificame un poquitito mas anda que no se por donde cogerlo

Floyd
23 de Septiembre del 2008
Indicaste que lo tienes en un bot贸n.
Hazme llegar el c贸digo de tu pase desde visual a excel (el que te sale desordenado)

Pau
23 de Septiembre del 2008
Private Sub guardar_Click()
Dim fso As New FileSystemObject
Dim fichero As TextStream
Dim texto As String
For i = 0 To grimi.Rows - 1
For j = 0 To grimi.Cols - 1
texto = texto & grimi.TextMatrix(i, j) & " "
Next j
texto = texto & vbCrLf
Next i
control.Filter = "Archivos de Texto (*.txt)|*.txt|Todos los Archivos (*.*)|*.*"
control.FilterIndex = 2
control.ShowSave
Set fichero = fso.OpenTextFile(control.FileName, ForWriting)
fichero.Write texto
End Sub

ESTE ES EL CODIGO QUE TENGO EN EL BOTON GUARDAR, MEDIANTE EL CUAL GUARDO EL LISTADO EN UN DOCUMENTO EXCEL PERO ME APARECE DE MANERA QUE NO SE PUEDE IMPRIMIR PORQUE QUEDA MUY MAL

Floyd
23 de Septiembre del 2008
Agrega al proyecto la referencia: Microsoft Excel 9.0 Object Library
Nota: debes tener Excel 5.0 o superior

En el sub del bot贸n vas a colocar:
'declaraci贸n de los objetos tipo Aplicaci贸n Excel, Libro y hoja
Dim ApplEx As Excel.Application
Dim AreaLibroEx As Excel.Workbook
Dim AreaHojaEx As Excel.Worksheet
'darle valores a los objetos excel
Set ApplEx = CreateObject("excel.application")
Set AreaLibroEx = ApplEx.Workbooks.Add
Set AreaHojaEx = AreaLibroEx.Worksheets(1)
'recorrer el grid y pasar los valores a cada celda de la hoja de excel
For i = 0 To grimi.Rows - 1
For j = 0 To grimi.Cols - 1
AreaHojaEx.Cells(i+1,j+1)=grimi.TextMatrix(i, j)
next
next

para darle formatos a la hoja
revisa el primer c贸digo que te env铆e
conoci茅ndo las columnas de la hoja de excel, puedes pasarle propiedades de centrado, ancho. etc茅tera.
Revisa:
AutoFit
HorizontalAlignment
ColumnWidth
para el objeto AreaHojaEx y su propiedad Columns

Para terminar, antes del end del sub del bot贸n, te aconsejo y coloques:

Set ApplEx = Nothing
Set AreaLibroEx = Nothing
Set AreaHojaEx = Nothing

para as铆 liberar un poco la memoria, sobre todo en los recursos del Office

Pau
23 de Septiembre del 2008
en la referencia en vez de la 9.0 tengo la 11.0 vale?

Pau
23 de Septiembre del 2008
no me hace nada dios mio.............. que desesperacion llevo un dia

Floyd
23 de Septiembre del 2008
Mirando el c贸digo que te indiqu茅, olvid茅 algo muy importante:
escribe:
ApplEx.Visible = True
para poder mostrar la hoja
esto va antes del
Set ApplEx = Nothing
Set AreaLibroEx = Nothing
Set AreaHojaEx = Nothing
es decir, al final de todos los valores y propiedades que hayas trabajado

Pau
23 de Septiembre del 2008
nada me sigue mostrando un desorden enorme

Pau
23 de Septiembre del 2008
perdonar me tengo que ir ma帽ana estoy hasta las 2:30 me encantaria que me siguierais ayudando por favor espero que esteis muchas gracias
seguire intentandolo ma帽ana

Floyd
23 de Septiembre del 2008
Calma, creo que la 11.0 es v谩lida pero hay que investigar cu谩l es la versi贸n inferior del Office que soporta.
Prueba a ver el resultado de:
ApplEx.Version
despu茅s del
Set ApplEx = CreateObject("excel.application")

Pau
23 de Septiembre del 2008
uso no valido de la propiedad

eso es lo que me dice

f
23 de Septiembre del 2008
colocalo como una pregunta para continuar o no con el traslado de los datos
Set ApplEx = CreateObject("excel.application")
If ApplEx.Version > "6.0" Then
Set AreaLibroEx = ApplEx.Workbooks.Add
Set AreaHojaEx = AreaLibroEx.Worksheets(1)
.
.
.
.
ApplEx.Visible = True
end if