Pasar a Excel

Hola!
¿Me podrías decir como se crea un documento en excel desde visual y como lo lleno con los datos que tengo en un datagrid?
Es urgente. Gracias.

1 Respuesta

Respuesta
1
Te adjunto un pequeño ejemplo de como crear una hoja de excel desde visual basic :
Primero de todo debes ir a componentes e añadir la referencia de Excel en tu proyecto
Private Sub Command1_Click()
Dim e As New Excel.Application ' Declaración de la nueva aplicación de Excel
Dim wb As New Excel.Workbook ' Declaración del nuevo fichero excel
Dim ws As New Excel.Application
Set wb = e.Workbooks.Add
Set ws = wb.Worksheets(1) 'Añadimos una hoja a nuestro documento para poder añadir datos claro !
'Ahora vamos a añadir los datos en una celda,esto es un pequeño ejemplo de como añadir, solo tienes que hacer un bucle en el cual vayas insertando fila a fila.
ws.Cells(1, 1) = "prueba" 'Esta línea añadirá "prueba" en la celda A1
e.Visible = True ' Muestra la hoja creada
'Recuerda de cerrar SIEMPRE todos los objetos que abras.
Set ws = Nothing
Set wb = Nothing
Set e = Nothing
End Sub
Bueno espero que te ayude este simple ejemplo, suerte.
Soy yo otra vez.
Perdóname, soy una pesada.
He utilizado lo que me mandaste y me da errores. ¿No sabrías otro modo?
¿Y cómo vuelco un datagrid en ese documento?
Perdona, otra vez. Y gracias.
La verdad es que solo hice hace mucho tiempo un a prueba de crear una hoja de escell desde visual y tenia el código dado anteriormente, no puedo ser de utilidad en la primera pregunta pero consulta estas páginas:
http://www.lawebdelprogramador.com
http://www.programacion.com
http://guille.costasol.com
Ahora sobre como introducir el contenido de un datagrid, a ver si esto te sirve:
Public Sub Exporta_excel()
Dim s, j As Integer
Dim i As Long
Dim n As Long
Screen.MousePointer = vbHourglass
On Error Resume Next
Set objExcel = GetObject(, "Excel.Application")
If Err.Number Then
Err.Clear
Set objExcel = CreateObject("Excel.Application")
If Err.Number Then
MsgBox "Error al tratar de abrir Excel"
End If
End If
With rs 'Recordset obtenido mediante el procedimiento [Get_recordset]
objExcel.Visible = True 'Abre excel
Set objWorkbook = objExcel.Workbooks.Add 'Agrega una hoja de trabajo
.MoveFirst
s = 2
While .EOF = False 'Ciclo para tener acceso a todos los campos
For i = 1 To .Fields.Count 'Ciclo que hace referencia a las Columnas [campos]
objWorkbook.ActiveSheet.Cells(s, i).Value = .Fields(.Fields(i - 1).Name).Value
Next
.MoveNext
s = s + 1
Wend
For j = 1 To .Fields.Count 'Ciclo que llena el primer renglon con los titulos de los campos
objWorkbook.ActiveSheet.Cells(1, j).Value = .Fields(j - 1).Name
objExcel.Columns.EntireColumn.AutoFit
Next
End With
Set objExcel = Nothing
Set objWorkbook = Nothing
Screen.MousePointer = vbDefault
End Sub
Siento no poder ayudarte mejor, si tienes alguna duda sobre algún otro problemilla, ya sabes donde encontrarme.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas