Excel - Macros Para Imprimir varias hojas segun el valor de una celda

 
Vista:
sin imagen de perfil

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Eduardo (10 intervenciones) el 09/09/2016 04:18:49
Buenas Noches.

Antes que nada, quiero aclara que no se nada de VBA.

Estoy tratando de hacer una macro que Imprima determinadas hojas dada una condicion, esta misma es el valor de una celda.
Para esto escribi esta Macro, pero me da Error 1004, y la verdad es he intentado modificar varias cosas, todas de manera intuitiva, pero no he tenido exito.

Agradeceria muho su ayuda al respecto.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Sub Imprimir()
 
Dim Users As Integer
 
'Esta macro imprimime las hojas necesarias segun la cantidad de usuarios que se informaron
If Worksheets("Inicio").Range(Users).Value = "1" Then
        sheets(Array("Solicitante 1", "Final")).Select
        sheets("Final").Activate
        Application.PrintCommunication = False
    Else
        If Worksheets("Inicio").Range(Users).Value = "2" Then
            sheets(Array("Solicitante 1", "Solicitante 2", "Final")).Select
            sheets("Final").Activate
            Application.PrintCommunication = False
        Else
            If Worksheets("Inicio").Range(Users).Value = "3" Then
                sheets(Array("Solicitante 1", "Solicitante 2", "Solicitante 3", "Final")).Select
                sheets("Final").Activate
                Application.PrintCommunication = False
            Else
                If Worksheets("Inicio").Range(Users).Value = "4" Then
                    sheets(Array("Solicitante 1", "Solicitante 2", "Solicitante 3", "Solicitante 4", "Final")).Select
                    sheets("Final").Activate
                    Application.PrintCommunication = False
                Else
                    Worksheets("Inicio").Range(Users).Value = "5"
                        sheets(Array("Solicitante 1", "Solicitante 2", "Solicitante 3", "Solicitante 4", "Solicitante 5", "Final")).Select
                        sheets("Final").Activate
                        Application.PrintCommunication = False
 
                End If
            End If
        End If
    End If
End Sub
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

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Antoni Masana (2477 intervenciones) el 09/09/2016 06:59:47
¿Que valor tiene Users?

El formato correcto es este:

1
Worksheets("Sheet1").Range("A1").value

El valor de Users es un string y aparte de definirlo como integer (Entero) no le asignas valor

Otra forma más corta de escribir esta rutina. En el ejemplo he puesta la celda A1, cambialo por la que corresponda.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub Imprimir()
    Dim T1 as string, T2 as string, T3 as string, T4 as string, T5 as string
 
    T1 = "Solicitante 1": T2 = "Solicitante 2": T3 = "Solicitante 3"
    T4 = "Solicitante 4": T5 = "Solicitante 5"
 
    'Esta macro imprime las hojas necesarias segun la cantidad de usuarios
    '   que se informaron
 
    Select Worksheets("Inicio").Range("A1").Value
        case 1:  sheets(Array(T1, "Final")).Select
        case 2:  sheets(Array(T1, T2, "Final")).Select
        case 3:  sheets(Array(T1, T2, T3, "Final")).Select
        case 4:  sheets(Array(T1, T2, T3, T4, "Final")).Select
        case 5:  sheets(Array(T1, T2, T3, T4, T5, "Final")).Select
    End Select
    sheets("Final").Activate
    Application.PrintCommunication = False
End Sub

El Case 5: lo puedes cambiar por Case Else:

Saludo
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Eduardol (10 intervenciones) el 10/09/2016 00:57:26
Bien, Muchas Gracias a ver si entiendo.

SI, el valor de la celda A1 es Igual a 1, entonces deberia imprimir las Hojas T1 y FINAL.

Ahora bien, en que parte esta declarado que si el valor es 1 tiene que hacer eso, y si es 2 tiene que ser otra cosa?

Por lo poco que puedo entender, despues de
Select Worksheets("Inicio").Range("A1").Value
lo que dice, es en que el caso de ser "1", el valor tiene que hacer tal cosa y asi sucesivamente?

Te pido disculpas por mi ignorancias, pero honestamente, soy un NOOB en visualbasic, y si bien tengo una leve interpretacion de lo que esta escrito, no se para nada la sintaxis.

Desde ya estoy muy agradecido por tu ayuda.

Muchas muchas gracias
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

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Antoni Masana (2477 intervenciones) el 12/09/2016 08:56:35
Haber si me explico un poco mejor

Este es tu codigo que da un error 1004

1
2
3
4
5
6
7
8
9
10
Sub Imprimir()
 
Dim Users As Integer
 
'Esta macro imprimime las hojas necesarias segun la cantidad de usuarios que se informaron
If Worksheets("Inicio").Range(Users).Value = "1" Then
        sheets(Array("Solicitante 1", "Final")).Select
        sheets("Final").Activate
        Application.PrintCommunication = False
. . .


En la linea 6 tienes una condición que dice:

En la hoja "Inicio" toma el valor de la celda 0 (que es lo que vale la variable Users) y si vale 1 ejecuta lo que hay en las líneas 7, 8 y 9

El parámetro de Range es un texto que representa una celda o dicho de otra forma unas coordenadas X-Y, por ejemplo A1, B15, AB345, etc. NO un valor númerico que ademas no representa coordenadas.


En mi ejemplo en la linea 10 pongo una celda a modo de ejemplo

1
Select Worksheets("Inicio").Range("A1").Value

Puede ser A1, H67, CD346, eso depende de ti, de la celda donde esta definido lo que deseas imprimir.

Por Otro lado T1, T2, etc, NO son nombres de hojas, son variables con el nombre de la Hoja, prodriá haberlas llamado a las variables H1, H2, etc.o Hoja_1, Hoja_2, Hoja_3, etc. El nombre es lo de menos y si es corto para el caso mejor



Que se consigue con esto:

- Primero escribir nombre largos y complejos menos veces: No es lo mismo escribir 5 veces "Solicitante 1" que T1

- Segundo en código queda más simple y fácil de leer



Otra cosa la instrucción Select Case es equivalente al IF THEN ELSEIF ELSEIF THEN

Un ejemplo

1
2
3
4
5
6
7
Select Var
    case 1: hacer A
    case 2: hacer B
    case 3: hacer C
    case 4: hacer D
    case else: hacer E
end Select

Es exactamente lo mismo que

1
2
3
4
5
6
7
8
9
10
11
IF Var = 1 then
   hacer A
Elseif Var = 2 then
   hacer B
Elseif Var = 3 then
   hacer C
Elseif Var = 4 then
   hace D
Else
   hacer E
End IF


Done pone "hacer A" significa instrucciones varias sin especificar.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 13
Ha aumentado 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Jose Francisco Valle Fiallos (6 intervenciones) el 27/04/2019 00:06:21
Buenas tardes

Tengo una hoja de excel con 8 paginas, quisiera solo imprimir las paginas que aparecen enumeradas mediante una formula en excel, por ejemplo si la pagina 1 la tabla esta vacia no la enumera, pero si tiene contenido la enumera como la 1, hay paginas que no salen enumeradaspor lo que no me interesa imprimirlas

La condicion seria que imprimiera la pagina 1 si la celda G2, es mayor que cero
que imprimiera la pagina 2 si la celda G48 es mayor que cero
Que imprima la pagina 3 si la celda G94 es mayor que cero
que imprimiera la pagina 4 si la cela G140 es mayor que cero
que imprimiera la pagina 5si la cela G186 es mayor que cero
que imprimiera la pagina 6 si la cela G232 es mayor que cero
que imprimiera la pagina7 si la cela G278 es mayor que cero
que imprimiera la pagina8 si la cela G324 es mayor que cero

Sera posible que alguien me ayude con una macros?

