¿Macro VBA para abrir archivo en cierra todo el documento de excel al dar clic en cancelar o cerrar?

Hola, tengo una macro que abre un documento y copia ciertas celdas, pero si al mostrar la ventana de abrir la cierro o cancelo mi documento principal se cierra.

Mi rutina es esta:

Sub schatzpegar()
Range("F4").Select
Application.Dialogs(xlDialogOpen).Show
nombre = ActiveWorkbook.Name
Range("B3:B56").Select
Selection.Copy
ActiveWindow.Close
ActiveSheet.Paste
Selection.NumberFormat = "0.00"
Selection.NumberFormat = "General"
With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
End Sub

1 Respuesta

Respuesta
1

La instrucción Application. Dialogs(xlDialogOpen).Show muestra el cuadro de dialogo abrir, si damos abrír, cancelar o cerrar (en la X) esta función nos devuelve un valor, de acuerdo a esto debemos verificar que el valor nos devuelve. Abrir devuelve true, Cerrar y Cancelar devuelven false. Reemplaza el inicio de tu código por este.

Sub schatzpegar()
Dim Respuesta
Range("F4").Select
Respuesta = Application.Dialogs(xlDialogOpen).Show

'Si Respuesta es false, quiere decir que se presiono Cancelar o Cerrar
If Respuesta = False Then Exit Sub

'Aca continua tu código si se presiono abrir

nombre = ActiveWorkbook.Name
Range("B3:B56").Select
Selection. Copy

'Debes tener presente que la siguiente instrucción te cierra la ventana activa

ActiveWindow. Close
ActiveSheet. Paste

.

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas