Como hacer una copia de una hoja en otra renombrandola

Tengo un libro, con una hoja, necesito una macro que me realice una copia de esa hoja solo de los valores y formatos, y me la guarde en la misma carpeta que la hoja original y que me la renombre con el mismo nombre de la hoja mas la fecha y hora que se hace la copia.

Ejemplo..

La hoja original se llama PLAN DE ACCIÓN, la copia se renombraria yquedaria asi PLAN DE ACCIÓN 26/10/13 21:37

1 Respuesta

Respuesta
1

Te mando mi solución con esta macro:

Posiciónate en la pestaña en cuestión y después ejecuta esta macro:

Sub proceso()
'por luismondelo
ruta = ActiveWorkbook.Path & "\"
mio = ActiveWorkbook.Name
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
nombre = ActiveSheet.Name
ActiveSheet.Copy before:=Workbooks(otro).Sheets(1)
ActiveSheet.Name = nombre
ActiveSheet.UsedRange.Copy
ActiveSheet.UsedRange.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
ActiveWorkbook.SaveAs ruta & nombre & "_" & Day(Date) & "_" & Month(Date) & "_" & Year(Date) & "__" & Hour(Time) & "_" & Minute(Time)
End Sub

recuerda finalizar la consulta

Es casi perfecto...

lo hace como te he pedido, pero en el libro que copia me crea la misma hoja, y tres hojas mas hoja 1, hoja 2 y hoja 3, se podrían eliminar estas tres ultimas.

Gracias

Ok, esta sería la macro:

Sub proceso()
'por luismondelo
ruta = ActiveWorkbook.Path & "\"
mio = ActiveWorkbook.Name
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
nombre = ActiveSheet.Name
ActiveSheet.Copy before:=Workbooks(otro).Sheets(1)
ActiveSheet.Name = nombre
ActiveSheet.UsedRange.Copy
ActiveSheet.UsedRange.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
for x=2 to sheets.count
sheets(2).delete
next
ActiveWorkbook.SaveAs ruta & nombre & "_" & Day(Date) & "_" & Month(Date) & "_" & Year(Date) & "__" & Hour(Time) & "_" & Minute(Time)
End Sub

recuerda finalizar la pregunta

siento seguir molestando...

efectivamente me las elimina.. pero me pregunta tres veces, una por cada hoja, si la quiero eliminar, se podría saltar este paso...

Y antes se me olvido hacerte una pregunta...

la hoja original la tengo protegida para que no se puedan borrar datos ni ver formulas, si esta protegida la macro no funciona... eso se puede cambiar?? o sea que protegida la hoja la macro funcione igual....

Al ejecutar la macro con la hoja protegida me manda a la macro y me marca esta linea...

ActiveSheet.UsedRange.PasteSpecial Paste:=xlValues

MUCHAS GRACIAS

Efectivamente eso son cosas nuevas. Ahora la macro quedaría así:

Sub proceso()
'por luismondelo
Application.DisplayAlerts = False
ruta = ActiveWorkbook.Path & "\"
mio = ActiveWorkbook.Name
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
nombre = ActiveSheet.Name
ActiveSheet.Unprotect "clave"
ActiveSheet.Copy before:=Workbooks(otro).Sheets(1)
ActiveSheet.Name = nombre
ActiveSheet.UsedRange.Copy
Workbooks(otro).Activate
ActiveSheet.UsedRange.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
For x = 2 To Sheets.Count
Sheets(2).Delete
Next
ActiveWorkbook.SaveAs ruta & nombre & "_" & Day(Date) & "_" & Month(Date) & "_" & Year(Date) & "__" & Hour(Time) & "_" & Minute(Time)
ActiveWorkbook.Close False
ActiveSheet.Protect "clave"
MsgBox "proceso concluido, el archivo se ha creado y está guardado en la carpeta:" & Chr(13) & ruta
End Sub

Olvidé decirte que tienes que cambiar en la macro la palabra CLAVE que está entre comillas por tu contraseña. Las comillas se quedan

Está dos veces en la macro

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas