Excel - Esperar la ejecución en bucle

 
Vista:
sin imagen de perfil
Val: 3
Ha aumentado su posición en 10 puestos en Excel (en relación al último mes)
Gráfica de Excel

Esperar la ejecución en bucle

Publicado por Javier (2 intervenciones) el 28/02/2020 15:56:39
Hola, tengo un código para mandar a imprimir dentro de un bucle, donde el usuario tiene que decir por cada iteración si quiere o no imprimir. La cuestión es que cuando sale el diálogo de imprimir el código sigue ejecutándose y no espera a que el usuario seleccione impresora y mande imprimir.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub imprimirCortes()
    Range("E1").Copy Range("B2")
    While Range("B2") <= Range("E2")
        ActiveSheet.Calculate
        Dim answer As Integer
        answer = MsgBox("¿Quieres imprimir este corte?", vbYesNo)
        If answer = 6 Then
            ActiveSheet.PageSetup.PrintArea = "A1:B16"
            Application.CommandBars.ExecuteMso ("PrintPreviewAndPrint")
        End If
        Range("B2").Value = Range("B2") + 1
 
    Wend
    Range("E2").Copy Range("B2")
 
 
End Sub


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

Esperar la ejecución en bucle

Publicado por Antoni Masana (2477 intervenciones) el 28/02/2020 17:40:28
Te adjunto un archivo de prueba.

Después de preguntar se espera a que imprima y vuelve a realizar la misma pregunta.
El único problema que he encontrado es que si contesta SI, no lo envía a imprimir y vuelve al libro no se ejecuta ningún evento.
Para que la macro pueda continuar he puesto varios disparadores, por llamarlos de alguna forma, para que cuando cambie de celda o de hoja continua 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
Val: 3
Ha aumentado su posición en 10 puestos en Excel (en relación al último mes)
Gráfica de Excel

Esperar la ejecución en bucle

Publicado por Javier (2 intervenciones) el 29/02/2020 06:10:38
Estupendo, muchísimas gracias. Al final opté por otra opción y lo dejé así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub imprimirCortes()
    Range("E1").Copy Range("B2")
    While Range("B2") <= Range("E2")
        ActiveSheet.Calculate
        Dim answer As Integer
        answer = MsgBox("¿Quieres imprimir este corte?", vbYesNo)
        If answer = 6 Then
            Application.Dialogs(xlDialogPrint).Show
            'ActiveSheet.PageSetup.PrintArea = "A1:B16"
            'Application.CommandBars.ExecuteMso ("PrintPreviewAndPrint")
        End If
        Range("B2").Value = Range("B2") + 1
 
    Wend
    Range("E2").Copy Range("B2")
 
 
End Sub


Muchísimas gracias nuevamente!
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