Todos sabemos exportar datos desde Access hasta Excel, pero, ¿y si queremos hacerlo con formato? Hoy os traigo un post de esos que merecen ser guardados en la página de marcadores. Vamos allá.
Antes de nada, si no sabes exportar datos, aquí te explico cómo hacerlo para un formulario continuo filtrado.
Volviendo a nuestro ejemplo, he creado la tabla "Tbl_Resultados" con las calificaciones de un grupo de alumnos, tal y como podéis ver en la figura.
La idea consiste en exportar los datos de la tabla desde Microsoft Access hasta Microsoft Excel, definiendo el formato final en el propio código de exportación, para obtener un resultado como éste,
El código para conseguirlo es el siguiente,
Public Sub exportar()
Dim AppExcel As Object, rst As DAO.Recordset, SQL As String, Y As Long, A As Long
On Error GoTo ManipularError
SQL = "SELECT * FROM Tbl_Resultados"
Set rst = CurrentDb.OpenRecordset(SQL, dbOpenForwardOnly)
Set AppExcel = CreateObject("Excel.application")
'Crea un libro de trabajo nuevo y vacío
AppExcel.Workbooks.Add
'Edito la hoja 1
With AppExcel.Sheets(1)
'Formato de los datos
With .Range("A:E")
.Font.Name = "Calibri" 'Tipo de letra
.Font.Size = 9.5 'Tamaño de letra
.ColumnWidth = 13 'Ancho de columna
End With
'Formato para el encabezado
With .Range("A1:E1")
.Font.Size = 10 'Tamaño de letra
.Font.FontStyle = "Bold" 'Estilo de letra(Negrita)
.Interior.ColorIndex = 14 'Color de relleno de celda
End With
.Name = "Alumnos" 'Nombre de la hoja 1
.Cells(1, 1) = "IDENTIFICADOR" 'Nombre de columna
.Cells(1, 2) = "NOMBRE" 'Nombre de columna
.Cells(1, 3) = "APELLIDO 1" 'Nombre de columna
.Cells(1, 4) = "APELLIDO 2" 'Nombre de columna
.Cells(1, 5) = "CALIFICACION" 'Nombre de columna
Y = 2
While Not rst.EOF
'Relleno de filas de datos
If rst!Calificacion > 5 Then A = A + 1 'Conteo de alumnos aprobados
.Cells(Y, 1) = rst!Id_Alumno
.Cells(Y, 2) = rst!Nombre
.Cells(Y, 3) = rst!Apellido1
.Cells(Y, 4) = rst!Apellido2
.Cells(Y, 5) = rst!Calificacion
Y = Y + 1: rst.MoveNext
Wend
'Formato del totalizador
Y = Y + 1
.Cells(Y, 4) = "APROBADOS" 'Nombre de la celda
.Cells(Y, 4).Font.FontStyle = "Bold" 'Estilo de letra(Negrita)
.Cells(Y, 4).Font.Size = 10 'Tamaño de letra
.Cells(Y, 4).Interior.ColorIndex = 14 'Color de relleno de celda
.Cells(Y, 5) = A 'Total de alumnos aprobados
.Cells(Y, 5).Font.FontStyle = "Bold" 'Estilo de letra(Negrita)
.Cells(Y, 5).Font.Size = 10 'Tamaño de letra
End With
rst.Close: Set rst = Nothing
AppExcel.Visible = True: Set AppExcel = Nothing
Exit Sub
ManipularError:
If Not rst Is Nothing Then rst.Close: Set rst = Nothing
If Not AppExcel Is Nothing Then AppExcel.DisplayAlerts = False: AppExcel.Quit: Set AppExcel = Nothing
End Sub
Ya sólo tendremos que pulsar el botón del formulario "Frm_Exportar" para ejecutar el código anterior.
Espero que con este ejemplo hayas aprendido a exportar datos con formato desde Access hasta Excel usando VBA. Descárgate el archivo de ejemplo y practica.
Por último, quiero invitarte a compartir tus dudas en los comentarios o en el foro. Intentaré ayudarte en todo lo que pueda, y así aprenderemos todos.
Hasta la próxima.
Si te ha servido y quieres donar
Descarga el archivo del ejemplo
Últimas publicaciones
0 comentarios