Al presionar cancelar se detenga la macro

Buenas tardes.

Estoy varado en este dilema, tengo una rutina para copiar 2 hojas de un libro de 30 y se abra el dialogo de mover o copiar hojas a un nuevo libro y al aceptar se abre el dialogo de guardar como , después se exporta el archivo a PDF y por ultimo se cierra el libro nuevo creado,.......mi problema es que si le doy cancelar (por que me equivoque en algo) al dialogo de mover o copiar hojas, la macro sigue corriendo y me crea un caos, me borra vínculos etc..... Como puedo detener la rutina si le doy cancelar a ese dialogo??, es posible???

Esta es mi Rutina:

Sub ImprimeCot_10()
Application.ScreenUpdating = False
Sheets(Array("Forma10", "NP10")).Select
Sheets("Forma10").Activate
Application.Dialogs(xlDialogWorkbookCopy).Show
Sheets("Forma10").Select
Cells.Select
Range("A20").Activate
Selection.Copy
Cells.Select
Range("A20").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("NP10").Select
Cells.Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Sheets("Forma10").Select
Range("A1").Select
Application.Dialogs(xlDialogSaveAs).Show
Salvar_PDF
ActiveWorkbook.Close
ActiveWorkbook.Activate
Sheets("Cotizacion10").Select
Range("C2").Select
Application.ScreenUpdating = True
End Sub

Ojala sea posible me ayuden, pues no puedo dar con la solución....

Gracias de antemano

1 respuesta

Respuesta
1

Así quedaría tu macro

Sub ImprimeCot_10()
Application.ScreenUpdating = False
Sheets(Array("Forma10", "NP10")).Select
Sheets("Forma10").Activate
With Application.Dialogs(xlDialogWorkbookCopy)
    If .Show Then
        Sheets("Forma10").Select
        Cells.Select
        Range("A20").Activate
        Selection.Copy
        Cells.Select
        Range("A20").Activate
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Sheets("NP10").Select
        Cells.Select
        Application.CutCopyMode = False
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Range("A1").Select
        Sheets("Forma10").Select
        Range("A1").Select
        With Application.Dialogs(xlDialogSaveAs)
            If .Show Then
                salvar_pdf
            End If
        End With
        ActiveWorkbook.Close
        ActiveWorkbook.Activate
        Sheets("Cotizacion10").Select
        Range("C2").Select
        Application.ScreenUpdating = True
    End If
End With
End Sub

No olvides finalizar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas