IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AppleScript Discussion :

Mon script seul fonctionne / le même exécuté en vba excel plante


Sujet :

AppleScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Artisan
    Inscrit en
    Juin 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Artisan

    Informations forums :
    Inscription : Juin 2015
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Mon script seul fonctionne / le même exécuté en vba excel plante
    Bonjour à tous!

    Voilà un problème bien mystérieux : j'ai une macro vba excel qui crée un fichier script.
    Si j'ouvre etle mets en route le fichier avec l'éditeur de script, le script fonctionne parfaitement.
    Par contre, si je le mets en marche par une macro vba, il commence à fonctionner puis il plante.

    Est-ce que quelqu'un a déjà eu ce genre de problème svp ?

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    Sub gtime()
     
     
    Dim str As String, str2 As String, Fichier As String, CR As String
     
    CR = Chr$(13)
     
    str = "to clickClassName(theClassName, elementnum)"
     
    str = str & CR & "tell application ""Safari"""
     
    str = str & CR & "do JavaScript ""document.getElementsByClassName('"" & theClassName & ""')["" & elementnum & ""].click();"" in document 1"
     
    str = str & CR & "end tell"
    str = str & CR & "end clickClassName"
    str = str & CR & "tell application ""Safari"""
    str = str & CR & "Activate"
    str = str & CR & "open location ""https://www.gtimereport.com"""
    str = str & CR & "Delay 5"
    str = str & CR & "end tell"
    str = str & CR & "clickClassName(""link"", 0)"
    str = str & CR & "Delay 4"
    str = str & CR & "clickClassName(""checkbox-container"", 0)"
    str = str & CR & "Delay 0.5"
    str = str & CR & "clickClassName(""checkbox-container"", 1)"
     
    str = str & CR & "set theDate to ((current date) + 1 * days)"
    str = str & CR & "set y to text -4 thru -1 of (""0000"" & (year of theDate))"
    str = str & CR & "set m to text -2 thru -1 of (""00"" & ((month of theDate) as integer))"
    str = str & CR & "set d to text -2 thru -1 of (""00"" & (day of theDate))"
    str = str & CR & "set a to y & ""-"" & m & ""-"" & d as string"
     
    str = str & CR & "tell application ""System Events"""
    str = str & CR & "Delay 1"
    str = str & CR & "keystroke tab"
    str = str & CR & "Delay 1"
    str = str & CR & "keystroke a"
    str = str & CR & "Delay 1"
    str = str & CR & "keystroke tab"
    str = str & CR & "Delay 1"
    str = str & CR & "keystroke a"
    str = str & CR & "Delay 1"
    str = str & CR & "end tell"
    str = str & CR & "Delay 1"
     
    str = str & CR & "to clickName(theName, elementnum)"
    str = str & CR & "tell application ""Safari"""
    str = str & CR & "do JavaScript ""document.getElementsByName('"" & theName & ""')["" & elementnum & ""].click();"" in document 1"
    str = str & CR & "end tell"
    str = str & CR & "end clickName"
    str = str & CR & "clickName(""createExcel"", 0)"
     
     
    MacScript (str)
     
    Fichier = ThisWorkbook.Path & Application.PathSeparator & "gtimereport.scpt"
     
    Open Fichier For Output As #1
    Print #1, str
    Close
    et le code pour l'exécuter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Sub GTime2()
     
    Dim str2 As String, fichier As String
     
    fichier = ThisWorkbook.Path & Application.PathSeparator & "gtimereport.scpt"
     
    CR = Chr$(13)
     
    str2 = "tell application ""Finder"""
    str2 = str2 & CR & "Activate"
    str2 = str2 & CR & "Delay 2"
    str2 = str2 & CR & "run script file """ & fichier & """"
    str2 = str2 & CR & "end tell"
    MsgBox str2
    MacScript (str2)
     
    End Sub

  2. #2
    Membre éprouvé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 602
    Points : 1 239
    Points
    1 239
    Par défaut
    Bonsoir,
    sur VBA, l'instruction "MacScript(str)" demande un argument et mon script via s'arrête à cause de cette erreur.
    J'ai effectivement toujours utilisé une instruction de type "R=MacScript(Str)".
    Alors seulement le script VBA tourne et lance le script Applescript.

    Pour le reste, le script s'exécute chez moi en partie : il ouvre le site "gtimereport" comme prévu au début, puis il plante dans Safari (run time aurore 5 invalid procedure arguments).

    J'ai donc mis des traces dans le script (en ajoutant des lignes : str = str & CR & "Say ""1""") en faisant varier le 1, 2, 3,...
    tout le script se déroule sans problème jusqu'au formatage de ta date.
    après quelques tâtonnements, le problème est sur la ligne str = str & CR & "set theDate to ((current date) + 1 * days)"
    C'est elle qui plante.

    Bon courage

  3. #3
    Membre à l'essai
    Homme Profil pro
    Artisan
    Inscrit en
    Juin 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Artisan

    Informations forums :
    Inscription : Juin 2015
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Bravo PBell !
    D'abord pour la méthode pour la recherche d'erreur que je ne suis pas prêt d'oublier !
    Et ensuite car cela m'a permis de rectifier le problème, exactement là où tu as trouvé.
    En fait c'est "days" qui posait problème. Du coup j'ai remplacé ça par 24*60*60.

    Merci infiniment !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/02/2010, 13h49
  2. mon script ne fonctionne pas sur internet explorer
    Par Lulu_n10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/09/2008, 09h41
  3. Ajax et XML. Mon script ne fonctionne pas.
    Par Dougui_bzh dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/07/2008, 09h04
  4. [AJAX] IE7 : mon script ne fonctionne plus
    Par Oluha dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/01/2007, 15h48
  5. Mon script ne fonctionne tjrs pas !!
    Par adlich dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 29/04/2006, 00h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo