Programar en servidor tarea de ejecutar macro

Buenos días,
quiero programar en el servidor una tarea para que se abra un fichero excel bastante extenso los lunes a primera hora y se actualicen automáticamente las tablas dinámicas que contiene, se guarden los cambios y se cierre el fichero al acabar.
Ademas, cada vez que se acceda al fichero desde el ordenador no quiero que se ejecute esta macro automáticamente ya que me deja bloqueado el ordenador durante demasiado tiempo.
Muchas gracias por vuestra ayuda.

1 Respuesta

Respuesta
1
Deverias modificar el codigo Excel, de tal manera que para que se actualzen los datos, tengas que pasar un parámetro antes de abrir el archivo. Ejemplo:
Estadisticas.Xls /Actualiza
Para realizar esto debes programar sobre la hoja, si no lo sabes hacer dímelo.
Primero Debes Añadir esta función
------------------------ EN UN MODULO ----------------------------
Option Base 0
Option Explicit
Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineW" () As Long
Declare Function lstrlenW Lib "kernel32" (ByVal lpString As Long) As Long
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (MyDest As Any, MySource As Any, ByVal MySize As Long)
Function CmdToSTr(Cmd As Long) As String
    Dim Buffer() As Byte
    Dim StrLen As Long
If Cmd Then
StrLen = lstrlenW(Cmd) * 2
If StrLen Then
ReDim Buffer(0 To (StrLen - 1)) As Byte
CopyMemory Buffer(0), ByVal Cmd, StrLen
CmdToSTr = Buffer
End If
End If
End Function
------------------------- EN THISWORKBOOK---------------------
Private Sub Workbook_Open()
On Error Resume Next
Dim CmdRaw As Long
Dim CmdLine As String
CmdRaw = GetCommandLine
CmdLine = CmdToSTr(CmdRaw)
v = Split(CmdLine, "/")
PARAM = v(UBound(v))
If Not PARAM = "Actualiza" Then Exit Sub
'EN CASO DE QUE SE UTILIZE EL CODIGO SE DEVE PONER AQUI LA FUNCION PARA ACTUALIZAR LA HOJA
Actualizame
'Una vez actualizado 'Salir del documento
Application.Quit
end sub
Después en el programador de tareas pones lo siguiente en la hora i día de la semana deseados
Los parámetros deben ser: "RutaEXCEL" "RUTADOCUMENTO" /Actualiza
Es complicadillo
Muchas gracias por la rápida respuesta, yo no he podido contestarte antes.
Estoy mirándolo con un compañero de trabajo que entiende un poco más que yo y parece que él ha entendido ya como hacerlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas