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 :

Liaison Excel - Apple Script


Sujet :

AppleScript

  1. #1
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Octobre 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Réunion

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2013
    Messages : 49
    Par défaut Liaison Excel - Apple Script
    Bonjour,

    Je fais appel à la bonne volonté pour proposer une solution à ce simple problème. Je travaille avec excel 2011, sous OS 10.7.5

    Dans une procédure avec Excel, j'ai cette instruction :
    MacScript ("EnvoiCourriel")
    qui doit exécuter le script et je reçois un message d'erreur n° 5.

    Dans le script pour reprendre une variable du programme je commence avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tell application "Microsoft Excel"
    	activate
    	copy value of cell "courriel" to objet
         end tell
    puis j'ouvre mail (à partir de là tout va bien)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Tell application "Mail"
           -- Instructions
         End tell
    J'ai l'impression que le message d'erreur provient de ce que je demande dans le script d'ouvrir excel qui est resté ouvert.

    Question : y a t-il une autre procédure pour récupérer le contenu des variables d'excel lorsque excel reste ouvert.

    Merci.

    JFZ

  2. #2
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    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 : 606
    Par défaut
    Bonsoir Jefmonde,
    Pour lancer un script à partir de VBA, je ne connais que 2 solutions :

    Tu écris ton AppleScript, tu l'enregistres dans un fichier ".scpt" habituel et dans VBA tu ecris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Lance_Script()
    s = "run script (""xxx:Users:xxx:Desktop:Test_Script.scpt"" as alias)"
    temp = MacScript(s)
    End Sub
    C'est ici un exemple de script "Test_Script" sur mon bureau. Le chemin d'accès complet doit partir de la racine du disque. Attention aux doubles guillements !


    La seconde méthode consiste à créer, en VBA, une string qui contient tout ton script. Les instructions AppleScript doivent être séparées par des retours à la lignes (CR).
    une fois la string construite, on utilise encore l'instruction VBA MacScript
    La limitation est, en général, la taille du script, par contre, il est possible de passer des variables. voici un exemple en VBA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Lance_Script()
    Dim SS As String
    Ma_Var = Cells(1, 1).Value
    CR = Chr$(13)
    Gu = Chr$(34)
    SS = "tell application ""Finder"""
    SS = SS & CR & "Set AS_Var to " & Gu & Ma_Var & Gu
    SS = SS & CR & "display dialog ""parametre="" & " & " AS_Var"
    SS = SS & CR & "end tell"
    temp = MacScript(SS)
    End Sub
    Ce script ne fait que récupérer la valeur de la cellule Excel A1 (1,1), puis l'affecte à une variable AppleScript AS_Var.
    Cette variable est affichée par un display dialog.

    J'espère que cela t'aidera.
    Dans les 2 cas, il faut que ton script ne contienne pas d'erreur, sinon la macro VBA ne finira pas l'instruction MacScript. par exemple, dans le second cas, si tu clique sur le bouton annuler du dialog, VBA donnera une erreur. Ceci peut aussi être contourné en VBA avec un "on error resume next".

    Je précise qu'il est aussi souvent préférable de tout faire en script (si tu as peu de calcul excel) car Excel se pilote aussi en AppleScript.
    A toi de déterminer la meilleure option !

    Cordialement

  3. #3
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Octobre 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Réunion

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2013
    Messages : 49
    Par défaut
    Bonjour,

    Merci PBell pour votre aide.

    J'étudie votre réponse, la teste, et je reviens pour le résultat.

    Cordialement

    jfz

  4. #4
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Octobre 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Réunion

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2013
    Messages : 49
    Par défaut Résolu
    Bonjour,

    Merci à PBell qui m'a réconforté dans sa réponse : d'une part il ne retient pas l'hypothèse que j'avais émise (l'erreur était ailleurs), d'autre part il confirme le code à écrire dans VBA (l'erreur est donc dans l'écriture de l'instruction).
    Mon erreur était due à ma stupidité. Voici l'instruction telle qu'elle doit être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ChDir "MacCatherine:Programmes:"
        MacScript ("EnvoiCourriel.scpt")
    ou le non du script est "EnvoiCourriel".
    J'avais simplement oublié d'indiquer le chemin pour arriver jusqu'au script (chDir...) et j'avais pas mis l'extension (.scpt) après le nom du script dans VBA d'Excel. Rien que cela!

    Si l'un d'entre-vous était intéressé je pourrai modestement indiquer ce que je sais des liaisons entre Excel et Applescript;
    et ce que je sais de l'enregistrement au format pdf des documents Word et feuilles d'Excel.

    Cordialement

    JFZ

Discussions similaires

  1. tri et liaisons excel vba
    Par alsimbad dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/11/2006, 05h52
  2. liaison Excel Access
    Par mat75019 dans le forum Access
    Réponses: 7
    Dernier message: 19/06/2006, 14h59
  3. Liaison Excel
    Par franckh99 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/02/2006, 11h08
  4. Mise à jour des liaisons Excel.
    Par franckh99 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 26/12/2005, 11h51

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