Gracias

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
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

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Antoni Masana (2477 intervenciones) el 27/04/2019 10:48:30
Creo que esto hace lo que deseas y si no lo hace envía un fichero para probarlo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub Macro1()
    Dim Hojas() As Variant, Num As Byte
 
    Num = 0
    If Sheets("Hoja1").Range("G2")   > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "Hoja1"
    If Sheets("Hoja2").Range("G48")  > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "Hoja2"
    If Sheets("Hoja3").Range("G94")  > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "Hoja3"
    If Sheets("Hoja4").Range("G140") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "Hoja4"
    If Sheets("Hoja5").Range("G186") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "Hoja5"
    If Sheets("Hoja6").Range("G232") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "Hoja6"
    If Sheets("Hoja7").Range("G278") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "Hoja7"
    If Sheets("Hoja8").Range("G324") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "Hoja8"
 
    IF Num = 0 Then
       MsgBox "No hay hojas para imprimir"
    Else
        Sheets(Hojas).Select
        ActiveWindow.SelectedSheets.PrintOut _
                     Copies:=1, _
                     Collate:=True, _
                     IgnorePrintAreas:=False
        Sheets("Hoja1").Select
    End If
End Sub


Saludos.
\\//
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 13
Ha aumentado 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Jose Francisco (6 intervenciones) el 29/04/2019 23:33:46
Buenas tardes

Gracias, solo me aparece el error 9, en tiempo de ejecucion y me manda a la fila 5, muchas gracias

Solo como observacion el archivo de excel tiene 5 hojas, una de estas hojas se llama salida, en esta hoja que se llama salida, estan las 8 paginas que deseo imprimir, solo que con la condicion antes mencionada

Gracias
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

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Antoni Masana (2477 intervenciones) el 30/04/2019 08:48:46
Entendí mal el problema, confundi páginas por hojas.

Ahora esta arreglado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub Imprimir()
    Sheets("Salida").Select
    If Range("G2").Value > 0 Then Call Imprime_Pagina(1)
    If Range("G48").Value > 0 Then Call Imprime_Pagina(2)
    If Range("G94").Value > 0 Then Call Imprime_Pagina(3)
    If Range("G140").Value > 0 Then Call Imprime_Pagina(4)
    If Range("G186").Value > 0 Then Call Imprime_Pagina(5)
    If Range("G232").Value > 0 Then Call Imprime_Pagina(6)
    If Range("G278").Value > 0 Then Call Imprime_Pagina(7)
    If Range("G324").Value > 0 Then Call Imprime_Pagina(8)
End Sub
 
Sub Imprime_Pagina(Num)
    ActiveWindow.SelectedSheets.PrintOut _
                 From:=Num, _
                 To:=Num, _
                 Copies:=1, _
                 Collate:=True, _
                 IgnorePrintAreas:=False
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 13
Ha aumentado 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Jose Francisco (6 intervenciones) el 30/04/2019 17:18:55
Buenos días

Amigo funciono a la perfección, mil gracias, sos un genio

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
sin imagen de perfil

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Wilmary (2 intervenciones) el 30/05/2020 00:03:48
Hola buenas tardes, necesito tu colaboración, Soy Administradora, manejo excel en un nivel intermedio, intente aplicar tu macro a un archivo pero me genera un error 9 por éste código Sheets(Hojas).Select, cambie el nombre de hojas por el nombre de una hoja del archivo e imprimió esa hoja, como se hace para que imprimas las hojas que cumplan con la condición que sean mayor a "0". Gracias de antemano.
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

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Antoni Masana (2477 intervenciones) el 30/05/2020 12:32:13
Como no se que datos tienes ni como has aplicado la macro no puedo ayudarte sin ver el libro.

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

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Wilmary Salazar (2 intervenciones) el 31/05/2020 20:13:01
Hola, revisé tu código y pude entender que realizas un llamado a otras macros predefinidas si se cumple la condición.
mi archivo tiene 32 hojas, entonces no quería crear tantas mini macros, intenté con el siguiente código, pero no funciona bien en el caso de las hojas sin informacón me imprime la Hoja llamada "Salida", no entiendo el porqué.
1
2
3
4
5
6
7
8
9
10
Sub Imprimir()
 
    Sheets("Salida").Select
    If Range("D3").Value > 0 Then Sheets(Array("9;00", "GL_9;00")).Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
 
    If Range("D4").Value > 0 Then Sheets(Array("9;30", "GL_9;30")).Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
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

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Antoni Masana (2477 intervenciones) el 31/05/2020 21:24:52
Este foro empezó con:

