Guardar como, error al hacer click en Cancelar

Tengo un problema con esta macro.

Dim strExcelArchivo As String
On Error Resume Next
strExcelArchivo = Application.GetSaveAsFilename _
("OCGC " & Periodo, "Libro de Microsoft Office Excel(*.xlsx), ")
ActiveWorkbook. Close True, strExcelArchivo

Me abre el cuadro Guardar como, y guarda el archivo bien, donde selecciono.

El problema es que si le doy a Cancelar me guarda igual el mismo archivo con el nombre "Falso". Lo que quiero es que cuando le de a Cancelar se cierre el cuadro de diálogo y no guarde nada.

1 Respuesta

Respuesta
1

Te anexo una opción

    'On Error Resume Next
    Dim strExcelArchivo As Variant
    strExcelArchivo = Application.GetSaveAsFilename _
        ("OCGC " & Periodo, "Libro de Microsoft Office Excel(*.xlsx), ")
    If strExcelArchivo = "" Or strExcelArchivo = False Then
        Exit Sub
    Else
        ActiveWorkbook.Close True, strExcelArchivo
    End If

Debes quitar la instrucción On Error Resume Next, para que en caso de error sepas en dónde está el error y cuál es el error.

También cambia la declaración de la variable strExcelArchivo a Variant


.

.

Estimado Dante.

Ahora cuando lo guardo perfecto, si le doy a Cancelar no lo guarda pero me deja abierto el libro a guardar sin darle el nombre asignado, por ejemplo "Libro 6"

Te envío el código entero de la macro a ver si pudieras encontrar que estoy haciendo mal.

Sub GuardarPatronOCGC()
'Guarda un fichero igual a la hoja Patron OC GC en la ruta que querramos, para luego cargarlo
'a traves de la aplicación de Citrix
Application.ScreenUpdating = False
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
'
Set d = Sheets("Patron OC GC")
d.Select
Ultima = Range("A" & Rows.Count).End(xlUp).Row
Dim Periodo As String
Periodo = d.Range("A2")
With d.Range("a1:n" & Ultima)
  Workbooks.Add xlWBATWorksheet
  .EntireColumn.Copy Range("a1")
  Range("a1:n" & Ultima) = .Value
  With ActiveSheet.PageSetup
    .PrintArea = Range("a1:n" & Ultima).Address
    .CenterHorizontally = True
    .LeftMargin = 0: .RightMargin = 0
    .Zoom = False: .FitToPagesTall = 1: .FitToPagesWide = 1
  End With
End With
Dim strExcelArchivo As Variant
    strExcelArchivo = Application.GetSaveAsFilename _
        ("OCGC " & Periodo, "Libro de Microsoft Office Excel(*.xlsx), ")
    If strExcelArchivo = "" Or strExcelArchivo = False Then
        Exit Sub
    Else
        ActiveWorkbook.Close True, strExcelArchivo
    End If
Sheets("Listado OT").Select
'
Application.ScreenUpdating = True
Application.EnableEvents = True
ActiveSheet.DisplayPageBreaks = True
Application.CutCopyMode = False
End Sub

Cambia

Exit Sub

Por

ActiveWorkbook.close False

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas