Excel + Macro + Tâches planifiée

Résolu
trankill076 Messages postés 83 Statut Membre -  
 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 ^_^

5 réponses

  1. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
     
    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
    1. trankill076 Messages postés 83 Statut Membre 22
       
      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
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Et pour compléter, XL2010 = office14. Il n'y a pas d'Office13 par superstition ;)
      0
    2. trankill076 Messages postés 83 Statut Membre 22
       
      merci beaucoup pour les conseils, ça va me faire gagner un temps fou ^_^
      0
  3. 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
    1. 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
  4. VlkPr3s Messages postés 251 Statut Membre 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. VlkPr3s Messages postés 251 Statut Membre 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