Jump to content
Sign in to follow this  
lphant

Guardar solo los cambios de la hoja excel x

Recommended Posts

Buenos días;

Se me acaba de venir a la cabeza una cosa que supongo que será imposible pero por preguntar no pierdo nada ;)

Sería posible por medio de macro guardar los cambios producidos en una hoja excel ( hoja 1 ) sin que guardara los cambios producidos en las demás hojas ( hoja 2, hoja 3 ) de un libro excel.

Pd: no adjunto archivo porque no sé ni por dónde empezar J

Muchas gracias de antemano.

Un saludo,

Share this post


Link to post
Share on other sites

Hasta donde yo se, no. Por lo que tengo entendido, el guardado solo se puede aplicar en el libro en sí.

Lo que si se puede hacer si no te interesa lo que está guardado en las hojas 2 y 3 podrías borrar su contenido y después guardar el libro

Sub Borrado_Hojas()

Sheets("Hoja2").Select
Cells.Select
Selection.ClearContents

Sheets("Hoja3").Select
Cells.Select
Selection.ClearContents

'Viene sin mensajes, pon los que tu quieras

End Sub [/CODE]

Y luego guardar el archivo

[CODE]Sub Guardar_Libro()
ActiveWorkbook.Save
End Sub[/CODE]

O pulsando el botón de guardar, otra cosa que también se puede hacer es guardar la hoja en un libro nuevo pero eso ya se me escapa porque depende donde lo quieres, como lo quieres y un largo etc...

Espero haberte podido ayudar o al menos haberte dado una idea.

Saludos

Share this post


Link to post
Share on other sites

.

Ejemplo de como salvar solo la "Hoja2"

Pon este código en ThisWorkbook:


'--
Private Sub Workbook_Open()
ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "\Soporte1-" & ThisWorkbook.Name
End Sub
'--
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.EnableEvents = False
Application.ScreenUpdating = False
ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "\Soporte2-" & ThisWorkbook.Name
Workbooks.Open ThisWorkbook.Path & "\Soporte1-" & ActiveWorkbook.Name
For Each Hoja In ActiveWorkbook.Sheets
If Hoja.Name <> "Hoja2" Then '<-------------------------------
Hoja.Rows.Copy ThisWorkbook.Sheets(Hoja.Name).Rows
End If
Next
ActiveWorkbook.Close
Application.EnableEvents = True
End Sub
'--
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
Application.EnableEvents = False
Application.ScreenUpdating = False
Workbooks.Open ThisWorkbook.Path & "\Soporte2-" & ActiveWorkbook.Name
For Each Hoja In ActiveWorkbook.Sheets
If Hoja.Name <> "Hoja2" Then '<-----------------------------
Hoja.Rows.Copy ThisWorkbook.Sheets(Hoja.Name).Rows
End If
Next
ActiveWorkbook.Close
Application.EnableEvents = True
End Sub
'--
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
Kill ThisWorkbook.Path & "\Soporte1-" & ThisWorkbook.Name
Kill ThisWorkbook.Path & "\Soporte2-" & ThisWorkbook.Name
End Sub
'--
[/CODE]

.

Share this post


Link to post
Share on other sites
.

Ejemplo de como salvar solo la "Hoja2"

Pon este código en ThisWorkbook:


'--
Private Sub Workbook_Open()
ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "\Soporte1-" & ThisWorkbook.Name
End Sub
'--
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.EnableEvents = False
Application.ScreenUpdating = False
ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "\Soporte2-" & ThisWorkbook.Name
Workbooks.Open ThisWorkbook.Path & "\Soporte1-" & ActiveWorkbook.Name
For Each Hoja In ActiveWorkbook.Sheets
If Hoja.Name <> "Hoja2" Then '<-------------------------------
Hoja.Rows.Copy ThisWorkbook.Sheets(Hoja.Name).Rows
End If
Next
ActiveWorkbook.Close
Application.EnableEvents = True
End Sub
'--
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
Application.EnableEvents = False
Application.ScreenUpdating = False
Workbooks.Open ThisWorkbook.Path & "\Soporte2-" & ActiveWorkbook.Name
For Each Hoja In ActiveWorkbook.Sheets
If Hoja.Name <> "Hoja2" Then '<-----------------------------
Hoja.Rows.Copy ThisWorkbook.Sheets(Hoja.Name).Rows
End If
Next
ActiveWorkbook.Close
Application.EnableEvents = True
End Sub
'--
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
Kill ThisWorkbook.Path & "\Soporte1-" & ThisWorkbook.Name
Kill ThisWorkbook.Path & "\Soporte2-" & ThisWorkbook.Name
End Sub
'--
[/CODE]

.

Antonio, lo acabo de probar y me da error cuando doy a cerrar, me dice " se ha producido el error 53 en tiempo de ejecución: archivo no encontrado".

que puede ser??

muchas gracias.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png