Cuidado la respuesta que le dan no es correcta, ¿Qué pasa si el número de registros es múltiplo exacto de 12?, por ejemplo si fuesen 48 registros. Veámoslo
i=fix(48/12)+1 tendriamos 5.
b=(i*12)-48 tendriamos 12 . !! Error...
Es decir necesitaríamos 5 hojas para imprimir 48 registros de a 12 etiquetas por hoja y lo correcto son 4 hojas.
Y faltarían 12 para completar la hoja. No faltaría nada.
Elaboré esta función de tal forma que permita jugar con el número de etiquetas por hoja y número de registros .
FUNCIÓN
Public Function etiquetas(ByVal nReg As Integer, ByVal nHoja As Integer, Optional ByVal ntipo As Byte) As Integer
On Error GoTo hay_error
'Función determinar el número de etiquetas faltantes para completar una hoja
'con base en el número de registros y la cantidad de etiquetas por hoja
'y para determinar el número de hojas requeridas
'Elaborado por: EDUARDO PÉREZ FERNÁNDEZ
'Fecha : 26/05/2021
'País : Colombia
'Parámetros:
' nReg= Número de registros
' nHoja= Número de etiquetas por hoja
'Opcional nTipo=1 ... retorona el número de registros faltantes para completar una hoja
' 2 ... retorna el número de hojas completas para imprimir las etiquetas
' Si omite el parámetro toma como valor 1 (Retorna el número de registros faltantes)
Dim intetiqueta As Integer
If CLng(ntipo) = 0 Then
ntipo = 1
End If
intetiqueta = nHoja - (IIf(nReg Mod nHoja = 0, nHoja, nReg Mod nHoja))
If ntipo = 1 Then
etiquetas = intetiqueta
Else
etiquetas = (nReg + intetiqueta) / nHoja
End If
hay_error_exit:
Exit Function
hay_error:
MsgBox "Error " & Err.Number & " " & Err.Description, vbCritical, "Error...."
Resume hay_error_exit
End Function
Ejemplos de llamada:
Para el ejemplo asumo que la tabla pedidos tiene 45 registros:
dcount("*","productos")=45
Obtener el número de etiquetas faltantes 12 etiquetas por hoja
¿
? Etiquetas(dcount("*","productos"), 12,1)
3
Le he indicado a la función que son 45 registros, 12 etiquetas por hoja y que retorne el número de etiquetas que faltan para completar la última hoja, en este caso me indica que faltan 3 registros, es decir 45+3=48 etiquetas en total.
Obtener el número de hojas requeridas 12 etiquetas por hoja
¿
? Etiquetas(dcount("*","productos"), 12,2)
4
Efectivamente retorna 4 hojas para imprimir las 48 etiquetas (12 por hoja)
Ahora, que pasa si fueran 10 etiquetas por hoja:
Obtener el número de etiquetas faltantes 10 etiquetas por hoja
¿
? Etiquetas(dcount("*","productos"), 10,1)
5
Faltarían 5 registros para completar la última hoja.
Obtener el número de hojas requeridas 10 etiquetas por hoja
¿
? Etiquetas(dcount("*","productos"), 10,2)
5
Se necesitan 5 hojas para imprimir (45+5=50) etiquetas 10 por hoja.