Hola no se porque me esta saliendo el siguiente error:
Se ha producido el error "1004" en tiempo de ejecucion
Error en el metodo "Copy" de objeto "_Worksheet"
El codigo que utilizo es el siguiente:
Private Sub CommandButton7_Click()
' Declaramos las variables
Dim ws As Worksheet, wb As Workbook
Dim Archivo, Respuesta As VbMsgBoxResult
' Comprobamos que la hoja Reportes
' existe en el libro activo.
On Error Resume Next
Set ws = ActiveWorkbook.Worksheets("Reportes")
On Error GoTo 0
If Not ws Is Nothing Then
' Si la hoja Reportes existe
' Mostramos tres opciones: Guardar
' Descartar o Cancelar la operacion.
Respuesta = MsgBox( _
"?Desea guardar los cambios?", _
vbYesNoCancel + vbExclamation, _
"Cerrar el libro")
Select Case Respuesta
' Si la respuesta es Guardar...
Case vbYes
' Mostramos el dialogo de Guardar como...
Archivo = Application.GetSaveAsFilename( _
fileFilter:="Archivos Microsoft Excel (*.xls), *.xls")
' Si el usuario ha proporcionado la ruta
' y ha pulsado el boton guardar...
If Archivo <> False Then
' Copiamos la hoja Reportes a un libro nuevo...
ws.Copy
' Guardamos el nuevo libro usando la ruta y
' nombre de archivo proporcionados por el usuario.
ActiveWorkbook.SaveAs Archivo
Else
' Si la respuesta es Cancelar, mostramos un
' mensaje de aviso y abortamos el macro.
MsgBox "Se ha cancelado la operacion."
Exit Sub
End If
Case vbNo
' Si la respuesta es Descartar, mostramos
' un mensaje de aviso. Mas abajo procederemos
' a cerrar todos los libros sin guardar cambios
' y a cerrar Excel.
MsgBox "No se han guardado los cambios."
Case vbCancel
' Si la respuesta es Cancelar, mostramos un
' mensaje de aviso y abortamos el macro.
MsgBox "Se ha cancelado la operacion."
Exit Sub
End Select
' Ojo - tal como planteas la tarea, habra
' que forzosamente cerrar todos los archivos
' abiertos guardando o descartando los cambios.
' Personalmente me parece una caracteristica
' bastante irritante en cualquier aplicacion.
For Each wb In Workbooks
' Marcar todos los libros como guardados
' para evitar el aviso de guardar cambios.
wb.Saved = True
' Si quieres guardar los cambios forzosamente
' sustituye la instruccion "wb.Saved = True"
' por "wb.Save"
Next wb
With Application
' Congelar la pantalla
.ScreenUpdating = False
' Cerrar Excel
.Quit
End With
' Si no existe la hoja Reportes, mostramos
' un mensaje de aviso y salimos del macro.
Else
MsgBox _
"No existe la hoja ""Reportes"" en el libro activo"
End If
End Sub
Si pueden ayudarme les agradesco.
GRacias
Leer las respuestas