tarea programada que ejecute una macro de excel

19/06/2006 - 07:24 por Diana | Informe spam
Hola grupo,
Necesito que todos los días a las 4.00 de la mañana se ejecute una macro de
un archivo de excel. La macro busca la información de un archivo de access y
la pega en una hoja de este archivo de excel. Este archivo de excel tiene
password.
Cómo hago para programar esta tarea? O sea, cómo escribo en la tarea
programada que abra el libro de excel, ejecute la macro y luego cierre el
libro? tengo windows XP.
Gracias,
Diana

Preguntas similare

Leer las respuestas

#11 Francisco MTY
21/06/2006 - 01:51 | Informe spam
ya intentaste colocarla en una modulo / hoja ?
#12 javier
21/06/2006 - 02:25 | Informe spam
Yo no entiendo mucho de informática.

Por una parte tengo una macro muy sencilla en un libro excel llamada
("macrojuan") El libro se llama "abrelibro.xls"



Y por otra parte al hacer doble click en el archivo .vbs, tal como me
dijisteis, se abre el libro de excel pero la macro (del libro excel, situada
en el Módulo1) no se ejecuta.

Creo que todo está bien pero pienso que sólo me falla ésta linea:

xlApp.Worksheets("macrojuan").AutoArranque ' esta es la rutina a ejecutar



Me sale este mensaje de error de Windows Script Host

Secuenia de comandos: C:\Documents and Settings\pablo\Mis
documentos\Excel\estescript.vbs
Linea: 13
Caracter: 1
Error: El subíndice está fuera del intervalo
Código: 800A0009
Origen: Error de Microsoft VBScript en tiempo de ejecución

Aceptar.


Elcodigo completo es éste que lo tengo en el archivo .vbs (como el bloc de
notas pero con la extensión .vbs tal como me dijisteis).



Dim xlApp, _
strArchivo

strArchivo = "C:\Documents and Settings\cero\Mis
documentos\Excel\abrelibro.xls"

' creo un objeto Excel
Set xlApp = CreateObject("Excel.Application")
'xlApp.Visible = True
xlApp.Visible = True

xlApp.Workbooks.Open strArchivo

xlApp.Worksheets("macrojuan").AutoArranque ' esta es la rutina a ejecutar

'xlApp.Quit

Set xlApp = Nothing




Resumiendo: me funciona casi todo pero pienso que me falla ésta linea que no
sé cómo debe excribirse exactamente:
xlApp.Worksheets("macrojuan").AutoArranque ' esta es la rutina a ejecutar

He pensado que a lo mejor tengo que ponerlo así, pero también me falla:
xlApp.Worksheets("Hoja1").AutoArranque macrojuan


Gracias, Saludos
javier

PD.:
Mostrar la cita
La macro de Excel la tengo en un módulo normal (no en un modulo de hoja).



-

"Francisco MTY" escribió:

Mostrar la cita
#13 klomkbock
21/06/2006 - 03:05 | Informe spam
Hola Javier,

No me hagas mucho caso, pero por lo que creo entender, tienes un libro de
excel con una macro que abre otro libro para no se muy bien que. En
cualquier caso, y te repito que no me hagas mucho caso, pues no tengo
mucha idea, creo que no tienes que crear ningun objeto excel, ya estas en
Excel(si de todas formas he entendido mal y si tienes que crearlo (creo)
deberias declararlo algo asi: "Dim xlApp as Excel.Application"). Si yo
estoy en lo cierto deberia valerte con algo asi como:

Workbooks.Open "C:Documents and Settings\Misdocumentos\Excelabrelibro.xls"
ActiveWorkbook.RunAutoMacros xlAutoOpen

De todas formas no me hagas mucho caso (de nuevo), e indaga un poco por
esta otra ruta.

Espero haberte servido de alguna ayuda.

Un saludo y hasta pronto.
Ivan
#14 javier
21/06/2006 - 03:11 | Informe spam
sub auto_open()
en sub

o bien dentro de thisworkbook

Private Sub Workbook_Open()

End Sub



Private Sub Workbook_Open()
call "MIRUTINA"
End Sub




Pienso que esto sí me funcionaría porque una vez abierto el libro de Excel
esas macros que me indicas se autoejecutarán... por sí mismas.



Pero lo que me tiene intrigado es esa línea de codigo del archivo .vbs (como
el bloc de notas pero con extensión .vbs)

xlApp.Worksheets("macrojuan").AutoArranque ' esta es la rutina a ejecutar

(también lo puse así):
xlApp.Worksheets("Hoja1").AutoArranque macrojuan

No sé exactamente cómo debe escribirse y creo que es eso lo que me falla.

Saludos, gracias.
javier.


"Francisco MTY" escribió:

Mostrar la cita
#15 Francisco MTY
21/06/2006 - 03:30 | Informe spam
Prueba colocando el codigo ya sea dentro de un modulo - una rutina
sub tumacro()
end sub

sub auto_open()
en sub

o bien dentro de thisworkbook

Private Sub Workbook_Open()

End Sub

Alguna te tiene que funcionar, en todo caso revisa bien el nombre de la
macro :)
Ads by Google
Search Busqueda sugerida