C'est un peu long, mais voilà
En utilisant AppleScript (vanille, s'il vous plaît), je veux automatiser la feuille de calcul Numbers que j'ai créée pour les comptes des cours de musique de ma femme (qu'elle utilise quatre fois par an - elle est la seule utilisatrice).
Ceci est mon premier projet AppleScript. J'ai trouvé quelques éléments individuels, qui fonctionnent partiellement, et j'aimerais avoir de l'aide pour les assembler.
script 1A et script 1B devraient être combinés en UN script, mais je ne sais pas comment faire.
script 1 n'a besoin d'être exécuté qu'une seule fois, après qu'elle ait ouvert (manuellement) la feuille de calcul, mais script 2 sera exécuté pour chaque compte d'étudiant, pour générer un e-mail (donc environ 25 fois individuelles).
script 2 doit obtenir des informations de script 1 - voir ci-dessous.
La séquence globale devrait se dérouler comme suit :
1) L'utilisateur s'assure que les contacts sont à jour sur son ordinateur portable (Catalina) et ouvre manuellement la feuille de calcul des comptes. 2) Exécuter les scripts 1A &1B (qui seront UN scripts) 3) Remplissez les détails 4) Exécuter scripts 2 5) Vérifiez, et envoyez (manuellement) l'email. 6) Répétez le point 3) pour chaque élève. -------------------------------
script 1A
--returns Contacts group’s names and email addresses
set myList to ""
tell application "Contacts" to repeat with p in people in group "testGroup"
if emails of p is {} then
set e to ""
else
set e to value of email 1 of p
end if
set myList to myList & name of p & ":" & e & linefeed -- gives full names
end repeat
(le résultat est par exemple ) (je ne sais pas si ce résultat est dans un format approprié )
"Peter Pan:peterpan@gmail.com Joe Bloggs:joebloggs@gmail.com Molly Mouse:mollymouse@gmail.com " ---------- ---------- ---------- -
script 1B DOIT UTILISER les éléments du résultat ci-dessus dans le script 1A, PAS la liste de menuItems ci-dessous !
-- Make Pop-Up Menu in Numbers spreadsheet which is already open.
set menuItems to {"Joe Bloggs", "Molly Mouse", "Peter Pan"}
tell application "Numbers"
activate
tell the first table of the active sheet of document 1
tell cell "A3"
-- Set the cell value to the first menu item required. This also selects the cell.
set value to item 1 of menuItems
-- THEN set the cell format. This causes the menu to adopt the value just set as a single item instead of having the three default items.
set the format to pop up menu
end tell
end tell
end tell
tell application "System Events"
tell application process "Numbers"
set frontmost to true
tell window 1
-- The inspector doesn't have to be visible, but its "Cell" pane does have to be selected. (?)
click radio button "Cell" of radio group 1
-- Adds the remaining items by clicking the "+" button and inputting the texts the required number of times.
repeat with i from 2 to (count menuItems)
click button 1 of group 1 of scroll area -1
keystroke (item i of menuItems)
end repeat
end tell
end tell
end tell
---------- ---------- ---------- -
L'utilisateur sélectionne un nom dans le menu contextuel, qui existe maintenant, et remplit les détails de la leçon, les frais, etc.
Puis exécute script 2 probablement en appuyant sur une combinaison de touches sur le clavier - la feuille de calcul s'exécute généralement en plein écran sur l'ordinateur portable, donc une combinaison de touches simplifierait les choses ( pas essentiel, mais pratique. Je peux attribuer la combinaison de touches).
---------- ---------- ----------
script 2
--Make an email, with a screen captured image of the spreadsheet page, ready to send to the address belonging to the selected name in the Pop-Up Menu
set thePath to POSIX path of (path to documents folder) & "IMAGE" & ".jpg"
do shell script "screencapture -R20,80,720,880 -tjpg" & space & quoted form of the thePath
tell application "Mail"
set myMessage to make new outgoing message
set subject of myMessage to "Music Lessons 1st Term"
set content of myMessage to " \r \r \r "
set theAttachedImage to "Macintosh HD:Users:petehunter:Documents:IMAGE.jpg"
--
tell myMessage
make new to recipient at end of to recipients with properties {name:"peterpan@gmail.com “} —Fake name for test purposes! The Script must provide this/these names
make new attachment with properties {file name:theAttachedImage as alias}
end tell
--
activate -- brings Mail to front, for checking, and a manual send.
end tell
---------- ---------- ---------- -
J'espère que cela est suffisamment clair. Merci d'avance pour votre aide.
0 votes
Il semble que les couleurs de mon code ne soient pas correctes à 100 %...