1º - un problema de Eduárdo.
2º - siguió José Francisco.
3º - y ahora Wilmary Salazar

Y cada uno tiene un problema diferente con ciertos matices iguales.
Cada uno tiene un problema para una situación diferente y formato de datos diferentes y una necesidades diferentes.
El titulo del apartado "Macros Para Imprimir varias hojas segun el valor de una celda" es muy ambiguo y muy general.
Mi consejo es abrir un nuevo chat para el problema y si un caso hacer referencia al que has tomado de referencia que mezclar problemas.
Cada caso necesita una solución diferente por que cada uno lo hace como cree mejor hacerlo.
Yo desconozco que datos tienes como están organizados y que quieres hacer con ellos.
Uno de los problemas que tenemos a la hora de explicar es que no sabemos y lo digo en primera persona porque soy el primero que me cuesta explicar y mucho más explicar por escrito.
Para solucionar tu problema he de entender tu problema y para empezar no se cuantas hojas (de Excel) tiene tu libro (de Excel) y cuando te refieres a que tu libro tiene 32 hojas son de Excel o es una hoja de Excel que imprime 32 hojas de papel. Segundo no se como se llama tu hoja u hojas de Excel, tampoco se que es "Cuando la condición sea mayor de 0" ¿Cual condición? Teniendo en cuanta que un una hoja de Excel de la versión a partir de 2007 tiene 17.179.869.184 de celdas se me hace un poco difícil adivinar cual es la condición.

Sube un libro de muestra a este foro o puedes enviarlo a mi correo ([email protected])y con mucho gusto te ayudare a solventar el problema.

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

Macros Para Imprimir varias hojas desde un boton

Publicado por John (1 intervención) el 05/02/2021 20:21:18
Hola tengo un libro de excel en el cual quisiera poner un boton con la leyenda de imprimir y este imprimiera las hojas seleccionas pero no se como realizarlo
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

Macros Para Imprimir varias hojas desde un boton

Publicado por Antoni Masana (2477 intervenciones) el 05/02/2021 23:49:53
Selecciona las hojas que quieres imprimir.
Activa la opción de GRABAR MACRO.
Imprime las hojas
Desactiva GRABAR MACRO.

Y ya tienes la macro para imprimir las hojas seleccionadas

Ahora añade un botón y asigna la macro.

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
sin imagen de perfil

Macros Para Imprimir varias hojas desde un boton

Publicado por Gustavo (10 intervenciones) el 03/12/2021 17:10:28
Buenas tardes amigo

Tengo un archivo en Excel con varias hojas, estoy buscando como crear un botón "imprimir" que imprimas las otras hojas de acuerdo a un valor de celda, cada hoja tiene un valor de celda diferente
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

Macros Para Imprimir varias hojas desde un boton

Publicado por Antoni Masana (2477 intervenciones) el 03/12/2021 17:52:26
Gustavo sube un ejemplo y hablamos.

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
sin imagen de perfil

Macros Para Imprimir varias hojas desde un boton

Publicado por Gustavo (10 intervenciones) el 03/12/2021 19:03:16
Tengo un documento, en donde en la hoja "orden de producción" tengo relacionados hasta 40 personas a las cuales les debo imprimir el numero de etiquetas relacionadas en la columna "S" con toda la información, para cada persona hay una hoja con la etiqueta a generar (desde Etiqueta 01 hasta Etiqueta 40),

