Os publico un ejemplo simple de cómo generar un archivo excel desde Visual Basic 6. A partir de este ejemplo se puede adaptar para cada caso concreto, añadir bucles, tomar los datos de un recordset, etc.
'Creamos el objeto Set objExcel = CreateObject("Excel.Application") 'Ponemos la aplicación excel no visible 'para no ver como se genera la hoja objExcel.Visible = False objExcel.Workbooks.Add 'Hoja activa Set hoja = objExcel.ActiveSheet irow = 1 'Numero de fila 'Rellenamos las celdas segun queramos ' bucles , etc.... 'Lo pasamos a excel hoja.Cells(irow + 1, 1) = valor hoja.Cells(irow + 1, 2) = valor hoja.Cells(irow + 1, 3) = valor hoja.Cells(irow + 1, 4) = valor hoja.Cells(irow + 1, 5) = valor hoja.Cells(irow + 1, 6) = valor 'Opcional : damos formato 'Como ejemplo a la cabecera hoja.Rows(1).Font.Bold = True hoja.Rows(1).Font.Color = vbRed'Autoajustamos hoja.Columns("A:Z").AutoFit 'ponemos visible objExcel.Visible = True 'Guardamos el archivo objExcel.ActiveWorkbook.SaveAs "C:" & NombreExcel & ".xls" Set hoja = Nothing Set xlibro = Nothing Set objExcel = Nothing
BUENOS DIAS, MUY UTIL LA PUBLICACION. MUCHAS GRACIAS
hola muy útil gracias, una pregunta más, que pasa si queremos migrar la información de un formulario a un libro ya existente?
ejemplo:
capturo fecha, nombre y hora, y hay que mover estos datos a un libro ya existente de excel llamado «reporte». pero la app de VBa no está creada desde el libro de excel.
Sin probar ni nada, imagino que habrá que abrir el archivo y elegir una hora activa.
set libro = objExcel.WorkBooks.Open(filename)
set hoja= objExcel.activesheet
….
Libro.Save
Libro.Close SaveChanges=True
Esto es un poner….. busca más info en google
10 de 10, gracias 8 años mas tarde y aun ayudas personas, cool B)
Estimados, si tengo un archivo formato csv pero como fue creado con el bloc de notas, tiene mas registros que 65536. Por lo tanto, con vuestro ejemplo no puedo importar mas registros que 65536. Alguien tiene idea como puedo agrander la capacidad de datos para importar?
Gracias
Has probado a cambiar el tipo de dato de la variable del bucle tipo Long?
Has comprobado que tu versión de excel soporta más filas de 65536?
Los límites son:
Hola amigo, espero estés bien, debido a la pandemia. Me gustaría saber si tu sabes de Visual Basic 6.0. Tengo un pequeño problema con un código que no me funciona. Hice un formulario en Visual Basic 6.0 y traslada los datos a una hoja de excel, pero cuando hago el otro registro, me borra el primero para colocar el segundo. Esto me tiene loco. Estos son los Código en Visual Basic 6.0. Desde Venezuela
Private Sub Command1_Click()
Dim xlApp As New excel.Application
Dim excelapp As excel.Application
xlApp.Workbooks.Open «C:\Users\Danys\Desktop\PRUEBA 2 MATRICULA ESCOLAR\PRIMER MOMENTO», , False
xlApp.Visible = True
xlApp.WindowState = xlMaximized
xlApp.Cells(8, 2) = Text1.Text
xlApp.Cells(8, 3) = Text2.Text
xlApp.Cells(8, 5) = Text3.Text
xlApp.Cells(8, 6) = Text4.Text
xlApp.Cells(8, 7) = Text5.Text
xlApp.Cells(8, 8) = Text6.Text
xlApp.Cells(8, 9) = Text7.Text
xlApp.Cells(8, 10) = Text8.Text
xlApp.Cells(8, 11) = Text9.Text
xlApp.Cells(8, 12) = Text10.Text
xlApp.Cells(8, 13) = Text11.Text
End Sub