Guardar datos en Hoja de Cálculo Excel desde VB6

Guardar datos en Hoja de Cálculo Excel desde VB6

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

6 Comentarios

  1. BUENOS DIAS, MUY UTIL LA PUBLICACION. MUCHAS GRACIAS

    Responder
  2. 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.

    Responder
    • 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

      Responder
  3. 10 de 10, gracias 8 años mas tarde y aun ayudas personas, cool B)

    Responder
  4. 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

    Responder
    • 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:

      Excel 365* | 1,048,576
      Excel 2013 | 1,048,576
      Excel 2010 | 1,048,576
      Excel 2007 | 1,048,576
      Excel 2003 | 65,536
      Excel 2002 (XP) | 65,536
      Excel 2000 | 65,536
      Excel 97 | 65,536
      Excel 95 | 16,384
      Excel 5 | 16,384

      Responder

Enviar comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *