¿Se puede imprimir en un mismo folio A4 varios recibos generados por una macro en excel?

Tengo una miniaplicación excel que consta de una tabla con datos y otra hoja con un recibo que se rellena automáticamente con los datos de la tabla. Mi macro hace que el recibo se rellene y se imprima, pero unicamente imprime uno por hoja, y me gustaría que imprimiese 3 por hoja y no se ni consigo encontrar nada para que lo haga así. También me gustaría poner un botón con otra macro para que me exportara todos los recibos en un único archivo PDF.

Mi macro es esta:

Sub imprimir()     

inicio = Range("L6").Value   

fin = Range("O6").Value       

For i = inicio To fin           

Range("N2").FormulaR1C1 = i           

ActiveWindow.SelectedSheets.PrintOut Copies:=1 Next Range("N2") = ""

End Sub

Espero puedas ayudarme, si necesitas el archivo excel te lo mando sin problemas.

1

1 Respuesta

2.207.390 pts. En mi sitio encontraran material de ayuda, ejemplos...

Si se puede. Debes 'dibujar' los formatos de recibo tantas veces como la cantidad que puedas imprimir en 1 misma hoja.

Luego la macro vuelca los datos en cada grupo de celdas con un contador, hasta completar digamos los 3 formatos y recién entonces lo imprime.

Por ej:

x=1

For i = inicio To fin  

select case x

case x = 1

'se pasan los datos al primer grupo de celdas

case x = 2

'al 2do grupo

'otros casos

End Select

if x = 3 then

   activesheet.printout    'completar la instrucción

   x=1    

else 

 x=x+1

end if

next i

'Al finalizar el bucle hay que controlar si aun quedaron registros sin imprimir

if x > 1 then  Activesheet.printout

Esta sería la idea... cuando completes todo el proceso podés enviarme tu libro si aún te queda algo sin resolver de este tema.

¡Gracias!

¿Cómo te puedo enviar mi libro excel? Y lo revisas, ya que no me he enterado muy bien de como tengo que ponen esa macro... ¿la tengo que mezclar con la mía o va aparte? Perdón por mi torpeza pero el excel no es lo mio... Te lo enviaría todo montado ya a falta de que comprobases solo la macro... Gracias y un saludo

Mis correos aparecen en la portada de mi sitio que dejó al pie. Por ej.

Cibersoft.arg de gmail.com

Te estoy devolviendo el libro con los cambios. Dejé los grupos a la misma distancia unos de otros por lo que inserté 1 fila entre los 2 últimos.

Ya no se utiliza la celda N2 sino 3 celdas en col K aunque bien podrías incluir el nro de registro en col G, dentro del recibo si te parece.

Observa también las fórmulas que al tener referencias absolutas pueden ser copiadas en el resto de los recibos.

La macro quedó así:

Sub imprimir()
'x Elsamatilde
inicio = Range("L6").Value
fin = Range("O6").Value
For i = inicio To fin Step 3
'se imprimen en grupos de 3
    [K4] = i
    If i + 1 <= fin Then [K20] = i + 1 Else: [K20] = ""
    If i + 2 <= fin Then [K36] = i + 2 Else: [K36] = ""
    'se establece rango de impresión según cantidad de registros
    If [K36] = "" And [K20] = "" Then
        ActiveSheet.PageSetup.PrintArea = "B2:I15"
    ElseIf [K36] = "" Then
        ActiveSheet.PageSetup.PrintArea = "B2:I31"
    Else
        ActiveSheet.PageSetup.PrintArea = "B2:I47"
    End If
    ActiveSheet.PrintPreview
    'ActiveWindow.SelectedSheets.PrintOut Copies:=1
Next i
End Sub

¡Gracias! y mil Gracias, Esta más que bien. Un saludo y gracias por la solución.

Para Elsa;

Se puede acoplar al libro EXCEL un botón con una macro que al darle exporte TODOS los recibos del rango marcado en UN único archivo pdf. Es decir, ahora me genera un archivo pdf cada hoja A4 si selección el PDF creator como impresora predeterminada. Mi consulta seria si con una macro pueden juntarse 300 recibos (100 hojas A4) por poner un ejemplo en UN único archivo PDF.

Muchas gracias de antemano, Un saludo.

Todo se puede, pero esta consulta se trata de 'imprimir en un mismo folio varios recibos'.

Ahora debes iniciar una nueva consulta con el título que corresponda al nuevo tema: exportar a Pdf. En el cuerpo del mensaje indica que es para mí así seguimos trabajando sobre tu muestra.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas