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

Macros et VBA Excel Discussion :

Lancer un script d'apple script par une macro. [XL-MAC 2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 Lancer un script d'apple script par une macro.
    Bonjour,

    Je sais lancer un programme applescript avec une macro sous mac 2011. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ChDir " le chemin ou se trouve le programme applescript:"
                MacScript ("nom du programme.scpt")
    Avec mac 2016 l'instruction MacScript n'est plus pris en charge, il faut mettre < AppleScriptTask >. On trouve avec ce lien : https://msdn.microsoft.com/fr-fr/vba...pplescripttask... une page de microsoft qui donne une explication et la procédure pour utiliser AppleScriptTask, je ne comprends rien à la procédure donnée.

    Quelqu'un peut-il expliquer clairement la procédure ? et guider le nul d'Excel 2016 que je suis. Je vous remercie.

    Cordialement

    JFZ

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, va voir par ici dans les rubriques Mac.

  3. #3
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,

    L'expliquer comme cela à la volée un peu compliquer, je vais faire simple :

    • les scripts AppleScript sont à mettre dans un dossier spécifique pour être exécuté : ~/Library/Application Scripts/com.microsoft.Excel/
    -- il y a les mêmes type de dossiers pour Word et PowerPoint :
    ----> ~/Library/Application Scripts/com.microsoft.Word/
    ----> ~/Library/Application Scripts/com.microsoft.Powerpoint/
    Si ces dossiers n'existent pas, il faut les créer à l'emplacement indiqué

    • les scripts AppleScript doivent être exécutés (afin de ne pas être bloquer par la SandBox d'Apple) via la commande AppleScriptTask faisant appel au script AS enregistré dans ledit dossier : com.microsoft.Excel (cf. ci-dessus)
    Ces scripts doivent être construits en tant que fonction avec un paramètre au choix, donc les scripts commencent toujours par : on NomFonctionAS(UnParamètre)
    UnParamètre est de type String

    Code applescript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        on NomFonctionAS(UnParamètre) -- UnParamètre peut être le chemin d'un dossier, d'un fichier ou autre
     
           -- Mettre le code de l'Applescript en indiquant UnParamètre si il y en a un
     
        end NomFonctionAS
    • les scripts Applescript sont appelé de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RésultatDuScript  = AppleScriptTask ("NomFichierAS.scpt", "NomFonctionAS", "UnParamètre")
    RésultatDuScript est une variable (on peut choisir un autre nom) est de type String => donc le résultat en retour sera un String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim RésultatDuScript as String
    Ces 3 paramètres ("NomFichierAS.scpt", "NomFonctionAS", "UnParamètre") sont à marqué comme des String

    Dans le cas où l'on attend pas de résultat , on peut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AppleScriptTask "NomFichierAS.scpt", "NomFonctionAS", "UnParamètre"
    Problème avec UnParamètre, comme sont nom l'indique, on ne peut qu'en mettre un.

    Je sais que Ron de Bruin a fait qq chose la dessus, pour ma part, je préfère faire les choses par moi même et j'ai fait toute un procédure concernant VBA/MacScript/AppleScriptTask (Multicritères/Multi-paramètres)/AppleScript.
    J'ai encore des choses à finaliser …

    Voilà j'espère avoir été assez claire …
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  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
    Merci RyuAutodidacte pour ta réponse détaillée.

    Il me reste une petite zone d'ombre avant de me lancer.
    ~/Library/Application Scripts/com.microsoft.Excel/ se met dans quelle bibliothèque ? puisqu'il y en a trois sous mac. La bibliothèque personnelle ?

    Cordialement

    JFZ

  5. #5
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,

    Il me reste une petite zone d'ombre avant de me lancer.
    ~/Library/Application Scripts/com.microsoft.Excel/ se met dans quelle bibliothèque ? puisqu'il y en a trois sous mac. La bibliothèque personnelle ?
    oui la bibliothèque du User
    il suffit d'aller dans le menu du Finder menu "Aller" --> "Aller au dossier …" et de marquer le chemin (~/Library/Application Scripts/com.microsoft.Excel/) pour y arriver

    Nom : Capture d’écran 2018-05-16 à 12.16.05.png
Affichages : 772
Taille : 83,4 Ko

    Si cela ne marche pas, cela veut dire que le dossier n'existe pas, dans ce cas là alors mettre à la place : ~/Library/Application Scripts/ et créer le dossier com.microsoft.Excel

    Sinon il y a ce que j'ai créé et qui fait partie de ma procédure pour ce faire (code AppleScript) :

    Installation du dossier «com.microsoft.Excel» et du fichier «GetMyScript.scpt» - création de ceux-ci si il n’existe pas
    Code applescript : 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
    -- Code créé par RyuAutodidacte
    set userName to short user name of (system info)
    set chm to "/Users/" & userName & "/Library/Application Scripts/com.microsoft.Excel/"
     
    set VeriFicExiste to do shell script " test -f " & quoted form of (chm & "GetMyScript.scpt") & "; echo $?"
     
    set VerifDosExiste to do shell script "test -d " & quoted form of chm & "; echo $?"
     
    set CreaFicScript to quoted form of "on CreaMyScript(myparam)
    	set {myTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, {\"|||\"}}
    	set myList to text items of myparam
    	set AppleScript's text item delimiters to myTID
    	set MonScript to item 1 of myList
    	set fichier to item 2 of myList
    	set userName to short user name of (system info)
    	set chm to \"/Users/\" & userName & \"/Library/Application Scripts/com.microsoft.Excel/\"
    	do shell script \"osacompile -e\" & quoted form of MonScript & \" -o \" & quoted form of (chm & fichier)
    end CreaMyScritp"
     
    if VerifDosExiste = "0" then
    	display alert "Le dossier \"com.microsoft.Excel\" existe déjà"
    	if VeriFicExiste = "0" then
    		display alert "Le fichier \"GetMyScript.scpt\" existe déjà"
    	else
    		do shell script "osacompile -e " & CreaFicScript & " -o " & quoted form of (chm & "GetMyScript.scpt")
    		display alert "Le fichier \"GetMyScript.scpt\" a été créé"
    	end if
    else
    	do shell script "mkdir " & quoted form of chm
    	display alert "Le dossier \"com.microsoft.Excel\" a été créé"
    	do shell script "osacompile -e " & CreaFicScript & " -o " & quoted form of (chm & "GetMyScript.scpt")
    	display alert "Le fichier \"GetMyScript.scpt\" a été créé"
    end if
    N'hésite pas à liker de si mes réponses t'ont été utile

    Ryu
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  6. #6
    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
    Ryu

    Merci infiniment pour tes explications, j'ai compris. Cordialement. Tout est OK.

    JFZ

  7. #7
    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
    Merci aussi à Kiki29 que j'ai failli oublier. Excusez moi.

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

Discussions similaires

  1. [XL-2003] Script bloquant le lancement d'une macro si..
    Par Eric202 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/07/2012, 23h10
  2. Imprimer un graph par une macro
    Par man_coef dans le forum Général VBA
    Réponses: 2
    Dernier message: 10/10/2006, 11h28
  3. Réponses: 3
    Dernier message: 14/04/2006, 10h43
  4. lancer une sub par une macro
    Par ganizate dans le forum Access
    Réponses: 2
    Dernier message: 04/04/2006, 15h01
  5. [Excel] Utiliser une application externe par une macro
    Par thierry2.dlp dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2005, 22h07

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