Ejemplo:
Si la Celda S12 es mayor a 0, imprima la hoja "Etiqueta 01" el numero de veces que dice la celda S12 +1
Si la Celda S13 es mayor a 0, imprimir la hoja "Etiqueta 02" el numero de veces que dice la celda S13 + 1

Así hasta la celda S51- Etiqueta 40, Y si no encuentra valores superiores a 0 en las celdas, no que imprima las hojas.

Gracias.
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

Macros Para Imprimir varias hojas desde un boton

Publicado por Antoni Masana (2477 intervenciones) el 03/12/2021 22:19:40
Gustavo sube un LIBRO de ejemplo y hablamos.

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
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

Macros Para Imprimir varias hojas desde un boton

Publicado por Antoni Masana (2477 intervenciones) el 10/12/2021 15:02:53
La macro es esta:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Sub Imprimir_Etiquetas()
    Dim Fila As Integer
 
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    ActiveSheet.DisplayPageBreaks = False
 
    With Sheets("ORDEN DE PRODUCCION")
        For Fila = 12 To 51
            If .Cells(Fila, "S") > 0 Then
                Sheets("ETIQUETA " + Right(Str(Fila + 89), 2)).Select
                ActiveWindow.SelectedSheets.PrintOut _
                             Copies:=.Cells(Fila, "S") + 1, _
                             Collate:=True, _
                             IgnorePrintAreas:=False
            End If
        Next
        .Select
    End With
 
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    ActiveSheet.DisplayPageBreaks = True
    Application.CutCopyMode = False
End Sub

La macro no está probada. Tendrás que guardar el libro como .xlsm o .xlsb

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Macros Para Imprimir varias hojas desde un boton

Publicado por Gustavo Torres (10 intervenciones) el 10/12/2021 16:53:12
Al probar la macro me sale este error
Error-macro
Macro-Depurada

cabe mencionar que las hojas "Etiqueta 01, 02, 03,.... están ocultas

Disculpe la molestia, Y si quiero que me pregunte para cual impresora imprimir?
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

Macros Para Imprimir varias hojas desde un boton

Publicado por Antoni Masana (2477 intervenciones) el 10/12/2021 17:03:00
El mismo con pregunta por hoja

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Sub Imprimir_Etiquetas()
    Dim Fila As Integer, Hora as String, Res as Byte
 
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    ActiveSheet.DisplayPageBreaks = False
 
    With Sheets("ORDEN DE PRODUCCION")
        For Fila = 12 To 51
            If .Cells(Fila, "S") > 0 Then
                Hoja =  "ETIQUETA " + Right(Str(Fila + 89), 2)
                Res = MsgBox ("Desea imprimir " & .Cells(Fila, "S") + 1 & _
                              " copias de la hoja " & Hoja, _
                                 vbQuestion + vbYesNo + vbDefaultButton1, _
                              "IMPRIMIR")
                If Res = vbYes Then
                    Sheets(Hoja).Select
                    ActiveWindow.SelectedSheets.PrintOut _
                                 Copies:=.Cells(Fila, "S") + 1, _
                                 Collate:=True, _
                                 IgnorePrintAreas:=False
                End If
            End If
        Next
        .Select
    End With
 
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    ActiveSheet.DisplayPageBreaks = True
    Application.CutCopyMode = False
End Sub


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Macros Para Imprimir varias hojas desde un boton

Publicado por Gustavo Torres (10 intervenciones) el 10/12/2021 22:25:15
Error-del-Sistema

Parece que no se va a poder, me sale ese error y luego otro que dice memoria insuficiente
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

Macros Para Imprimir varias hojas desde un boton

Publicado por Antoni Masana (2477 intervenciones) el 11/12/2021 19:08:34
A parte de la variable Hoja que no estaba definida la macro me funciona perfectamente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Sub Imprimir_Etiquetas()
    Dim Fila As Integer, Hora As String, Res As Byte, Hoja As String
 
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    ActiveSheet.DisplayPageBreaks = False
 
    With Sheets("ORDEN DE PRODUCCION")
        For Fila = 12 To 51
            If .Cells(Fila, "S") > 0 Then
                Hoja = "ETIQUETA " + Right(Str(Fila + 89), 2)
                Res = MsgBox("Desea imprimir " & .Cells(Fila, "S") + 1 & _
                              " copias de la hoja " & Hoja, _
                                 vbQuestion + vbYesNo + vbDefaultButton1, _
                              "IMPRIMIR")
                If Res = vbYes Then
                    Sheets(Hoja).Select
                    ActiveWindow.SelectedSheets.PrintOut _
                                 Copies:=.Cells(Fila, "S") + 1, _
                                 Collate:=True, _
                                 IgnorePrintAreas:=False
                End If
            End If
        Next
        .Select
    End With
 
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    ActiveSheet.DisplayPageBreaks = True
    Application.CutCopyMode = False
End Sub

No se cual puede ser el problema.

Puede que sea la versión de Excel, hay instrucciones que cambian con la versión, o que el ordenador tenga poca memoria y este muy cargado aunque el libro no es muy grande, puede que necesite 2 MB de memoria y no los tenga, pero esto es una valoración aproximada.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Macros Para Imprimir varias hojas desde un boton

Publicado por Gustavo Torres (10 intervenciones) el 13/12/2021 16:53:29
Hola

Ya descubrí el problema, lo que pasa es que yo tengo ocultas todas las pestañas de etiquetas, solo tengo visible la que se llama "Orden de producción" por lo cual me genera error la linea 18 de la macro que me envías, ¿hay alguna posibilidad de que pueda trabajar con las demás hojas ocultas y que solo me pregunte para cual impresora quiero enviar esta impresión, mas no que me pregunte por cada etiqueta si deseo imprimirlas?
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

Macros Para Imprimir varias hojas desde un boton

Publicado por Antoni Masana (2477 intervenciones) el 13/12/2021 17:48:33
Creo que esto es lo que deseas.

Le he puesto una pregunta al inicio de la macro para cancelar si no deseas imprimir,
Las hojas de etiquetas pueden estar visibles u ocultas que ya no da error y las imprime todas las seleccionadas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Sub Imprimir_Etiquetas()
    Dim Fila As Integer, Hora As String, Res As Byte, Hoja As String
    Dim Def As String, Ocultar as Boolean
 
    ' ---&--- Pregunta si desea imprimir antes de iniciar la macro
 
    Res = MsgBox("¿Desea imprimir les etiquetas?" , vbQuestion + vbYesNo + vbDefaultButton1, "IMPRIMIR")
    If Res = vbNo Then Exit Sub
 
    ' ---&--- Guarda la impresora por DEFECTO actual
 
    Def = Application.ActivePrinter
 
    ' ---&--- Selecciona la nueva impresora
 
    Application.Dialogs(xlDialogPrinterSetup).Show
 
    ' ---&--- Inicia la Impresión
 
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    ActiveSheet.DisplayPageBreaks = False
 
    Ocultar=False
    With Sheets("ORDEN DE PRODUCCION")
        For Fila = 12 To 51
            If .Cells(Fila, "S") > 0 Then
                Hoja = "ETIQUETA " + Right(Str(Fila + 89), 2)
 
                ' --- Si la hoja esta oculta la muestra para imprimir
 
                If Not Sheets(Hoja).Visible Then
                   Ocultar = True
                   Sheets(Hoja).Visible=True
                End If
 
                ' --- Imprimir la hoja de etiquetas
 
                Sheets(Hoja).Select
                ActiveWindow.SelectedSheets.PrintOut _
                             Copies:=.Cells(Fila, "S") + 1, _
                             Collate:=True, _
                             IgnorePrintAreas:=False
 
                ' --- Si la hoja estaba oculta la vuelve a ocular
 
                IF Ocultar Then
                   Ocultar = False
                   Sheets(Hoja).Visible=False
                End If
            End If
        Next
        .Select
    End With
    Application.ActivePrinter = Def
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    ActiveSheet.DisplayPageBreaks = True
    Application.CutCopyMode = False
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Macros Para Imprimir varias hojas desde un boton

