En VBA Excel. Si cancelas el dialogo Guardar como: salir de la macro sin error
Esta macro guarda bien pero si cancelo el cuadro dialogo Guardar como: me dice que el libro se guardo, ¿Cómo qué se guardo si cancele?.
Otra cosa es que en el libro origen, si cancelo el dialogo, queda la selección en la hoja origen, (la de los puntitos), no ocurre si guardo. Le agregue la línea; Application.CutCopyMode = False para evitar lo anterior. No se si esta bien colocada
Que si cancelo el cuadro dialogo Guardar como: no guarde y me diga; MsgBox "Usted cancelo el proceso de guardado" y salga de la macro.
Private Sub cbtCopia_Nuevo_Click()
'Por.Dante Amor
Application.ScreenUpdating = False
Set hc = HojaProdct 'Se establece la variable hc como la hoja origen
Set l1 = Workbooks.Add 'Se crea un nuevo libro y a la vez se establece el nuevo libro en la variable l1
Set h1 = l1.ActiveSheet 'Se establece la nueva hoja del libro nuevo en la variable h1
c = lista.ColumnCount 'Cuenta la cantidad columnas del ListBox
f = lista.ListCount 'cuenta el número de lineas del ListBox
hc.Rows(1).Copy h1.Range("A1") 'Se copia la fila 1 de la hoja origen a la nueva hoja empezando en la celda A1
hc.Columns("A:G").Copy ''Copia las columnas. Para poner el mismo ancho de columnas:
h1.Range("A1").PasteSpecial Paste:=xlFormats 'Las pega pero con formato especial sólo formatos
'Recibe el rango de celdas el contenido del listbox, pero le resta 2 columnas para evitar el error _
#N/A, una por la columna que hace falta y otra por la fecha, ya que la fecha se pasa en otro momento.
h1.Range(h1.Cells(2, 1), h1.Cells(f + 1, c - 2)) = lista.List
'Para poner el formato de fecha utilizo la siguiente instrucción para cada fecha que tienes almacenada en el listbox
For i = 0 To lista.ListCount - 1
h1.Cells(i + 2, "G") = Format(lista.List(i, 6), "mm/dd/yyyy")
Next
'Las fechas están en la columna 6 del listbox y se pasan a la columna "G"
Application.DisplayAlerts = False 'Para que solo pregunte 1 vez si quier oreemplazar el existente
With Application.FileDialog(msoFileDialogSaveAs)
.Title = "Exportar Archivo a Nuevo Excel"
.AllowMultiSelect = False
.FilterIndex = 1
If .Show Then
march = .SelectedItems(1)
Range("A2").Select 'quitar a seleccion
h1.SaveAs Filename:=march, _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End If
Application.CutCopyMode = False 'PARA QUE NO QUEDE SELECION EN LA HOJA ORIGEN CUANDO CANCELAS EL CUADOR DIALOGO GUARDAR COMO:
End With
l1.Close 'Cierra el nuevo libro
Application.ScreenUpdating = True
MsgBox "Nuevo Libro Creado"
Unload Me
End Sub
1 respuesta
Respuesta de Dante Amor
2


