Hola, utilizo el siguiente código para guardar periódicamente mi libro:
Sub auto_open() Tiempo = Now + TimeValue("00:30:00") Application.OnTime Tiempo, "Guardar" End Sub
Sub Guardar() Workbooks("MARZO 2012.XLSB").Save Call auto_open End Sub[/HTML]
Este libro lo utilizo las 24Hs. los 365 días del año y en ocasiones informa de un error y deja de guardar o sale un aviso que dice que no se puede guardar, ni siquiera manualmente. El problema es que mis empleados cierran el aviso de error y siguen trabajando como si nada, con la inevitable perdida de datos.
Mi idea es utilizar el comando "on error goto" para copiar todas las hojas del libro y pegarlas en uno nuevo conservando solo valores y formatos.
También si es posible enviar un mensaje a mi cuenta de gmail informando que se detuvo la macro.
Este es el código en el que estoy trabajando:
[HTML]Sub COPIAR_HOJA()
Dim xSheet As Variant Dim xSt As Long Dim xWbook As String Dim xWorb As Object
On Error Resume Next
ReDim xSheet(ThisWorkbook.Sheets.Count - 2) For xSt = 2 To ThisWorkbook.Sheets.Count xSheet(xSt - 2) = ThisWorkbook.Sheets(xSt).Name Next xSt Sheets(xSheet).Copy Set xWorb = Workbooks(Workbooks.Count) xWbook = ThisWorkbook.Path & "\Libro.xls" With xWorb For xSt = 1 To .Sheets.Count .Sheets(xSt).Cells.Copy .Sheets(xSt).Cells.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False Next xSt .SaveAs Filename:=xWbook, FileFormat:=xlNormal .Close End With
End Sub[/HTML]
Muchas gracias.
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Hola, utilizo el siguiente código para guardar periódicamente mi libro:
Este libro lo utilizo las 24Hs. los 365 días del año y en ocasiones informa de un error y deja de guardar o sale un aviso que dice que no se puede guardar, ni siquiera manualmente. El problema es que mis empleados cierran el aviso de error y siguen trabajando como si nada, con la inevitable perdida de datos.
Mi idea es utilizar el comando "on error goto" para copiar todas las hojas del libro y pegarlas en uno nuevo conservando solo valores y formatos.
También si es posible enviar un mensaje a mi cuenta de gmail informando que se detuvo la macro.
Este es el código en el que estoy trabajando:
Dim xSheet As Variant
Dim xSt As Long
Dim xWbook As String
Dim xWorb As Object
On Error Resume Next
ReDim xSheet(ThisWorkbook.Sheets.Count - 2)
For xSt = 2 To ThisWorkbook.Sheets.Count
xSheet(xSt - 2) = ThisWorkbook.Sheets(xSt).Name
Next xSt
Sheets(xSheet).Copy
Set xWorb = Workbooks(Workbooks.Count)
xWbook = ThisWorkbook.Path & "\Libro.xls"
With xWorb
For xSt = 1 To .Sheets.Count
.Sheets(xSt).Cells.Copy
.Sheets(xSt).Cells.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Next xSt
.SaveAs Filename:=xWbook, FileFormat:=xlNormal
.Close
End With
End Sub[/HTML]
Muchas gracias.