Macro Excel para copia de rango con error
Esta la macro del amigo Dante con mucha modificación para esta plantilla
Sub guardar_Copia() 'GUARDAR la hoja como XLSX, y PDF, sin butones, imagenes y macros
'Por.Dante Amor http://www.todoexpertos.com/preguntas/6fxnalqm9tyxkxdd/en-macro-excel-copiar-el-rango-en-ves-de-la-hoja?selectedanswerid=6g395i5pqbj6ipxt
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'& Format(.Range("H3"), "2016-00000") '"0000")
Set h1 = Sheets(1)
'Nombre para el archivo Para solo las iniciales en E8
nbr = Ini(Quitar(h1.Range("E4"))) & "_" & h1.Name & " " & Format(h1.Range("H3"), "2016-00000") & " " & h1.Range("E8").Value
'Ruta carpeta destino en la ventana Guardar como:. Puede cambiar la ruta aqui
rut = "C:\0\"
'El cuadro dialogo abre en la carpeta de rut Guardar copia desde el cuadro dialogo
With Application.FileDialog(msoFileDialogFolderPicker) 'Abre el cuadro dialogo
.Title = "Selecciona destino"
.AllowMultiSelect = False
.InitialFileName = rut
'Si cancela sale de la macro
If .Show <> -1 Then Exit Sub
cp = .SelectedItems(1)
End With
'Copia la hoja
h1.Copy
'Elimina objetos Shapes (formas) existentes en la hoja
Set h2 = Sheets(1)
h2.Unprotect Password:="By Jot@" 'Desprotege la copia .Ver si funciona bien sin o con el passw
'Establecer área de impresión
h2.PageSetup.PrintArea = "$B$2:$H$40"
'elimina controles
''''h2.DrawingObjects.Delete 'elimina todo objecto que exista en la hoja; botones imagenes etc
'elimina los objectos; imagenes, botónes etc., SOLO los que menciona en el Array
h2.Shapes.Range(Array("SpinB1", "B_1")).Delete
'Por si hay datos en este rango y no los quiere en la copia, los eliminará pero tendras Desproteger este rango en la hoja Copia
h2.Unprotect Password:="By Jot@" 'Desprotege la copia para ejecutar limpiesa en el rango
h2.Range("I1:AZ1500").Clear 'puede cambiar el rango o desactivarlo si no lo necesita
'Proteger la copia completa totalmente
h2.Protect Password:="By Jot@", DrawingObjects:=True, Contents:=True, Scenarios:=True
h2.EnableSelection = xlNoSelection 'Restringe todo, seleccion y escritura
ActiveWorkbook.Protect Password:="By Jot@", Structure:=True, Windows:=True
'Guarda hoja en PDF
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=cp & "\" & nbr & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
'Guarda hoja como xlsx
ActiveWorkbook.SaveAs Filename:=cp & "\" & nbr & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook, ReadOnlyRecommended:=False, _
CreateBackup:=False
ActiveWorkbook.Close
MsgBox "Archivos guardados en " & cp & " como:" & vbCr & nbr & ".xlsx" & " y " & ".PDF", vbInformation, "Guardado"
[A1].Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
1 respuesta
Respuesta de Adriel Ortiz Mangia