Excel - Imprimir 2 hojas, 50 veces y que salga numeradas correlativamente.

 
Vista:

Imprimir 2 hojas, 50 veces y que salga numeradas correlativamente.

Publicado por Hector (2 intervenciones) el 14/10/2024 02:29:56
Muy buenas a esta magnífica comunidad. Me gustaría recibir ayuda.
Tengo un Excel con dos hojas, que me gustaría imprimir a doble cara, imprimir 50 copias para encuadernar y que salga numeradas en la celda que yo elijo.

Dos hojas con mismo formato, diferente contenido pero que el número que se imprima en la misma posición en todas las copias.

He usado una macro para poder numerar una sola hoja y que imprima 100 copias numeradas en la celda que yo elija, pero no sé cómo hacerlo para dos hojas .

Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Imprimir 2 hojas, 50 veces y que salga numeradas correlativamente.

Publicado por Antoni Masana (2540 intervenciones) el 14/10/2024 20:44:05
Para numerar las hojas hay dos opciones, una es poner el número en una celda como lo quieres hacer y la otra en la cabecera o pie de página, en ambos casos el procedimiento es diferente.

Para empezar se graba una macro con la acción a realizar.

1
2
3
4
5
6
7
8
9
Sub Imprimir_Hojas()
    Sheets(Array("Hoja1", "Hoja2")).Select
    Sheets("Hoja1").Activate
    ActiveWindow.SelectedSheets.PrintOut _
                 Copies:=1, _
                 Collate:=True, _
                 IgnorePrintAreas:=False
    Sheets("Formacion BIT").Select
End Sub

El segundo paso es poner el bucle para imprimir y se puede hacer de varias formas

Opción 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Imprimir_Hojas()
    Dim a as Byte, Num as Byte
    Sheets(Array("Hoja1", "Hoja2")).Select
    Sheets("Hoja1").Activate
    Num = 0
    For a=1 to 50
        Num = Num+1: Sheets("Hoja1").Range("A1") = Num
        Num = Num+1: Sheets("Hoja2").Range("A1") = Num
        ActiveWindow.SelectedSheets.PrintOut _
                     Copies:=1, _
                     Collate:=True, _
                     IgnorePrintAreas:=False
    Next
    Sheets("Formacion BIT").Select
End Sub

Opción 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Imprimir_Hojas()
    Dim a as Byte
    Sheets(Array("Hoja1", "Hoja2")).Select
    Sheets("Hoja1").Activate
    For a=1 to 100 step 2
        Sheets("Hoja1").Range("A1") = a
        Sheets("Hoja2").Range("A1") = a + 1
        ActiveWindow.SelectedSheets.PrintOut _
                     Copies:=1, _
                     Collate:=True, _
                     IgnorePrintAreas:=False
    Next
    Sheets("Formacion BIT").Select
End Sub

Opción 3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Imprimir_Hojas()
    Dim a as Byte
    Sheets(Array("Hoja1", "Hoja2")).Select
    Sheets("Hoja1").Activate
    For a=1 to 50
        Sheets("Hoja1").Range("A1") = (a * 2) - 1
        Sheets("Hoja2").Range("A1") = (a * 2)
        ActiveWindow.SelectedSheets.PrintOut _
                     Copies:=1, _
                     Collate:=True, _
                     IgnorePrintAreas:=False
    Next
    Sheets("Hoja1").Select
End Sub

Esta es la solución para numerar las hojas.
El problema que queda pendiente aquí, es que la impresora permita imprimir a doble cara y que el Excel puede acceder desde VBA a estas propiedades.
En mi impresora puedo imprimir a doble cara pero mi versión de Excel no me permite configurarlo desde VBA.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Imprimir 2 hojas, 50 veces y que salga numeradas correlativamente.

Publicado por Hector (2 intervenciones) el 14/10/2024 21:20:15
Muchas gracias voy a intentar copiar uno de esos métodos a ver si así puedo conseguirlo, copiando uno de los 3 (con blucle) con eso solo ya bastaría, no ?

La impresora si que imprime q doble cara, y Excel si que ejecuta los macros porque lo he echo con una sola hoja (con la macro correspondiente) no tengo mucha idea de esto la verdad, intento aprender un poco viendo vídeos y foros pero… soy novato, novato de los de abajo del todo.

Muchas gracias de verdad
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Imprimir 2 hojas, 50 veces y que salga numeradas correlativamente.

Publicado por Antoni Masana (2540 intervenciones) el 15/10/2024 09:37:49
Estos son las opciones de la instrucción:

1
ActiveWindow.SelectedSheets.PrintOut

Y como puedes ver en ninguno de ellos habla de la orientación de la hoja o impresión a doble cara entre otras opciones de impresión

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
From               Número de la página en la que comienza la impresión. Si no se especifica este argumento,
                   la impresión empieza por el principio.
 
To                 Número de la última página que se va a imprimir. Si no se especifica este argumento,
                   la impresión finaliza en la última página.
 
Copies             Número de copias que se imprimirán. Si no se especifica este argumento, se imprime una
                   sola copia.
 
Preview            True para que Microsoft Excel invoque la vista preliminar antes de imprimir el objeto.
                   False (u omitido) para imprimir el objeto inmediatamente.
 
ActivePrinter      Establece el nombre de la impresora activa.
 
PrintToFile        True para imprimir a un archivo. Si PrToFileName no se especifica, Microsoft Excel
                   solicita al usuario que especifique el nombre del archivo de salida.
 
Collate            True para intercalar varias copias.
 
PrToFileName       Si PrintToFile se establece en True, este argumento especifica el nombre del archivo
                   en el que desea imprimir.
 
IgnorePrintAreas   True para omitir las áreas de impresión e imprimir todo el objeto.

Se me ocurre una opción pero depende de la utilidad de lo que quieres hacer.
La idea es una macro para crear las 100 hojas, es decir copiar cada una de las hojas 49 veces, numerarlas, seleccionarlas todas y activar la vista previa y enviar a imprimir a mano para hacerlo a doble cara y otra macro para borrar la 98 hoja crearas.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar