Imprimir plantilla de Excel con una base de nombres

Por   02/12/2017

Es común tener una plantilla de Excel con varias fórmulas, las cuales pueden ser de búsqueda o de referencia o de cálculos específicos como totales o promedios; todos los cálculos son originados por un dato, pongamos de ejemplo una boleta de calificaciones, donde todos los cálculos de la plantilla son referenciados al nombre del alumno.

Entonces tenemos una plantilla con la boleta de calificaciones con todas las fórmulas para obtener las calificaciones de un alumno, por ejemplo:

imprimir-plantilla-nombres-excel

En otra hoja “Base” tenemos la lista de alumnos, por ejemplo:

imprimir-plantilla-nombres-excel-2

Lo único que necesitamos es pasar cada uno de los alumnos a la plantilla e imprimirla.

Macro para imprimir una plantilla por cada alumno.

Para realizar la impresión automática de las plantillas, utilizaremos una macro, pero antes es necesario llenar la “Hoja1” con los siguientes parámetros:

imprimir-plantilla-nombres-excel-3

Nota: Las hojas de datos y de plantilla pueden tener el nombre que desees, pero es necesario que escribas en la celda respectiva de la “Hoja” el nombre que le pusiste a la hoja.

Después de escribir los parámetros y de llenar tu hoja “Base” y tu hoja “Plantilla” puedes ejecutar la siguiente macro:


Sub ImprimirPlantilla()

'validaciones

Set h = Sheets("Hoja1")

hoja = h.[B4]

col = h.[B5]

fila = h.[B6]

plan = h.[B7]

celda = h.[B8]

'

res = Validaciones(hoja, col, fila, plan, celda)

If res <> "" Then

MsgBox res, vbExclamation, "IMPRIMIR PLANTILLA DE EXCEL"

Range("B4").Select

Exit Sub

End If

'

Set h1 = Sheets(hoja)

Set h2 = Sheets(plan)

For i = fila To h1.Range(col & Rows.Count).End(xlUp).Row

h2.Range(celda) = h1.Cells(i, col)

h2.PrintOut

Next

MsgBox "Impresión Terminada", vbInformation, "IMPRIMIR PLANTILLA DE EXCEL"

End Sub

'

Function Validaciones(hoja, col, fila, plan, celda)

'Por.Dante Amor

msg = ""

If hoja = "" Then

msg = "Completa la hoja con datos"

Else

existe = False

For Each h In Sheets

If LCase(h.Name) = LCase(hoja) Then

existe = True

Exit For

End If

Next

If existe = False Then

msg = "La hoja con la base de datos no existe"

End If

End If

If col = "" Then

msg = "Completa la columna de datos"

End If

If fila = "" Then

msg = "Completa la fila inicial de los datos"

End If

If plan = "" Then

msg = "Completa la hoja plantilla"

Else

existe = False

For Each h In Sheets

If LCase(h.Name) = LCase(plan) Then

existe = True

Exit For

End If

Next

If existe = False Then

msg = "La hoja con la plantilla no existe"

End If

End If

If celda = "" Then

msg = "Completa la celda destino"

End If

Validaciones = msg

End Function

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: ImprimirPlantilla
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Descarar archivo.

Contenido relacionado:
Compartirlo
Gerencie.com en su correo.

Suscríbase y nosotros colocaremos en su bandeja de entrada la mejor información que generamos diariamente.


Déjenos su opinión

En Gerencie.com está permitido opinar, criticar, discutir, controvertir, disentir, etc., pero debe hacerlo con respeto, sin insultar y sin ofender a otros.

Información legal aplicable para Colombia.