No había visto este tema.
A ver si te sirve esto:
En el editor de Visual Basic de la planilla que necesitas grabar (en el ejemplo la llamaremos "Libro1.xls"), ir a la parte del código de ThisWorkbook.
Allí, crearemos una sub privada, llamada "Workbook_Open()" con el siguiente código:
Código:
Private Sub Workbook_Open()
Application.OnTime TimeValue("00:00:00"), "AutoGrabar"
End Sub
Esta sub, se ejecutará automáticamente cada vez que abramos el libro donde esté contenida.
Lo que hace al ejecutarse, es decirle a Excel que ejecute la macro "AutoGrabar", a las 00:00:00 horas de cada día.
Luego, en un módulo cualquiera, creamos la sub que se ejecutará, a la que llamamos "AutoGrabar":
Código:
Sub AutoGrabar()
If Dir("C:\Libro1.htm") <> "" Then
Kill "C:\Libro1.htm"
End If
ActiveWorkbook.SaveAs Filename:= _
"C:\Libro1.htm", FileFormat:=xlHtml, ReadOnlyRecommended:= _
False, CreateBackup:=False
If Dir("C:\Libro1.xls") <> "" Then
Kill "C:\Libro1.xls"
End If
ActiveWorkbook.SaveAs Filename:= _
"C:\Libro1.xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
End Sub
Veamos detalladamente la sub AutoGrabar:
Código:
If Dir("C:\Libro1.htm") <> "" Then
Kill "C:\Libro1.htm"
End If
Esta porción de código, hace una comprobación: Si existe el archivo "C:\Libro1.htm"
En caso de que exista, lo elimina.
Código:
ActiveWorkbook.SaveAs Filename:= _
"C:\Libro1.htm", FileFormat:=xlHtml, ReadOnlyRecommended:= _
False, CreateBackup:=False
Aquí, la sub se encarga de guardar la planilla actual, en formato HTML. Si no hubiéramos eliminado este archivo antes, hubiéramos tenido que estar pendiente a esa hora, de confirmar la sobreescritura del archivo, y se hubiera perdido la "gracia" de la macro...
Luego, vuelve a comprobar si existe un archivo. En este caso, si existe el de formato excel:
Código:
If Dir("C:\Libro1.xls") <> "" Then
Kill "C:\Libro1.xls"
End If
Si existe lo elimina...
y, graba la planilla actual en formato excel:
Código:
ActiveWorkbook.SaveAs Filename:= _
"C:\Libro1.xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
El motivo por el que primero grabamos el archivo en formato HTML y luego el XLS, es simplemente porque el archivo que quedará abierto será el segundo...
Espero que te sirva, y no sea tarde ya...
.
Marcadores