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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r駱onses en temps r馥l, voter pour les messages, poser vos propres questions et recevoir la newsletter

AppleScript Discussion :

Code AS commun pour Imprimer => PDF - pour Excel 2011 et 2016


Sujet :

AppleScript

Vue hybride

Message pr馗馘ent Message pr馗馘ent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    D騁ails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (ホle de France)

    Informations professionnelles :
    Activit� : PAO
    Secteur : Communication - M馘ias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par d馭aut Code AS commun pour Imprimer => PDF - pour Excel 2011 et 2016
    Bonjour PBELL,
    Me revoil�

    En cherchant � droite, � gauche sur le net j'ai commenc� � faire un code AS pour pouvoir cr馥r un PDF directement par la fen黎re imprimer.
    Mon probl鑪e c'est que sur Excel 2016, la fen黎re imprimer � l馮鑽ement 騁� modifier (cf Captures 馗ran Excel 2011 et 2016) + les restrictions avec SandBox d'apple,
    qui font que la proc馘ure de l'utilisation d'un AS dans Excel Mac 2016 a chang�.

    Ci-dessous 2 liens concernant le vba qui permettent de comprendre le pourquoi du comment et le fonctionnement dans Excel 2016 pour un AS :
    https://dev.office.com/blogs/VBA-imp...in-Office-2016
    https://msdn.microsoft.com/fr-fr/lib.../mt654021.aspx

    � Mise � part "Enregistrer en PDF �", j'aimerais passer en param鑼res les options encadr馥s en rouge :
    - Pages de : X � X
    - Imprimer : "S駘ection" , "Feuilles s駘ectionn馥s", "Classeur entier"
    - Mettre � l'馗helle

    � concernant "Masquer l'extension", j'aimerai que celle ci ne soit pas masqu馥

    � J'utilise "Aller au dossier�" du Finder, dans la fen黎re pour faire le PDF afin de d騁erminer automatiquement le chemin passer en param鑼re pour que le tout puisse se faire d'une traite

    � le nom du fichier sera pass� en param鑼re aussi

    Le code commenc� pas tout � fait au point (en test) :
    Code : S駘ectionner tout - Visualiser dans une fen黎re � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    set SaveFolderPath to POSIX path of (choose folder with prompt "Select Folder to Save PDF Files")
     
    tell application "Microsoft Excel"
    	activate
    	tell application "System Events" to tell process "Microsoft Excel"
    		keystroke "p" using command down
    		click (menu button "PDF" of window 1)
    		click (menu item 2 of menu of menu button "PDF" of window 1)
    		keystroke "g" using {command down, shift down}
    		tell sheet 1 of window 1
    			set value of text field 1 to SaveFolderPath
    			-- ou -- keystroke "/users/kellyf/documents/projects/pdf2fmp/ImportCSV"
    			keystroke return
    		end tell
    		tell sheet 1 of window 1
    			keystroke "TOTO"
    			keystroke return
    		end tell
    	end tell
    end tell
    Les captures sur Excel 2011 :

    Nom : Excel imprimer.png
Affichages : 963
Taille : 114,8 Ko

    Nom : Excel PDF.png
Affichages : 869
Taille : 97,6 Ko

    La capture sur Excel 2016 :

    Nom : Excel 2016 imprimer.png