Publicado por Gustavo Torres (10 intervenciones) el 13/12/2021 18:31:10
Muchisimas gracias, sin duda todo un crack
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
sin imagen de perfil

Macros Para Imprimir varias hojas desde un boton

Publicado por Gustavo Torres (10 intervenciones) el 13/12/2021 20:36:02
Lo siento, pero solo me imprime toda la cantidad de etiquetas de la Etiqueta 01, las demas no se imprimen
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
sin imagen de perfil

Macros Para Imprimir varias hojas desde un boton

Publicado por Gustavo Torres (10 intervenciones) el 13/12/2021 21:03:20
Cooregido el error, si funciona... gracias
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

Macros Para Imprimir varias hojas desde un boton

Publicado por Antoni Masana (2477 intervenciones) el 13/12/2021 21:07:43
Por curiosidad, ¿Cual es el error? Es que no he podido probar la macro.

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
sin imagen de perfil

Macros Para Imprimir varias hojas desde un boton

Publicado por Gustavo Torres (10 intervenciones) el 13/12/2021 22:20:24
Había eliminado una hoja, pero ya todo solucionado... Muchisimas gracias!
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
sin imagen de perfil

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Melissa (1 intervención) el 20/01/2022 17:17:59
Buenas, eh revisado su post sobre el código, pero cuando le doy run, me aparece el error "9", quisiera saber si pueda ayudarme, le adjunto los datos:
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

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Antoni Masana (2477 intervenciones) el 20/01/2022 20:39:13
Has cometido un error o varios según se mire.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Sub Macro1()
    Dim Hojas() As Variant, Num As Byte
 
    Num = 0
    If Sheets("MATERIAS PRIMAS").Range("T2") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "MATERIAS PRIMAS"
    If Sheets("OBSERVACIONES EN PROCESOS").Range("r2") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "OBSERVACIONES EN PROCESOS"
    If Sheets("TELARES").Range("ap2") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "TELARES"
    If Sheets("CORTADORA").Range("L1") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "CORTADORA"
    If Sheets("IMPRESIÓN").Range("f1") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "IMPRESIÓN"
    If Sheets("ULTRASONIDO").Range("f1") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "ULTRASONIDO"
    If Sheets("BOLSOS").Range("ag2") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "BOLSOS"
    If Sheets("DOBLADILLO").Range("ag1") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "DOBLADILLO"
    If Sheets("BIGBAG").Range("ag2") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "BIGBAG"
    If Sheets("PRENSA").Range("w2") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "PRENSA"
 
 
    If Num = 0 Then
       MsgBox "No hay hojas para imprimir"
    Else
        Sheets("Hojas").Select      ' <--- Aqui pones que seleccione la hoja que se llama: Hojas y no existe
        ActiveWindow.SelectedSheets.PrintOut _
                     Copies:=1, _
                     Collate:=False, _
                     IgnorePrintAreas:=True
 
    Sheets("Imprimir").Select
    End If
End Sub


En lugar de pasar un texto tienes que pasar la tabla, entonces da error de núeva y en este caso la tabla Hojas empieza en el elemento 0.
Hay dos formas de arreglar esto una es poniendo al principio Option Base 1

1
2
3
4
5
6
Option Base 1
 
Sub Macro1()
    Dim Hojas() As Variant, Num As Byte
 
    Num = 0


