Excel + Macro + Tâches planifiée

Résolu
trankill076 Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   -  
 nomino9 -
Bonjour,

J'essaie de faire en sorte de mettre à jour automatiquement tout les jours à une heure donnée un classeur excel

Le classeur, grâce à une macro, va chercher ses informations dans une base de donnée AS400 mise à jour quotidiennement

Le problème c'est que je ne sais pas comment lancer cette macro avec l'utilitaire de tâches planifiée de windows, on peux facilement lui faire ouvrir le classeur mais comment faire pour que la macro s'exécute dès l'ouverture du classeur

Pour ne pas arranger les chose cette macro nécessite lors de son exécution que l'utilisateur y entre un nom d'utilisateur et un mot de passe

Merci d'avance pour votre aide ^_^

A voir également:

5 réponses

chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
Bonjour,

pour lancer votre macro dès l'ouverture du fichier, allez dans l'éditeur de macro, cliquez sur la page "ThisWorkbook" en haut à gauche, et créez une macro Workbook_Open(), dans laquelle vous mettrez le nom de la macro à lancer.

Exemple :
Private Sub Workbook_Open()
nom_de_macro_à_lancer
End Sub


Cordialement.
4
trankill076 Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   21
 
je teste...

edit: ça fonctionne, la macro se lance bien avec le classeur
reste qu'il est nécessaire d'entrer le nom d'utilisateur et le mot de passe requis par la macro
existe-il un moyen d'entrer "en dur" ce nom et mot de passe ?
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour

Pour utiliser le gestionnaire de tâches avec procédure access identique à excel
https://jpcheck.developpez.com/tutoriels/access/access-et-fichiers-batch-passage-parametres/#LV

scripts batch/dos pour lancer Excel: lien dans l'article précédent
"C:\Program Files\Microsoft Office\Office11\EXCEL.EXE" "C:\temp\classeur1.xls"
office11= XL2003
office12=XL2007
pour savoir: regarder dans program file de l'explorateur

par prudence, utilise workbook_open comme te l'a conseillé chossette
Michel
1
chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
Et pour compléter, XL2010 = office14. Il n'y a pas d'Office13 par superstition ;)
0
trankill076 Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   21
 
merci beaucoup pour les conseils, ça va me faire gagner un temps fou ^_^
0
jabranejb
 
Bonjour;
je tien bon à ce sujet là , j'ai quelque souci à propo des planification des taches.
J'ai une macro qui ce lance automatiquement dè l ouverture d un fichier excel.
Cette macro est placée dans le fichier perso.xls d un serveur d application et ça fonctionne tres bien.
le probleme c'est que je doit trouver une solution avec laquelle les fichiers excel , crées ou mises à jour dans les dernieres 20 mn seront lancée automatiquement. Ces fichiers sont placée dans une repertoire fixe C://user/Download.
y a til une solution svp.
0
nomino9
 
Sub auto_exe()

x = CDate(Time - Sheets("namesheet").Cells(1, 25).Value)
'If Right(Time, 5) = "00:00" Then
'l'intervalle d'execution de la macro
v1 = "09:00:00"
v2 = "22:00:00"

Delai2 = "00:20:00"
If Time > TimeValue(v1) And _
Time < TimeValue(v2) Then
' MsgBox (x)
If TimeValue(x) > TimeValue(Delai2) Then
NextTime = CDate(Fix(Now / TimeValue("00:20:00")) * TimeValue(Delai)) + TimeValue(Delai)
Application.OnTime NextTime, "auto_exe"
Call fonction_exec
Else

MsgBox ("Délai non encore dépassé....")
End If

End If
End Sub
0
VlkPr3s Messages postés 235 Date d'inscription   Statut Membre Dernière intervention   130
 
Bonjour, je répond beaucoup plus tard, je suis dans la même impasse j'ai beau essayé de passer par une autre méthode à savoir, OnTime
mais rien n'y fais ... Je dois gérer de manière planifiée le transfert de fichier .skf en PDF

Sub demarrage()
Application.OnTime TimeValue("00:00:00"), "MonApplication"
End Sub

Sub MonApplication()
XXX
End Sub

Bien à vous.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour
test si un fichier a été enrgisyré depuis moins de 20mn
par exemple
delai = Now - FileDateTime("D:\docus\zone_aleatoire.xls")
If delai < 20 / 1440 Then MsgBox "gagné"


Michel
0
VlkPr3s Messages postés 235 Date d'inscription   Statut Membre Dernière intervention   130
 
Merci c'est résolu depuis un moment :) pour le moment j'ai un soucis de boucle récursive il ne quitte pas lorsque les arguments sont null et me renvoie une erreur lorsqu'il a fini le programme ^^ Bien à toi
0