En este ejemplo les muestro el código que hace posible la exportación de datos a un libro nuevo con la extensión .xls.
Para que esto sea posible realizar lo siguiente:
- Crear hoja1 con datos.
- Crear hoja2 sin datos
- Ingresar al editor VBA Excel.
- Insertar un formulario con los componentes:
- Cuadro de lista (ListBox1).
- Botón de comando (CommandButton1).
- Escribir el siguiente código.
Private Sub UserForm_Initialize()
Dim lngregistros, i As Long
Dim intfila As Integer
'Definimos el número de columnas
Me.ListBox1.ColumnCount = 7
'Definimos el ancho de cada columna
Me.ListBox1.ColumnWidths = "30;160;80;80;80;80;80"
'Limpiar el lixtbox
ListBox1.Clear
'Agregar el elemento en las respectivas columnas
ListBox1.AddItem
intfila = ListBox1.ListCount - 1
ListBox1.Column(0, intfila) = "ID"
ListBox1.Column(1, intfila) = "NOMBRE"
ListBox1.Column(2, intfila) = "FEC_NAC"
ListBox1.Column(3, intfila) = "SEXO"
ListBox1.Column(4, intfila) = "DIRECCION"
ListBox1.Column(5, intfila) = "TELEFONO"
ListBox1.Column(6, intfila) = "CORREO"
'Contamos el numero de registros en la hoja 1
lngregistros = Hoja1.Range("A1").CurrentRegion.Rows.Count
'Recorre todos los registros a partir de la fila 2 de la hoja1
For i = 2 To lngregistros
'Carga los registros al ListBox1
ListBox1.AddItem Hoja1.Cells(i, 1)
ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Hoja1.Cells(i, 2)
ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Hoja1.Cells(i, 3)
ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Hoja1.Cells(i, 4)
ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Hoja1.Cells(i, 5)
ListBox1.List(Me.ListBox1.ListCount - 1, 5) = Hoja1.Cells(i, 6)
ListBox1.List(Me.ListBox1.ListCount - 1, 6) = Hoja1.Cells(i, 7)
Next i
End Sub
Private Sub CommandButton1_Click()
Dim i As Integer
Dim f As Integer
Dim strruta As String
Dim strnomfile As String
'Selecciona y limpia la hoja2
Hoja2.Select
Hoja2.Cells.Select
Selection.ClearContents
Hoja2.Range("A1").Select
'Recorre los registros almacenados en ListBox1
For i = 0 To Me.ListBox1.ListCount - 1
'Envía registro por registro a la hoja 2
f = f + 1
Hoja2.Cells(f, 1) = Me.ListBox1.List(i, 0)
Hoja2.Cells(f, 2) = Me.ListBox1.List(i, 1)
Hoja2.Cells(f, 3) = Me.ListBox1.List(i, 2)
Hoja2.Cells(f, 4) = Me.ListBox1.List(i, 3)
Hoja2.Cells(f, 5) = Me.ListBox1.List(i, 4)
Hoja2.Cells(f, 6) = Me.ListBox1.List(i, 5)
Hoja2.Cells(f, 7) = Me.ListBox1.List(i, 6)
Next i
MsgBox "La información ha sido actualizada", vbInformation, "Exportar datos"
'Definimos la ruta donde se guarda el archivo
strruta = "C:\Users\Dell\Desktop\"
'Asignamos un nombre al archivo
strnomfile = "ReporteDatos_" & Format(Date, "dd-mm-yyyy")
'Copia la informacion
ActiveSheet.Copy
'Guarda la informacion en la ruta indicada
ActiveWorkbook.SaveAs strruta & strnomfile
'Cierra el libro
ActiveWorkbook.Close
MsgBox "El reporte se generó con éxito", vbInformation, "Exportar datos"
'Se cierra el formulario
Unload Me
End Sub
Hoja 1 con datos y Hoja 2
Exportar datos de ListBox a XLS
Reporte de datos generado
No hay comentarios.:
Publicar un comentario