Y la otra es hacer los cambios que pongo aquí

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Sub Macro1()
    Dim Hojas() As Variant, Num As Integer
 
    Num = -1
    If Sheets("MATERIAS PRIMAS").Range("T2") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "MATERIAS PRIMAS"
    If Sheets("OBSERVACIONES EN PROCESOS").Range("r2") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "OBSERVACIONES EN PROCESOS"
    If Sheets("TELARES").Range("ap2") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "TELARES"
    If Sheets("CORTADORA").Range("L1") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "CORTADORA"
    If Sheets("IMPRESIÓN").Range("f1") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "IMPRESIÓN"
    If Sheets("ULTRASONIDO").Range("f1") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "ULTRASONIDO"
    If Sheets("BOLSOS").Range("ag2") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "BOLSOS"
    If Sheets("DOBLADILLO").Range("ag1") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "DOBLADILLO"
    If Sheets("BIGBAG").Range("ag2") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "BIGBAG"
    If Sheets("PRENSA").Range("w2") > 0 Then Num = Num + 1: ReDim Preserve Hojas(Num): Hojas(Num) = "PRENSA"
 
 
    If Num = -1 Then
       MsgBox "No hay hojas para imprimir"
    Else
        Sheets(Hojas).Select
        ActiveWindow.SelectedSheets.PrintOut _
                     Copies:=1, _
                     Collate:=False, _
                     IgnorePrintAreas:=True
 
    Sheets("Imprimir").Select
    End If
End Sub


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
Imágen de perfil de Alejandro

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Alejandro (1 intervención) el 21/02/2022 16:38:06
buen día, mi pregunta es: como poder imprimir la misma hoja de acuerdo al valor de una celda, manejamos hilos y el formato es el mismo, sin embargo el total de cajas varia haciendo que el numero de tarimas también varié,
pueden ser
20 tarimas con 20 cajas por tarima
3 tarimas con 10 tarimas y una cuarta de 6 tarimas...
siendo el valor de la celda total de tarimas, las hojas que se necesitan imprimir.

Las tarimas pueden ser desde una hasta 120

adjunto archivo
agradeciendo el apoyo quedo atento a sus comentarios
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

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Antoni Masana (2477 intervenciones) el 22/02/2022 15:43:07
Si creas una Base de datos con los datos de la hoja de impresión se pueden ir imprimiendo las hojas.

Te pongo dos ejemplo u opciones.

En la 1ª hay una fila para cada etiqueta.
En la 2ª hay una sola fila con la cantidad total de cajas y las cajas por tarima y la macro calcula la cantidad de tarimas y las cajas por tarimas.

Y en la hoja de salida un solo diseño que se ira rellenando e imprimiendo.

Y supongo que ya debes tener la base de datos ahora solo falta adaptarlo.

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
Imágen de perfil de David

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por David (2 intervenciones) el 03/08/2022 20:55:17
Hola Antoni, estuve revisando tus ejemplos para saber como adecuarlos a mi necesidad pero me perdí un poco, tal vez me puedas ayudar con esto: Necesito imprimir un paquete de formatos varios (para reportar avances de un proyecto), y cada formato ha de imprimirse en una cantidad x (que puede variar o incluso ser 0 dependiendo de la etapa del proyecto). Lo planeo hacer desde un índice donde ingrese dichas cantidades y mande a imprimir el paquete de reportes. Adjunto imagen. De antemano muchas gracias.
Captura-de-pantalla-2022-08-03-134925
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

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Antoni Masana (2477 intervenciones) el 04/08/2022 17:18:27
Esta es la macro para imprimir según las especificaciones de la hoja Índice.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Imprimir()
    Dim Fila As Long
    With Sheets("Índice")
        Fila = 3
        While .Cells(Fila, "B") <> Empty
           Sheets(.Cells(Fila, "B")).Select
           ActiveWindow.SelectedSheets.PrintOut _
                                       Copies:=.Cells(Fila, "C"), _
                                       Collate:=True, _
                                       IgnorePrintAreas:=False
           Fila = Fila + 1
        Wend
    End With
End Sub

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

Macros Para Imprimir varias hojas segun el valor de una celda

Publicado por Fabio (2 intervenciones) el 26/02/2023 03:17:49
Hola Antoni, tengo la misma situación, pero he probado el código y me presenta error 13 los tipos no coinciden, no encuentro la razon si basicamente es la isma situacion del ejemplo
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