Affichages : 950
Taille : 80,7 Ko

    Voil�

    Ryu
    Cordialement
    Ryu

    La connaissance s誕cquiert par l弾xp駻ience, tout le reste n弾st que de l段nformation. � Albert Einstein

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

    Une fois votre probl鑪e solutionn� pensez � mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  2. #2
    Membre 駑駻ite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    D騁ails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (ホle de France)

    Informations professionnelles :
    Activit� : Directeur de projet
    Secteur : High Tech - Mat駻iel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par d馭aut
    Bonjour,
    Le GUI stripping est effectivement la derni鑽e solution. Microsoft indique que c'est � cause de la sandbox et du c�t� Apple, ils disent qu'il suffirait que Microsoft ajoute les commandes script n馗essaire. Dialogue de sourd...depuis 1984 !

    Donc pas le choix !
    Le probl鑪e que tu vas rencontrer est que ce dialogue d'impression peut changer suite � des mises � jour Apple ou 黎re diff駻ent selon les types d'imprimante.
    Pour le choix du dossier (commande g) et le nom du fichier, cela ne posera sans doute pas de probl鑪e � l'avenir, mais pour les pages de x � y, l'馗helle et l'option classeur entier ou pas, on ne peut 黎re certain � long terme.

    Pour cette partie l�, j'essaierai de cr馥r, en VBA, un workbook avec une seule feuille, seulement le format voulu et le nombre de pages voulu. Il restera donc � l'enregistr� tel qu'il est avec le commande g et le nom.

    En dehors de cette remarque, ton script est correct.

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

    Informations professionnelles :
    Activit� : PAO
    Secteur : Communication - M馘ias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par d馭aut
    Re,

    Merci de ta r駱onse.
    Comme t'as pu le voir j'ai mis un max d'informations pour cerner au mieux le probl鑪e.
    Juste pour expliquer mon raisonnement, j'ai fait le script de tel maniere que les actions faites soit les m麥es que celles qui sont faites manuellement.
    Car quand ont fait ces manipulations manuellement le sandbox ne joue pas et on passe au travers (normalement).
    Mon probl鑪e se trouve surtout au niveau des 2 fen黎res "imprimer" entre Excel 2011 et Excel 2016 qui sont l馮鑽ement diff駻ente (cf captures post pr馗馘ent) afin de pouvoir s駘ectionner les options 駭um駻馥s pr馗馘emment.
    De plus sur Excel 2016 (sur mes tests chez moi) l'enregistrement du pdf ne se met pas au nom choisi, mais met le chemin du dossier choisi � la place du nom. Est ce que j'ai loup� qq chose ?

    Comment dois-je m'y prendre afin de pouvoir faire une s駘ection sur les options choisies comme par exemple :
    Imprimer : "S駘ection" , "Feuilles s駘ectionn馥s", "Classeur entier" ???
    Cette option est diff駻ente entre Excel 2011 (coche de bouton radio) et 2016 (choix par liste d駻oulante).

    PS : J'ai v駻ifi� � mon taf avec une imprimante diff駻ente et OS X diff駻ent , j'ai la m麥e fen黎re "imprimer" sur Excel 2011

    Ryu

    Edit : pour le moment le seul moyen que j'ai trouv� sur Excel 2011 dans la fen黎re imprimer pour s駘ectionner soit la feuille soit la plage ou le classeur (par d馭aut la feuille est s駘ection�) :
    Code : S駘ectionner tout - Visualiser dans une fen黎re � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    tell application "Microsoft Excel"
    	activate
    	tell application "System Events" to tell process "Microsoft Excel"
    		keystroke "p" using command down
    		repeat 10 times
    			keystroke tab
    		end repeat
    		--key code 125 -- Classeur entier
    		key code 126 -- Sélection
    	end tell
    end tell
    As tu quelque chose de mieux � me proposer ?
    Cordialement
    Ryu

    La connaissance s誕cquiert par l弾xp駻ience, tout le reste n弾st que de l段nformation. � Albert Einstein

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

    Une fois votre probl鑪e solutionn� pensez � mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  4. #4
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    D騁ails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (ホle de France)

    Informations professionnelles :
    Activit� : PAO
    Secteur : Communication - M馘ias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par d馭aut
    Bonsoir PBELL,

    Concernant la proposition que tu m'as faite :
    Pour cette partie l�, j'essaierai de cr馥r, en VBA, un workbook avec une seule feuille, seulement le format voulu et le nombre de pages voulu. Il restera donc � l'enregistr� tel qu'il est avec le commande g et le nom.
    Elle ne me convient pas car, j'aimerai plut�t un code g駭駻al qu'une personne lambda puisse utiliser directement


    Le GUI stripping est effectivement la derni鑽e solution. Microsoft indique que c'est � cause de la sandbox et du c�t� Apple, ils disent qu'il suffirait que Microsoft ajoute les commandes script n馗essaire. Dialogue de sourd...depuis 1984 !
    Peux tu me donner plus de d騁ails sur les parties en Gras


    Sinon sur le m麥e principe que Excel 2011 pour Excel 2016 pour l'option : "Imprimer :" "S駘ection" , "Feuilles s駘ectionn馥s", "Classeur entier"
    Code : S駘ectionner tout - Visualiser dans une fen黎re � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    tell application "Microsoft Excel"
    	activate
    	tell application "System Events" to tell process "Microsoft Excel"
    		keystroke "p" using command down
    		repeat 10 times
    			keystroke tab
    		end repeat
    		--key code 125 -- Classeur entier
    		key code 126 -- Sélection
    		key code 126 -- Sélection
    		key code 76
    	end tell
    end tell
    Qu'en penses tu ? Apparement on peut acc馘er � ces options de cette mani鑽e. je ne pense pas que cela soit la meilleure fa輟n mais 軋 marche �

    Je suis tomb� sur un lien parlant de print settings, mais si j'ai bien compris cela ne permet pas d'avoir toutes les options,
    mais seulement celles par d馭aut � tout logiciel, et non celles qui sont sp馗ifiques � Excel.

    Voil�, je suis preneur de toutes nouvelles id馥s/approches afin que je puisse arriver au r駸ultat souhait� � si possible �

    Ryu
    Cordialement
    Ryu

    La connaissance s誕cquiert par l弾xp駻ience, tout le reste n弾st que de l段nformation. � Albert Einstein

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

    Une fois votre probl鑪e solutionn� pensez � mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

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

    Informations professionnelles :
    Activit� : PAO
    Secteur : Communication - M馘ias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par d馭aut
    Bonsoir,

    j'ai pas abandonn� le post, je suis toujours dans mes recherches afin de r駸oudre ce qui peut 黎re bloquant �

    Ma question, et elle est importante, j'aimerai savoir si il est possible d'avoir un fichier AppleScript ".scpt" dans un emplacement pr馗is et de lui envoyer des instructions � faire au lieu que celles-ci soient directement dedans ??
    Si oui, comment faut il proc馘er ??

    merci

    Ryu
    Cordialement
    Ryu

    La connaissance s誕cquiert par l弾xp駻ience, tout le reste n弾st que de l段nformation. � Albert Einstein

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

    Une fois votre probl鑪e solutionn� pensez � mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  6. #6
    Membre 駑駻ite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    D騁ails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (ホle de France)

    Informations professionnelles :
    Activit� : Directeur de projet
    Secteur : High Tech - Mat駻iel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par d馭aut
    Bonjour,
    J'ai 2 interpr騁ations de ta demande:
    1) est-il possible, dans un script de lancer une autre application (馗rite en Applescript ou pas) ?
    2) est-il possible, dans un script, d'appeler des fonctions 馗rite en Applescript, mais situ馥s dans une autre fichier Applescript.

    Les r駱onses sont oui et oui !

    Dans le 1, il est toujours possible de lancer une autre application: via la fonction open, ou encore avec un do shell script si tu dois passer des arguments.

    Dans le 2, il faut utiliser les librairies. Tu as un script qui contient plein de handlers fonctions ou routines: c'est une biblioth鑷ue de tes propres fonctions.
    Et tu as ton script principal qui charge (instruction "load") cette biblioth鑷ue, et utilise les fonctions / routines, comme si elles faisaient partie de ce script principal.
    L'avantage est important car en cas de bug tu dois juste corriger ta biblioth鑷ue est tous les script qui l'utilisent seront fonctionnels (ou auront un nouveau bug )

    Cordialement

  7. #7
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    D騁ails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (ホle de France)

    Informations professionnelles :
    Activit� : PAO
    Secteur : Communication - M馘ias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par d馭aut
    Bonjour,
    Merci de ta r駱onse cela m'ouvre de nouveau horizon, et c'est bon de le savoir
    Je n'h駸iterai pas � les utiliser.

    Sinon je me suis peut 黎re mal exprim�.
    Si je fais mon script dans Excel via MacScript, est il possible d'envoyer les actions de MacScript dans un fichier situ� � emplacement d馭ini ?

    M麥e si pour cela il faut, � tout hasard, envoyer le script dans le presse papier, qui est r馗up駻er par ledit fichier (activer par MacScript) qui celui-ci transforme les donn馥s du presse papier en action ? Je sais c'est peut-黎re tir� un peu par les cheveux. Mais si on se pose pas la question vu mon faible niveau, je peux passer � c�t�.
    Ryu

    Edit : pour 黎re plus pr馗is :
    Avec Excel 2016 on est quasi oblig� par passer par "AppleScriptTask" (d'ailleurs ce qui est embettant si j'ai bien compris, on ne peut qu'envoyer qu'un seul param鑼re1),
    o� les fichiers ".scpt" sont mis dans le dossier "com.microsoft.Excel".
    j'aimerai cr馥r un fichier "type" en ".scpt" dans ledit dossier et pouvoir envoyer les actions faites dans Excel en MacScript sur ce fichier qui lui ce chargera effectuer les actions que MacScript lui transmettra

    1 A titre d'information voil� les param鑼res que l'on peut mettre, c'est le 3� qui peut 黎re bloquant :
    Code : S駘ectionner tout - Visualiser dans une fen黎re � part
    myScriptResult = AppleScriptTask ("Fichier.scpt", "NomDuScriptDansleFichier", "un seul parm鑼re en string")
    c'est l'une des raisons pour laquelle je veux envoyer mes action de MacScript sur le fichier qui lui les executera
    Cordialement
    Ryu

    La connaissance s誕cquiert par l弾xp駻ience, tout le reste n弾st que de l段nformation. � Albert Einstein

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

    Une fois votre probl鑪e solutionn� pensez � mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  8. #8
    Membre 駑駻ite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    D騁ails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (ホle de France)

    Informations professionnelles :
    Activit� : Directeur de projet
    Secteur : High Tech - Mat駻iel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par d馭aut
    Bonsoir,

    Citation Envoy� par RyuAutodidacte Voir le message
    Avec Excel 2016 on est quasi oblig� par passer par "AppleScriptTask" (d'ailleurs ce qui est embettant si j'ai bien compris, on ne peut qu'envoyer qu'un seul param鑼re1),
    o� les fichiers ".scpt" sont mis dans le dossier "com.microsoft.Excel".
    j'aimerai cr馥r un fichier "type" en ".scpt" dans ledit dossier et pouvoir envoyer les actions faites dans Excel en MacScript sur ce fichier qui lui ce chargera effectuer les actions que MacScript lui transmettra

    1 A titre d'information voil� les param鑼res que l'on peut mettre, c'est le 3� qui peut 黎re bloquant :
    Code : S駘ectionner tout - Visualiser dans une fen黎re � part
    myScriptResult = AppleScriptTask ("Fichier.scpt", "NomDuScriptDansleFichier", "un seul parm鑼re en string")
    c'est l'une des raisons pour laquelle je veux envoyer mes action de MacScript sur le fichier qui lui les executera
    Effectivement, Apple a renforc� la s馗urit� ce qui restreint les acc鑚. D'o� l'obligation de passer par le dossier com.microsoft.Excel.
    Si tu essayes de contourner, outre l'aspect s馗urit�, tu sera un jour ou l'autre confront� � une porte que Apple et/ou Microsoft te fermeront.

    Il reste toutefois des alternatives indirectes pour passer plusieurs arguments.

    Par exemple ton unique argument peut 黎re un fichier de donn馥s qui contient plein d'arguments. Le VBA Excel peut 馗rire de fichier avec un format texte ou mieux html. Le ApplescriptTask n'envoie que le chemin/nom de ce fichier, qui sera lu par l'Applescript.
    Ainsi, l'Applescript pourra lire toutes les donn馥s du fichier comme arguments.
    Cela n馗essite de bien r馭l馗hir � ce fichier, son contenu,...etc car on peut avoir un nombre variable d'arguments !
    Il faut aussi penser � son emplacement (sans doute accessible dans le domaine du user). il est possible aussi de le supprimer par script, une fois la lecture des arguments faite.

    Cordialement

  9. #9
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    D騁ails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (ホle de France)

    Informations professionnelles :
    Activit� : PAO
    Secteur : Communication - M馘ias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par d馭aut
    Bonjour,
    Le but n'est pas de contourner les protections mais de cr馥r une passerelle avec les fichiers scpt se trouvant dans le dossier de Microsoft pour essayer de gagner en souplesse, et pas 黎re � chaque fois oblig� de cr馥r un fichier type propre � une action (global) pr馗ise.

    Apr鑚 il reste quelques actions pouvant se faire avec MacScript, par exemple j'ai pu adapter pour Excel 2016 le MacScript que ja vais fait sur Excel 2011 pour getopenfilename.

    J'ai fait un test dans le sens que tu proposes o� j'ai pass� tous les arguments dans un string qui eux sont transform駸 en liste pour que chaque 駘駑ents de la liste correspondent � un argument.

    Je viens d'avoir une nouvelle id馥, un peu comme tu le proposes dans l'id馥 mais de mani鑽e diff駻ente, cr馥r un fichier o� l'on passera pas les arguments mais directement le script que l'on a 馗rit dans Excel et enregistrer ce fichier en scpt dans le dossier de Microsoft que l'on pourra activer avec AppleScriptask.

    Je n'ai jamais fait encore cela et je n'ai aucune id馥 de comment m'y prendre pour le moment �
    Qu'en penses tu??
    Cordialement
    Ryu

    La connaissance s誕cquiert par l弾xp駻ience, tout le reste n弾st que de l段nformation. � Albert Einstein

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

    Une fois votre probl鑪e solutionn� pensez � mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  10. #10
    Membre 駑駻ite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    D騁ails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (ホle de France)

    Informations professionnelles :
    Activit� : Directeur de projet
    Secteur : High Tech - Mat駻iel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par d馭aut
    Bonjour,
    Attention, le fichier sept n'est pas simplement le script sous forme de texte, mais c'est aussi une partie cach馥 qui contient la version compil馥 de ce script.

    Don enregistrer depuis Excel un fichier texte avec des instructions AS, n'en fera pas un script ex馗utable.

    Cordialement

  11. #11
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    D騁ails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (ホle de France)

    Informations professionnelles :
    Activit� : PAO
    Secteur : Communication - M馘ias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par d馭aut
    Re,
    j'ai trouv� le code pour Excel pour cr馥r un fichier, par contre celui-ci serait enregistr� en ".scpt" et non en ".txt".
    J'aurais une variable du type string dans Excel que je mettrai dans le fichier avec :
    Code vba : S駘ectionner tout - Visualiser dans une fen黎re � part
    1
    2
    3
    4
    Close
    Open chemin & "monfichier.scpt" For Output As #1
      Print #1, mavariabletexte
      Close
    J'ai test� avec Excel 2011 et quand je clique sur le fichier cr馥r, il est bien reconnu en tant que fichier AppleScript puisque l'馘iteur de script l'ouvre directement.
    Apr鑚 je me peux tromper comme je n'ai pas fini de tester.

    Je me suis aper輹 que Ron de Bruin � eu aussi l'id馥 de pouvoir cr馥r un script depuis Excel.
    J'avoue ne pas avoir encore tout compris, mais j'y travaille.
    C'est tout en bas du lien :https://www.rondebruin.nl/mac/applescripttask.htm

    Edit : Bon je crois avoir compris, le fonctionnement dans le principe c'est presque pareil (cr馥r un fichier avec son code) je voulais le faire directement par vba et lui le fais via le terminal aid� par un fichier d駛� en place.

    Edit 2 :
    Citation Envoy� par RyuAutodidacte Voir le message
    J'ai fait un test dans le sens que tu proposes o� j'ai pass� tous les arguments dans un string qui eux sont transform駸 en liste pour que chaque 駘駑ents de la liste correspondent � un argument.
    voil� ce que j'avais fait :
    Code : S駘ectionner tout - Visualiser dans une fen黎re � part
    1
    2
    3
    4
    5
    6
    on Test(Listes)
    	set {myTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, {","}}
    	set myList to text items of Listes
    	set AppleScript's text item delimiters to myTID
    	do shell script "mkdir " & quoted form of (item 1 of myList & item 2 of myList)
    end Test
    Est ce correct, o� y a t-il une meilleur fa輟n de l'馗rire ?
    Cordialement
    Ryu

    La connaissance s誕cquiert par l弾xp駻ience, tout le reste n弾st que de l段nformation. � Albert Einstein

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

    Une fois votre probl鑪e solutionn� pensez � mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  12. #12
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    D騁ails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (ホle de France)

    Informations professionnelles :
    Activit� : PAO
    Secteur : Communication - M馘ias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par d馭aut
    Bonjour PBELL,

    toujours pas de r駱onse
    bon, je sais j'ai fait une apart� mais n馗essaire si je veux ex馗uter un script � partir de Excel 2016 et
    pourvoir continuer mon post sur la cr饌tion d'un pdf � partir soit de Excel 2011 ou 2016

    Donc j'ai fait ma propre proc馘ure � partir du script AS dans mon post pr馗馘ent (origine macscripter.net - je mettrai le lien) et
    la fonction osacompile (utilisation en terminal ou AS avec do shell script - donc la m麥e que Ron de Bruin utilise) qui me permet d'avoir le m麥e r駸ultat
    que mon code vba de mon post pr馗馘ent (sauf que celui-ci est bloqu� avec l'utilisation d'excel 2016)
    je mettrai cette proc馘ure ce soir � !

    - j'aimerai savoir, si le code AS montr� dans mon post pr馗馘ent (celui de macscripter.net) est correct o� y a t-il une fa輟n de l'馗rire de mani鑽e plus optimis� ??

    Pour :
    - Dans le 1, il est toujours possible de lancer une autre application: via la fonction open, ou encore avec un do shell script si tu dois passer des arguments.
    As tu un exemple ??

    - j'aimerai savoir comment on fait pour cibler, comme dans les captures d'馗ran de la fen黎re "Imprimer" les boutons radios, les cases � cocher,
    les textbox et les menus d駻oulant en AS ?? y a t il une m騁hode, un lien expliquant cela � ? sinon comment fait on ?

    Ryu

    Edit : ma proc馘ure (PS : le lien de macscripter.net => http://macscripter.net/viewtopic.php?id=12962) :



    Excel 2016 - utiliser un script Applescript directement depuis Excel


    覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧


    Code VBA - Exemple pour cr饌tion d置n fichier Applescript afin de l置tiliser dans Excel 2016


    Sub CreaFicScptAndRun()
    Dim MonScript As String, MonFichierScpt As String, CreerMonScript

    InsertScript = "on RunMyScritp()" & Chr(13) 'D饕ut du Script => NE PAS MODIFIER

    'C脱ST ICI QUE l丹N CREER SON SCRIPT - METTRE SON SCRIPT APRES : "InsertScript & "
    CreaMyscript = InsertScript & "Display Alert ""OK ca marche"""

    InsertScript = CreaMyscript & Chr(13) & "End RunMyScritp" 'Fin du Script => NE PAS MODIFIER

    MonFichierScpt = "CoucouOK.scpt"
    CreaFicScript = AppleScriptTask("GetMyScript.scpt", "CreaMyScript", InsertScript & "|" & MonFichierScpt) 'Cr饌tion du fichier scpt avec le script d馭ini
    RunScript = AppleScriptTask("CoucouOK.scpt", "RunMyScritp", "") 'lancement du script que l'on a cr馥r

    EndSub


    覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧


    Avec l帝diteur de Script Applescript


    Code du fichier AppleScript permettant de cr馥r un script dans un fichier


    1 - D駑arrer un l帝diteur de script AppleScript


    2 - Cr馥r un nouveau fichier, puis copier dans l帝diteur le code ci-dessous : ォ Installation du dossier ォ com.microsoft.Excel サ et du fichier ォ GetMyScript.scpt サ � サ afin de l弾x馗uter


    3 - Le dossier ォ com.microsoft.Excel サet le fichier ォ GetMyScript.scpt サ ont 騁� cr鳬 dans : Users/UserName/Library/Application Scripts/com.microsoft.Excel/ - (UserName = Nom de la session OS X)


    ォ GetMyScript.scpt サ sert � cr馥r un fichier AppleScript que l弛n aura compil� avec du code AS via VBA afin de pouvoir ex馗uter directement un script AppleScript par la suite depuis une macro Excel


    覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧


    Code du fichier ォ GetMyScript.scpt サ


    on CreaMyScript(myparam)
    set {myTID, AppleScript'stext item delimiters} to {AppleScript'stext item delimiters, {"|"}}
    set myList to text items of myparam
    set AppleScript'stext 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/"
    --set monfichier to "MonScpt.scpt"
    do shell script "osacompile -e" & quoted form of MonScript & " -o " & quoted form of (chm & fichier)
    end CreaMyScritp


    覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧


    Installation du dossier ォ com.microsoft.Excel サ et du fichier ォ GetMyScript.scpt サ - cr饌tion de ceux-ci si il n弾xiste pas


    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駛�"
    if VeriFicExiste = "0" then
    display alert "Le fichier \"GetMyScript.scpt\" existe d駛�"
    else
    do shell script "osacompile -e " & CreaFicScript & " -o " & quoted form of (chm & "GetMyScript.scpt")
    display alert "Le fichier \"GetMyScript.scpt\" a 騁� cr鳬"
    end if
    else
    do shell script "mkdir " & quoted form of chm
    display alert "Le dossier \"com.microsoft.Excel\" a 騁� cr鳬"
    do shell script "osacompile -e " & CreaFicScript & " -o " & quoted form of (chm & "GetMyScript.scpt")
    display alert "Le fichier \"GetMyScript.scpt\" a 騁� cr鳬"
    end if



    � N'h駸ite pas pour les commentaires �
    Cordialement
    Ryu

    La connaissance s誕cquiert par l弾xp駻ience, tout le reste n弾st que de l段nformation. � Albert Einstein

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

    Une fois votre probl鑪e solutionn� pensez � mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  13. #13
    Membre 駑駻ite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    D騁ails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (ホle de France)

    Informations professionnelles :
    Activit� : Directeur de projet
    Secteur : High Tech - Mat駻iel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par d馭aut
    Bonjour,
    Je n'ai pas r駱ondu car j'騁ais en d駱lacement. Le code � l'air correct, mais je me demande si il ne faut pas un espace, dans le mkdir, entre les 2 param鑼res (item 1 et item 2) :
    Code : S駘ectionner tout - Visualiser dans une fen黎re � part
    do shell script"mkdir "&quoted formof(item1of myList & " " & item2of myList)
    Je suppose que tes items sont des chemins Unix.

    Pour acc馘er aux boutons et menu d'un dialogue, si ce n'est pas directement scriptable, il faut passer par la GUI (Graphique User Interface), c'est � dire simuler les actions de l'utilisateur (tab pour passer d'un champ � l'autre, caract鑽e de clavier, click sur des menus,...).
    Cette m騁hode doit 黎re utilis馥 en dernier recours, si l'application que tu cherches � contr�ler n'est pas scriptable.

    En effet, l'inconv駭ient de cette m騁hode est qu'elle est d駱endante des contr�les des dialogues de l'application tierce. Dans ton cas, si tu manipules le dialogue d'impression (nb de copie, page de x � y,...), la moindre modification de ce dialogue par Apple (pour la partie standard du dialogue d'impression) ou par l'馘iteur du driver d'imprimante pourra impacter le fonctionnement de ton script.
    Par exemple, tu peux acc馘er au champ Nー 4 du dialogue qui contient le nombre de copie, mais si la version suivante du driver ajoute un nouveau champ, il est possible que le nombre de copies soit d駸ormais le champ Nー5 et ton script ne fonctionnera plus.
    (note: il est aussi possible d'adresser les champs par leur nom et pas par leur Nー, mais le risque est identique avec en plus des probl鑪es de traduction!).

    Enfin, l'autre inconv駭ient est que tu dois autoriser ton script � le faire: Apple a renforc� la s馗urit� et impose des restrictions sur ce qu'un programme peut faire sur d'autres programmes...et ton script va agir via GUI sur d'autres programmes comme le dialogue d'impression.
    Donc il faudra que tu autorises ton script � acc馘er aux applications qu'il doit contr�ler (Pr馭駻ences Syst鑪e / S馗urit�).

    Voici, � titre d'exemple, l'utilisation de la GUI sur le dialogue d'impression de Photoshop:
    Code : S駘ectionner tout - Visualiser dans une fen黎re � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        tell application "System Events"
    keystroke "p" using {command down} -- lance le dialogue d'impression et simule la saisie des param鑼res
    delay 0.5 -- parfois syst鑪e un peu lent !
            tell process "Photoshop"
    keystroke return-- click enter sur le premier dialogue d'impression de Photoshop
    -- dans le second dialogue d'impression, s駘ectionne "Premimum 10x15" dans le pop up menu de format papier
    click pop up button 2 of window 1 -- le Num駻o varie selon le driver (5 sous Snowleopard, 4 sous Yosemite, 2 sous El Capitain)
                click menu item "Premium 10x15" of menu 1 of pop up button 2 of window 1 -- idem : changer le No du button
    keystroke return-- click enter sur le second dialogue
            end tell
        end tell
    J'ai choisi cet exemple sur un script que j'utilise depuis des ann馥s car il indique les changements de Nー du menu de choix du type de papier selon les versions de syst鑪e.

    Ta prochaine question sera sans doute, "comment conna�tre le Nー du bouton, du menu,...?"

    Si tu t駘馗harges xCode, il y a un utilitaire (de m駑oire Accessibility inspector) qui permet de r駱ondre � cette question en affichant les caract駻istiques de l'objet survol� avec la souris.
    Sinon, tu fais par t穰onnement avec des scripts qui font des "get propreties of UI Element": dans le log du script, tu verra tout les objects d'interface graphique de la fen黎re, de l'onglet, du dialog...).

    Bon courage

  14. #14
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    D騁ails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (ホle de France)

    Informations professionnelles :
    Activit� : PAO
    Secteur : Communication - M馘ias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par d馭aut
    Bonjour PBELL,
    Merci pour cette r駱onse compl鑼e
    Concernant les 2 param鑼res (item 1 et item 2), il n'y a pas d'espace, le test fonctionne avec les 2 param鑼res suivant qui sont :
    - le dossier de destination
    - le nom du dossier � cr馥r � l'interieur de celui-ci
    Cordialement
    Ryu

    La connaissance s誕cquiert par l弾xp駻ience, tout le reste n弾st que de l段nformation. � Albert Einstein

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

    Une fois votre probl鑪e solutionn� pensez � mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

Discussions similaires

  1. solution native pour imprimer un pdf sur une imprimante en Java
    Par thierry_b dans le forum API standards et tierces
    R駱onses: 6
    Dernier message: 04/05/2014, 04h00
  2. [WD-MAC 2004] VBA pour imprimer en PDF
    Par thais781 dans le forum VBA Word
    R駱onses: 1
    Dernier message: 30/10/2013, 14h39
  3. Applet Java pour imprimer un PDF
    Par minikpitn dans le forum Applets
    R駱onses: 2
    Dernier message: 06/03/2013, 00h11
  4. lien pour imprimer en pdf
    Par trago dans le forum IHM
    R駱onses: 1
    Dernier message: 28/11/2009, 18h02
  5. Utilisation de Shell32.dll pour imprimer un pdf ?
    Par benoit16 dans le forum VBA Access
    R駱onses: 1
    Dernier message: 10/01/2008, 17h11

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