Bienvenue invité ( Connexion | Inscription )
![]() ![]() |
21 Oct 2022, 16:20
Message
#1
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Bonjour,
Je cherche un script qui pourrait enregistrer tous les destinataires et les objets de mails écrits après 20h00 dans un fichiers .txt Je bidouille un peu Applescript depuis peu, à part démarrer l'application Mail, je ne sais pas faire grand chose... Merci pour votre aide. -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
21 Oct 2022, 22:08
Message
#2
|
|
|
Adepte de Macbidouille ![]() Groupe : Membres Messages : 185 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
Bonjour,
Si J'ai bien compris tu veux extraire les éléments des mails qui sont dans ta boite d'envoie et qui ont été envoyés après 20 heure. Donc tu ouvres mail, dans ta boite d'envoi tu sélectionnes tous les mails puis tu lances ce script, il crée sur le bureau un fichier texte du nom de "les mails apres 20 heure.txt" contenant les infos (1 ligne par mail). Il te met un message lorsqu'il a terminé. Dis moi si cela te convient . Code tell application "Mail" to if running then
repeat with tMsg in (get selection) set Ladate to the (date received of tMsg) as rich text --date du mail envoi ou recu set heure to characters -8 thru -7 of Ladate as string if heure > 19 then set objet to (subject of tMsg) --objet du mail envoi ou recu set adresse to {address of recipient of tMsg} as string --adresse mail destinataire si boite envoi set aqui to (name of recipient of tMsg) as string --nom destinatairer si boite envoi if aqui = "missing value" then set aqui to "?" set expediteur to (sender of tMsg) as string --expediteur si boite recu ton adresse si boite envoi tell application "Finder" set lelog to open for access ((path to desktop folder as text) & "les mails apres 20 heure.txt") as text with write permission write "Mail envoyé à : " & aqui & " Adresse mail : " & adresse & " Objet : " & objet & " le : " & Ladate & return to lelog starting at eof close access lelog end tell end if end repeat end if tell application "Finder" activate (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"}) end tell Ce message a été modifié par Zeltron54 - 22 Oct 2022, 08:13. -------------------- Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6) Imac 24 M3 2023 Ram 24Go macOS Sequoia 15.7.3 |
|
|
|
22 Oct 2022, 08:17
Message
#3
|
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 268 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
Bonjour,
Zeltron est vraiement très rapide ! Bravo. Voici un autre exemple de script qui peut te servir de point de départ. Cela montre, qu'il y a toujours plusieurs façon d'écrire un script. Celui-ci liste tous les mails envoyés depuis xx jours (ici 1) après 20 heure, sans qu'il soit nécessaire de les avoir sélectionnés au préalable. CODE set MDate to (current date) - days * 1 -- défini hier comme date de recherche set AppleScript's text item delimiters to tab -- défini le séparateur des adresses set heurelimite to 20 -- défini l'heure à partir de laquelle il faut lister set monTexte to "" tell application "Mail" set maListe to (every message in sent mailbox whose date sent > MDate) repeat with unMessage in maListe set maDate to date sent of unMessage if hours of maDate ≥ 20 then set mesDestinataires to (address of recipients of unMessage) as rich text set monTexte to monTexte & subject of unMessage & tab & mesDestinataires & return end if end repeat end tell if monTexte is "" then return -- rien à enregistrer set Fichier_Log to (((path to desktop) as text) & "emails_envoyés.txt") try do shell script "touch " & (quoted form of (POSIX path of Fichier_Log)) do shell script "echo " & (quoted form of monTexte) & " >> " & (quoted form of (POSIX path of Fichier_Log)) end try Cordialement -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
|
22 Oct 2022, 08:47
Message
#4
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Merci pour vos réponses super rapides, je ne m'attendais pas à autant de réactivité
Je vais tester vos scripts, encore merci ! -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
22 Oct 2022, 08:52
Message
#5
|
|
|
Adepte de Macbidouille ![]() Groupe : Membres Messages : 185 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
@PBell Bonjour,
Ton script est bien plus sophistiqué que le mien, et bien plus subtil ...Bravo J'ai écris çà car la demande disait qu'il démarrait en applescript . J'ai voulu faire simple avec explications... Mais je suis bien en-dessous de tes capacités. Bonne journée Amicalement ! -------------------- Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6) Imac 24 M3 2023 Ram 24Go macOS Sequoia 15.7.3 |
|
|
|
22 Oct 2022, 09:24
Message
#6
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Une petite question : où avez-vous appris à programmer en Applescript ? J'ai trouvé des sites francophones mais qui datent, aucun livre français récent... Je suppose qu'il s'orienter vers des ressources anglophones ?
-------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
22 Oct 2022, 12:25
Message
#7
|
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 268 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
Bonjour Davdenice,
Je suggère le site Apple (en anglais !) pour commencer : AppleScript Ensuite, dans l'éditeur de script, ouvre la fenêtre Bibliothèque pour accéder aux dictionnaires de quelques applications: cela te donnera les objets et classes Applescript que tu peux utiliser dans chaque application. Enfin, et surtout, il ne faut pas hésiter à écrire et tester. Quelque soit le langage , la pratique est le meilleur moyen d'apprendre (c'est vrai aussi dans tous les autres domaines !). D'autant plus que, aujourd'hui, chaque question peut trouver une réponse sur Google...bien plus facilement qu'il y a 40 ans ...en particulier sur ce site: Tu l'as constaté, Macbidouille est réactif. Hormis lorsque tu écris ou supprime des fichiers, AppleScript ne peux pas endommager ton Mac (surtout sur les derniers systèmes), donc essaye tout ! Cordialement Bonjour Zeltron54 Ton script est bien plus sophistiqué que le mien, et bien plus subtil ...Bravo Merci. je prend le compliment. Mais fondamentalement les 2 scripts font une boucle sur chaque message et de ce fait sont assez similaires. Au contraire, je trouve toujours que les différentes manières de résoudre un problème sont toujours plus instructives, surtout pour des débutants. La différence est dans l'écriture du fichier: Compte tenu des capacités mémoires actuelles, j'ai tendance à tout stocker dans une variable en mémoire et l'enregistrer en une seule fois à la fin, plutôt que d'écrire ligne par ligne. Bien sûr ta méthode (ligne par ligne) est bien plus pertinente si il y a avait plusieurs centaines ou milliers de lignes à écrire. Cordialement -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
|
22 Oct 2022, 13:02
Message
#8
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Je suis désolé de vous embêter, mais quand je lance vos scripts il ne se passe rien.
Je n'ai pas de message d'erreur, Mail est lancé, mais ça s'arrête là. Dois-je modifier les scripts quelque part pour les adapter à mon Mac ? (adresse mail par exemple ?). Merci pour votre aide. -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
22 Oct 2022, 13:18
Message
#9
|
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 268 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
Le lancement du script ouvre effectivement Mail, et recherche les emails envoyés hier après 20h.
Si il n'y a pas d'emails correspondant, le script ne fait rien. Si il y en a, un fichier texte nommé "emails_envoyés.txt" est enregistré sur ton bureau. As-tu des emails envoyés hier après 20h ? Si tu veux tester sur les 2 ou 3 jours précédents, tu peux changer la première ligne: par exemple "days * 4" prendra les 4 derniers jours. Cordialement Ce message a été modifié par PBell - 22 Oct 2022, 13:19. -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
|
22 Oct 2022, 13:29
Message
#10
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Le lancement du script ouvre effectivement Mail, et recherche les emails envoyés hier après 20h. Si il n'y a pas d'emails correspondant, le script ne fait rien. Si il y en a, un fichier texte nommé "emails_envoyés.txt" est enregistré sur ton bureau. As-tu des emails envoyés hier après 20h ? Si tu veux tester sur les 2 ou 3 jours précédents, tu peux changer la première ligne: par exemple "days * 4" prendra les 4 derniers jours. Cordialement Super ça fonctionne ! Merci beaucoup. En effet, j'ai fait la modification que tu m'as indiquée, j'ai mis 1095 (=3 ans) à la place de 1 et ça fonctionne ! Encore merci !!! -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
22 Oct 2022, 14:25
Message
#11
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
comment faire pour sélectionner un compte email en particulier ?
j'ai essayé de modifier le code en ajoutant : tell application "Mail" set account name to "[email protected]" mais ça ne fonctionne pas ... Serait-il possible également sans vouloir abuser de m'indiquer comment faire pour avoir un texte de sortie tel que : compte d'envoi / heure d'envoi / jour d'envoi / date d'envoi / destinataire / sujet Merci beaucoup. -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
22 Oct 2022, 14:47
Message
#12
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
j'ai essayé :
Code set maListe to (every message in sent "[email protected]" whose date sent > MDate) Cela ne fonctionne pas non plus... -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
22 Oct 2022, 17:57
Message
#13
|
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 268 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
comment faire pour sélectionner un compte email en particulier ? Il suffit de changer la ligne de sélection des emails: CODE set maListe to (every message in sent mailbox whose date sent > MDate) ...qui devient: CODE set maListe to (every message of mailbox "Sent Messages" of account "[email protected]" whose date sent > MDate) Cette nouvelle ligne filtre la demande de messages pour le compte "[email protected]" (remplacer par ton compte). La seconde différence est que "sent mailbox" de la version précédente représentait la boite d'envoi générique de Mail et il faut maintenant donner la boite d'envoi spécifique liée à ton compte. J'ai mis ici la boite d'envoi "Sent Messages". A toi de mettre le nom de ta boite d'envoi de ton compte. Malheureusement, il est difficile de connaître le nom de cette boite d'envoi spécifique à un compte qui semble attribuée par Mail (ou par le serveur de messagerie ?) à la création du compte. Je n'ai pas souvenir d'avoir crée ces valeurs !. Donc pour la trouver, j'ai écrit le script ci-dessous : CODE tell application "Mail" repeat with monCompte in every account log "account=" & name of monCompte get every mailbox of monCompte end repeat end tell Dans l'AppleScript Editor, tu demandes à afficher les réponses en bas de la fenêtre et tu lances ce script. Dans les réponses, tu vas trouver, pour chacun de tes comptes, les mail boxes associées, y compris celle d'envoi. A titre d'exemple, j'ai 3 comptes et mes mailboxes d'envoi sont: "Sent Messages", "INBOX/OUTBOX" et "[Gmail]/Messages envoyés". Enfin, en reprenant mon script initial pour tester, j'ai trouvé une petite erreur: La ligne CODE if hours of maDate ≥ 20 then doit être remplacée par CODE if hours of maDate ≥ heurelimite then Comme la variable heurelimite vaut 20, cela fonctionne toujours, mais la nouvelle ligne est plus propre ! Cordialement -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
|
24 Oct 2022, 14:38
Message
#14
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Hello,
J'ai bien fait les modifications que tu m'as indiquées. J'ai remplacé "Sent Messages" par INBOX.INBOX.Sent qui semble être la boîte qui stock les messages envoyés. j'ai le message d'erreur suivant : error "Erreur dans Mail : Il est impossible d’obtenir account \"[email protected]\"." number -1728 from account "[email protected]" -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
24 Oct 2022, 14:46
Message
#15
|
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 268 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
Bonjour,
Il faut bien sûr remplacer "[email protected]" par le nom du compte mail sur lequel tu veux travailler. "[email protected]" n'était qu'un exemple, car je ne connais pas le compte email que tu souhaites analyser. En général le nom du compte est le même que l'email qui lui est associé,...mais cela dépend de tes réglages. Si tu as un doute, le script suivant te donnera le nom des comptes Mail (toujours vregarder le résultat dans l'onglet "Réponses" de l'éditeur de script: CODE tell application "Mail" to get get every account Bien sûr, il en est de même pour INBOX.INBOX ...qui ne représente probablement pas une boite d'envoi, mais sans doute une boite de réception. As tu lancer le script que j'ai fourni pour connaître les boites mails existantes ? Si tu as un doute, copie/colle le résultat dans un mail privé à mon attention (pour éviter que tout le monde voit tes adresses et comptes). Promis je n'en ferai rien (-: Cordialement Ce message a été modifié par PBell - 24 Oct 2022, 14:49. -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
|
24 Oct 2022, 15:01
Message
#16
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
finalement j'ai pu trouver la boite de messages sortants et j'ai rentré le code :
Code mailbox "INBOX.INBOX.Sent" of account id "7CED9D99-5716-49C9-C211-1C3A281AF778" of application "Mail" Je suis sûr à 100% que c'est cette boite là, j'ai récupéré le code ci-dessus grâce à ton second script. Cependant je n'ai qu'une dizaine de messages alors qu'en théorie il y en a beaucoup plus envoyés après 20h. Ce message a été modifié par davdenice - 24 Oct 2022, 15:03. -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
24 Oct 2022, 15:17
Message
#17
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
L'idéal serait de pouvoir traiter les mails dans le dossier "Envoyés" de [email protected].
Fichier(s) joint(s)
-------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
24 Oct 2022, 16:17
Message
#18
|
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 268 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
Bien: on progresse.
La boite est donc "INBOX.INBOX.Sent". Cela ressemble effectivement à une boite d'envoi Le compte affiche le compte Id et pas le nom du compte, mais cela peut aussi fonctionner comme ça : l'Id est seulement moins sympa que le nom du compte Si tu n'as qu'une dizaine de messages, ...c'est que la sélection n'en donne que 10 (!) Sur combien de jours dans le passé cherches tu ? Dans un post précédent tu indiques avoir mis 1095 jours. Est-ce toujours le cas ? C'est à dire la première ligne donne bien une date au 25/10/19 Tu peux suivre ça toujours dans le fenêtre "Réponses" de l'éditeur AppleScript, après exécution du script. La ligne CODE set maListe to (every message of mailbox "INBOX.INBOX.Sent" of account id "7CED9D99-5716-49C9-C211-1C3A281AF778" whose date sent > MDate) doit retourner, dans les résultats, tous les emails correspondants aux critères: 1) boite d'envoie =INBOX.INBOX.Sent 2) account =7CED9.... 3) date de l'envoi > 25/10/19 (aujourd'hui - 1095 jours) Regarde dans les résultats: combien d'emails sont listés ? Probablement 10 ! Attention, le script regarde les emails placés dans la boite d'envoi. Si certains emails, une fois envoyés, sont déplacés dans une autre boite ou archive,...alors ils ne sont plus dans le boite d'envoi ! Quant à ton second message, je suis un peu perplexe: As tu réellement un compte avec un adresse email "[email protected]" ? Cordialement -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
|
24 Oct 2022, 16:24
Message
#19
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Non, je n'ai aucun compte toto
Le script actuel est : Code set MDate to (current date) - days * 1095 -- définir jour de date de recherche set AppleScript's text item delimiters to tab -- défini le séparateur des adresses set heurelimite to 20 -- défini l'heure à partir de laquelle il faut lister set monTexte to "" tell application "Mail" set maListe to (every message of mailbox "INBOX.INBOX.Sent" of account id "7CBE9D99-5716-49C9-B211-1C3B282AF778" of application "Mail" whose date sent > MDate) repeat with unMessage in maListe set maDate to date sent of unMessage if hours of maDate ≥ heurelimite then set mesDestinataires to (address of recipients of unMessage) as rich text set monTexte to monTexte & subject of unMessage & tab & mesDestinataires & return end if end repeat end tell if monTexte is "" then return -- rien à enregistrer set Fichier_Log to (((path to desktop) as text) & "emails_envoyés.txt") try do shell script "touch " & (quoted form of (POSIX path of Fichier_Log)) do shell script "echo " & (quoted form of monTexte) & " >> " & (quoted form of (POSIX path of Fichier_Log)) end try Encore merci beaucoup pour ton aide ! Autre question : Est-ce possible d'indiquer le jour de l'envoi du mail (lundi, mardi, mercredi etc...) + la date dans le .txt ? Ce message a été modifié par davdenice - 24 Oct 2022, 16:21. -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
24 Oct 2022, 16:55
Message
#20
|
|
|
Adepte de Macbidouille ![]() Groupe : Membres Messages : 185 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
Bonjour,
Citation Autre question : Est-ce possible d'indiquer le jour de l'envoi du mail (lundi, mardi, mercredi etc...) + la date dans le .txt ? Change la ligne Citation set monTexte to monTexte & subject of unMessage & tab & mesDestinataires & return par Code set monTexte to monTexte & subject of unMessage & tab & mesDestinataires & tab & maDate & return Qui met: l'objet "une tabulation" le destinataire "une tabulation" le jour et l'heure -------------------- Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6) Imac 24 M3 2023 Ram 24Go macOS Sequoia 15.7.3 |
|
|
|
24 Oct 2022, 21:27
Message
#21
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Merci pour ton aide.
Alors je suis revenu sur la version initiale de ton script, que j'ai modifié avec la dernière ligne de code que tu m'as donnée. Code set MDate to (current date) - days * 1095 -- défini hier comme date de recherche set AppleScript's text item delimiters to tab -- défini le séparateur des adresses set heurelimite to 20 -- défini l'heure à partir de laquelle il faut lister set monTexte to "" tell application "Mail" set maListe to (every message in sent mailbox whose date sent > MDate) repeat with unMessage in maListe set maDate to date sent of unMessage if hours of maDate ≥ 20 then set mesDestinataires to (address of recipients of unMessage) as rich text set monTexte to monTexte & maDate & tab & subject of unMessage & tab & mesDestinataires & tab & return end if end repeat end tell if monTexte is "" then return -- rien à enregistrer set Fichier_Log to (((path to desktop) as text) & "emails_envoyés.txt") try do shell script "touch " & (quoted form of (POSIX path of Fichier_Log)) do shell script "echo " & (quoted form of monTexte) & " >> " & (quoted form of (POSIX path of Fichier_Log)) end try Je demande au script de m'indiquer en premier la date du mail envoyé Cependant, je note que les dates sont mélangées, par exemple j'ai plusieurs mails de 2022, puis plusieurs de 2021, puis plusieurs de 2020, et à nouveau plusieurs de 2022... Est-ce possible de modifier le script pour que les dates soient classées dans l'ordre croissant ou décroissant ? Ou bien est ce possible d'exporter le tout dans un fichier .xlsx ou .numbers ? J'ai essayé de remplacer le .txt par ces 2 extensions, le fichier est crée mais j'ai un message d'erreur, Excel et Numbers refusent d'ouvrir le fichier. J'ai réussi à créer un fichier .csv, j'obtiens un tableau lisible, mais c'est découpé n'importe comment. Est-ce possible de le formater dans le script ? -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
25 Oct 2022, 15:46
Message
#22
|
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 268 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
Bonjour,
Lorsqu'on demande à Mail de retourner la liste des emails avec certains critères, il n'y a pas d'option de tri de ces emails. Le plus simple est donc de les trier dans un tableur comme Excel. La conversion txt vers Excel se fait tout simplement via un fichier csv. Par habitude, c'est la raison pour laquelle j'ai utilisé le caractère tab (-ulation) comme séparateur de colonnes. Ce que tu peux simplifier, c'est déjà d'enrigistrer le fichier en .csv à la place du .txt. Pour ce faire, il suffit de corriger la ligne: CODE set Fichier_Log to (((path to desktop) as text) & "emails_envoyés.txt") en CODE set Fichier_Log to (((path to desktop) as text) & "emails_envoyés.csv") Enfin quant au dernier point sur le formatage, c'est l'une des joies d'Applescript: le formattage des dates !! Applescript manipule les dates en leur donnant par défaut un format explicite. Par exemple, aujourd'hui est traduit par "mardi 25 octobre 2022 16:51:06". Ce n'est pas très pratique pour Excel Il faut donc demander explicitement à utiliser le format "Short date string" qui renvoi un "25/10/2022", bien plus sympathique. Le voici ajouté dans la ligne de code du script: CODE set monTexte to monTexte & (short date string of maDate) & tab & subject of unMessage & tab & mesDestinataires & tab & return Tu remarques que ce short date string occulte la partie heure:minute:seconde. Comme tu as déjà filtré les emails pour les heures d'envoi, tu n'en as probablement pas besoin. (à moins que ...?) Maintenant, avec cette nouvelle ligne, lorsque tu ouvres le fichier dans Excel, il faut le convertir en colonnes en utilisant tab comme séparateur (ainsi 25/10/2022 restera dans une seule colonne Excel sur laquelle tu pourras trier). Il faut utiliser la fonction Excel conversion de texte en colonne. Dernière précision: le nombre de colonnes reste variable, car le nombre d'adresse destinataire est lui-même variable: Colonne C si 1 seul, C et D si il y en 2 et ainsi de suite. Cordialement -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
|
26 Oct 2022, 14:57
Message
#23
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Merci pour tes précieuses réponses.
J'arrive donc à afficher un .csv avec les colonnes bien comme il faut, par contre, je ne trouve pas l'option dans Excel permettant de convertir le texte en colonne ? Ce message a été modifié par davdenice - 26 Oct 2022, 14:58.
Fichier(s) joint(s)
-------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
26 Oct 2022, 15:23
Message
#24
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Modérateurs Messages : 20 161 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
Si je ne me trompe, une fois le document ouvert, tu peux procéder ainsi, en choisissant Tab comme séparateur :
• https://support.microsoft.com/fr-fr/office/...ca-7a3e9c363ed7 -------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
|
26 Oct 2022, 17:26
Message
#25
|
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 268 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
Merci Baron !
J'ajoute que, une fois le dialogue de conversion Excel ouvert, en général les options sont pré-sélectionnées par défaut: délimité, tabulation comme séparateur, colonnes sélectionnées (A:A dans notre cas) et colonnes de sortie (A à xx). Cela permet d'utiliser la fonction et de tout valider avec simplement 3 return. Si tu as une ancienne version d'Excel (2011), la conversion est dans le menu Données. Cordialement -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
|
26 Oct 2022, 17:28
Message
#26
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Merci pour votre aide à tous.
Cependant j'ai utilisé Numbers pour convertir le .csv en format Numbers. -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
26 Oct 2022, 17:50
Message
#27
|
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 268 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
Une idée, juste comme ça, pourquoi ne pas supprimer l'écriture en csv et mettre directement les données dans une feuille Excel ??!
Tu supprimes dans le script tout ce qui est après la ligne qui enregistre en csv: CODE if monTexte is "" then return -- rien à enregistrer et tu remplaces par les lignes ci-dessous qui ouvrent Excel, créent un fichier Excel avec le résultat directement dans les colonnes !! CODE set the clipboard to monTexte tell application "Microsoft Excel" set monDoc to make new workbook -- create new workbook tell active sheet of monDoc to paste special range "A1" end tell Désolé, je n'y avais pas pensé plus tôt -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
|
26 Oct 2022, 19:57
Message
#28
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Une idée, juste comme ça, pourquoi ne pas supprimer l'écriture en csv et mettre directement les données dans une feuille Excel ??! Tu supprimes dans le script tout ce qui est après la ligne qui enregistre en csv: Code if monTexte is "" then return -- rien à enregistrer et tu remplaces par les lignes ci-dessous qui ouvrent Excel, créent un fichier Excel avec le résultat directement dans les colonnes !! Code set the clipboard to monTexte tell application "Microsoft Excel" set monDoc to make new workbook -- create new workbook tell active sheet of monDoc to paste special range "A1" end tell Désolé, je n'y avais pas pensé plus tôt Bonsoir, et merci pour ta contribution J'ai ajouté ton morceau de code, ce qui donne : Code set MDate to (current date) - days * 1095 -- défini hier comme date de recherche set AppleScript's text item delimiters to tab -- défini le séparateur des adresses set heurelimite to 20 -- défini l'heure à partir de laquelle il faut lister set monTexte to "" tell application "Mail" set maListe to (every message in sent mailbox whose date sent > MDate) repeat with unMessage in maListe set maDate to date sent of unMessage if hours of maDate ≥ 20 then set mesDestinataires to (address of recipients of unMessage) as rich text set monTexte to monTexte & tab & maDate & tab & subject of unMessage & tab & mesDestinataires & tab & return end if end repeat end tell if monTexte is "" then return -- rien à enregistrer set the clipboard to monTexte tell application "Microsoft Excel" set monDoc to make new workbook -- create new workbook tell active sheet of monDoc to paste special range "A1" end tell Ca ouvre bien une feuille Excel, mais elle est vierge -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
27 Oct 2022, 08:45
Message
#29
|
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 268 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
Curieux, cela fonctionne parfaitement chez moi, et je pense que c'est sans doute du à ta version Excel qui est différente.
J'ai une veille version (version 2011, 14.0.0). Il se peut qu'une version plus récente ne gère pas correctement ou différemment la fonction "paste" = coller. Quelle version Excel as tu ? Peux tu vérifier d'abord que ton clipboard contient bien ce qui doit être collé. Pour ce faire, lance le script et, une fois la feuille Excel ouverte, sélectionne la cellule A1 de la feuille et tape Cmd V (coller) sur le clavier. Cela devrait ajouter dans la feuille Excel la liste des emails. Si c'est le cas, c'est que le clipboard est bien assigné et que ce n'est que le paste qui ne fonctionne pas. Donne moi ta version d'Excel et je chercherai sur le net si Microsoft a changé quelque chose. Pas d'inquiétude, si c'est Excel, je te donnerai une ligne de script qui simule ce cmd V ! Si cmd V ne fonctionne pas, c'est que la liste n'est pas insérée dans le clipboard. Dans ce cas, je reste très perplexe !! Cordialement PS: il se peut aussi que ta version MacOS + Excel demande que Excel soit activé au premier plan pour faire le paste. On verra en fonction de tes réponses. -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
|
27 Oct 2022, 09:40
Message
#30
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Alors j'utilise la version 16.66.1 d'Excel sous macOS Ventura 13.0.
J'ai activé Stage Manager, je vais voir ce que ça donne une fois désactivé. EDIT : J'ai fait les test avec et sans Stage Manager, ça ne fonctionne pas. Par contre quand je fait +V en case A1 dans la feuille Excel qui s'affiche ça fonctionne, les dates et les données sont bien collées. Je formate ensuite les cellules de la colonne "dates" en " lundi 1 janvier 2022". Par contre je n'arrive pas à faire le tri, il se fait par ordre alphabétique des jours. J'ai également tenté de remplacer "Microsoft Excel" par Numbers, cela ne fonctionne pas, erreur de syntaxe. Ce message a été modifié par davdenice - 27 Oct 2022, 09:54. -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
27 Oct 2022, 09:48
Message
#31
|
|
|
Adepte de Macbidouille ![]() Groupe : Membres Messages : 185 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
Bonjour,
Au vu de toutes tes demandes, j'ai fait un script qui te demande le nombre de jours et l'heure limite, puis qui ouvre "Numbers" qui met le résultat dans une feuille et à la fin qui tri par date Cela pourra te donner des idées pour le faire Tu auras le choix entre excel et numbers... Code display dialog "Nombre de jours pour la recherche ?" default answer "1095"
set MDate to (current date) - days * (text returned of result) -- défini date de recherche display dialog "Début Heure de recherche ?" default answer "20" set heurelimite to text returned of result set monTexte to "" set AppleScript's text item delimiters to {" "} tell application "Numbers" activate set newClasseur to make new document at front tell the first table of the active sheet of document 1 set the value of cell "a1" to "Le jour" set the value of cell "b1" to "La date" set the value of cell "c1" to "Heure envoi" set the value of cell "D1" to "Objet" set the value of cell "e1" to "Le destinataire" end tell end tell set ligne to 2 tell application "Mail" set maListe to (every message in sent mailbox whose date sent > MDate) repeat with unMessage in maListe set maDate to date sent of unMessage if hours of maDate ≥ heurelimite then set heure to hours of maDate set mesDestinataires to (address of recipients of unMessage) as rich text set ladate to (short date string of maDate) set madatetexte to maDate as string set lejour to text item 1 of madatetexte set objet to subject of unMessage tell application "Numbers" activate tell the first table of the active sheet of document 1 set the value of cell ("a" & ligne) to lejour set the value of cell ("b" & ligne) to ladate set the value of cell ("c" & ligne) to heure set the value of cell ("d" & ligne) to objet set the value of cell ("e" & ligne) to mesDestinataires make new row end tell end tell set ligne to ligne + 1 end if end repeat end tell tell application "Numbers" activate tell the first table of the active sheet of document 1 sort by column "b" direction descending --in rows LaSelection end tell end tell tell application "Finder" activate (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"}) end tell -------------------- Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6) Imac 24 M3 2023 Ram 24Go macOS Sequoia 15.7.3 |
|
|
|
27 Oct 2022, 10:52
Message
#32
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Bonjour, Au vu de toutes tes demandes, j'ai fait un script qui te demande le nombre de jours et l'heure limite, puis qui ouvre "Numbers" qui met le résultat dans une feuille et à la fin qui tri par date Cela pourra te donner des idées pour le faire Tu auras le choix entre excel et numbers... Code display dialog "Nombre de jours pour la recherche ?" default answer "1095" set MDate to (current date) - days * (text returned of result) -- défini date de recherche display dialog "Début Heure de recherche ?" default answer "20" set heurelimite to text returned of result set monTexte to "" set AppleScript's text item delimiters to {" "} tell application "Numbers" activate set newClasseur to make new document at front tell the first table of the active sheet of document 1 set the value of cell "a1" to "Le jour" set the value of cell "b1" to "La date" set the value of cell "c1" to "Heure envoi" set the value of cell "D1" to "Objet" set the value of cell "e1" to "Le destinataire" end tell end tell set ligne to 2 tell application "Mail" set maListe to (every message in sent mailbox whose date sent > MDate) repeat with unMessage in maListe set maDate to date sent of unMessage if hours of maDate ≥ heurelimite then set heure to hours of maDate set mesDestinataires to (address of recipients of unMessage) as rich text set ladate to (short date string of maDate) set madatetexte to maDate as string set lejour to text item 1 of madatetexte set objet to subject of unMessage tell application "Numbers" activate tell the first table of the active sheet of document 1 set the value of cell ("a" & ligne) to lejour set the value of cell ("b" & ligne) to ladate set the value of cell ("c" & ligne) to heure set the value of cell ("d" & ligne) to objet set the value of cell ("e" & ligne) to mesDestinataires make new row end tell end tell set ligne to ligne + 1 end if end repeat end tell tell application "Numbers" activate tell the first table of the active sheet of document 1 sort by column "b" direction descending --in rows LaSelection end tell end tell tell application "Finder" activate (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"}) end tell Oh ! Merci ! c'est géant ce que tu as réalisé Merci beaucoup pour ton aide !!! J'essaie d'obtenir l'affichage des minutes en plus des heures, mais je ne connais pas la formule. J'ai essayé de remplacer hours par time mais ce n'est pas ça. J'ai donc intercalé après les heures une colonne "minutes" pour palier au problème. -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
27 Oct 2022, 11:26
Message
#33
|
|
|
Adepte de Macbidouille ![]() Groupe : Membres Messages : 185 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
Ok pour l'affichage heure minute seconde voilà le script modifié:
Code display dialog "Nombre de jours pour la recherche ?" default answer "1095"
set MDate to (current date) - days * (text returned of result) -- défini hier comme date de recherche display dialog "Début Heure de recherche ?" default answer "20" set heurelimite to text returned of result set monTexte to "" set AppleScript's text item delimiters to {" "} tell application "Numbers" activate set newClasseur to make new document at front tell the first table of the active sheet of document 1 set the value of cell "a1" to "Le jour" set the value of cell "b1" to "La date" set the value of cell "c1" to "Heure envoi" set the value of cell "D1" to "Objet" set the value of cell "e1" to "Le destinataire" end tell end tell set ligne to 2 tell application "Mail" set maListe to (every message in sent mailbox whose date sent > MDate) repeat with unMessage in maListe set maDate to date sent of unMessage if hours of maDate ≥ heurelimite then set mesDestinataires to (address of recipients of unMessage) as rich text set Ladate to (short date string of maDate) set madatetexte to maDate as string set heure to last text item of madatetexte set lejour to text item 1 of madatetexte set objet to subject of unMessage tell application "Numbers" activate tell the first table of the active sheet of document 1 set the value of cell ("a" & ligne) to lejour set the value of cell ("b" & ligne) to Ladate set the value of cell ("c" & ligne) to heure set the value of cell ("d" & ligne) to objet set the value of cell ("e" & ligne) to mesDestinataires make new row end tell end tell set ligne to ligne + 1 end if end repeat end tell tell application "Numbers" activate tell the first table of the active sheet of document 1 sort by column "b" direction descending --in rows LaSelection end tell end tell tell application "Finder" activate (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"}) end tell -------------------- Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6) Imac 24 M3 2023 Ram 24Go macOS Sequoia 15.7.3 |
|
|
|
27 Oct 2022, 12:31
Message
#34
|
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 268 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
Merci pour la version Excel.
J'ai effectivement cherché sur le net et j'ai trouvé quelques sites indiquant que la commande "Paste Special" ne fonctionnait plus depuis Excel 2016. (voir ici Excel 2016 - Applescript broken) Je doute que Microsoft ne corrige cela un jour, donc, la porte étant fermée, nous allons passer par la fenêtre Pour ce faire, nous allons simuler la frappe clavier cmd v sur l'application Excel, comme si tu utilisais ces touches sur ton clavier. L’inconvénient de cette méthode (pour les puristes, c'est du GUI scripting) est que tu ne dois pas interférer avant la fin du script, donc pas toucher le clavier. Voici la nouvelle partie du script qui remplace les lignes situées après "Set the clipboard to monTexte": CODE tell application "Microsoft Excel" set monDoc to make new workbook -- create new workbook tell active sheet of monDoc activate select range "A1" end tell end tell tell application "System Events" to tell application process "Microsoft Excel" to keystroke "v" using command down Cela devrait, cette fois, passer outre le bug Excel. Quant à la question du tri, en principe les dates dans Excel peuvent être triées selon leurs valeurs et pas leur format d'affichage. Cependant, c'est peut être une subtilité de la version 2016 sur Mac (pas sur Windows !).... Il est aussi possible que les dates, dans tes préférences Mac ou Excel, soient au format mm/jj/aaaa (mois/jour/année) alors que Applescript te donne un format jj/mm/aaaa (inversion jour et mois - valide pour le format français). Je sais que le Canada préconise un format différent (aaaa/mm/jj) justement pour éviter les confusion entre jj/mm/aaaa et mm/jj/aaaa Il faut que tu vérifie tes préférences de gestion de dates (Apple Système Préférences et Excel). Enfin, dernière hypothèse, c'est que ta conversion de date convertisse les dates en string dans Excel. Je n'ai jamais eu ce cas malgré des années sur Excel, mais....!!? Donc je te suggère de faire d'abord le tri, puis la conversion de format de dd/mm/aaaa en format string. Cordialement PS: Je peux aussi essayer de compléter le script pour faire le tri par date dans Excel...ascendant ou descendant ? -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
|
27 Oct 2022, 13:02
Message
#35
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Je ne sais quoi dire à part merci beaucoup pour toute cette aide 👍
Si possible dans l’ordre croissant ? Mais perso si c’est possible d’utiliser Numbers je préfère, mais sinon c’est pas grave on reste sur Excel. J’ai tenté de remplacer l’application « Mail » par Outlook ou Microsoft Outlook mais cela ne fonctionne pas. -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
27 Oct 2022, 13:45
Message
#36
|
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 268 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
Pour le tri Excel, il semble que ici encore, Microsoft n'ai pas été très bon sur le dictionnaire Applescript...Il y a bien des objets "sort" et une fonction "add sortfield" mais qui ne semble pas fonctionner correctement... donc impasse !
Si tu préfère Numbers, désolé, je n'utilise que Excel. Mais Zeltron a fourni aujourd'hui une version avec Numbers. Quant au changement de Mail par Outlook, c'est la première partie du script. Il faut savoir que chaque application dispose de son propre dictionnaire de commandes scriptables: les commandes Mail sont très différentes de celles de Outlook. En conséquence, il ne suffit pas de changer "Mail" par "Outlook", il faut ré-écrire les instructions qui permettent de récupérer et filtrer les emails en utilisant le dictionnaire Outlook. Cordialement -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
|
27 Oct 2022, 14:08
Message
#37
|
|
|
Adepte de Macbidouille ![]() Groupe : Membres Messages : 185 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
Je t'ai réécris le script, en évitant de l'écrire ligne par ligne, mais en créant (comme PBell) un fichier "emails_envoyés.txt" sur le breau, puis en l'important dans numbers et le trier par date du plus récent au plus ancien si tu veux le contraire il faut remplacer "descending" par "ascending".
Ce script sera plus rapide. Tu auras le fichier texte sur le bureau et une page dans numbers. Code display dialog "Nombre de jours pour la recherche ?" default answer "1095"
set MDate to (current date) - days * (text returned of result) -- défini hier comme date de recherche display dialog "Début Heure de recherche ?" default answer "20" set heurelimite to text returned of result set monTexte to "" set AppleScript's text item delimiters to {" "} tell application "Mail" set maListe to (every message in sent mailbox whose date sent > MDate) repeat with unMessage in maListe set maDate to date sent of unMessage if hours of maDate ≥ heurelimite then set mesDestinataires to (address of recipients of unMessage) as rich text set Ladate to (short date string of maDate) set madatetexte to maDate as string set heure to last text item of madatetexte set lejour to text item 1 of madatetexte set objet to subject of unMessage set monTexte to monTexte & lejour & tab & Ladate & tab & heure & tab & objet & tab & mesDestinataires & tab & return end if end repeat end tell set Fichier_Log to (((path to desktop) as text) & "emails_envoyés.txt") try do shell script "touch " & (quoted form of (POSIX path of Fichier_Log)) do shell script "echo " & (quoted form of monTexte) & " >> " & (quoted form of (POSIX path of Fichier_Log)) end try set chemin to (path to desktop folder as text) & "emails_envoyés.txt" as alias tell application "Numbers" activate open chemin tell the first table of the active sheet of document 1 set format of column "B" to date and time sort by column "b" direction descending --in rows LaSelection end tell end tell tell application "Finder" activate (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"}) end tell Ce message a été modifié par Zeltron54 - 27 Oct 2022, 14:32. -------------------- Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6) Imac 24 M3 2023 Ram 24Go macOS Sequoia 15.7.3 |
|
|
|
27 Oct 2022, 15:56
Message
#38
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Pour le tri Excel, il semble que ici encore, Microsoft n'ai pas été très bon sur le dictionnaire Applescript...Il y a bien des objets "sort" et une fonction "add sortfield" mais qui ne semble pas fonctionner correctement... donc impasse ! Si tu préfère Numbers, désolé, je n'utilise que Excel. Mais Zeltron a fourni aujourd'hui une version avec Numbers. Quant au changement de Mail par Outlook, c'est la première partie du script. Il faut savoir que chaque application dispose de son propre dictionnaire de commandes scriptables: les commandes Mail sont très différentes de celles de Outlook. En conséquence, il ne suffit pas de changer "Mail" par "Outlook", il faut ré-écrire les instructions qui permettent de récupérer et filtrer les emails en utilisant le dictionnaire Outlook. Cordialement Merci beaucoup pour tes précieuses précisions. -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
27 Oct 2022, 16:33
Message
#39
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Je t'ai réécris le script, en évitant de l'écrire ligne par ligne, mais en créant (comme PBell) un fichier "emails_envoyés.txt" sur le breau, puis en l'important dans numbers et le trier par date du plus récent au plus ancien si tu veux le contraire il faut remplacer "descending" par "ascending". Ce script sera plus rapide. Tu auras le fichier texte sur le bureau et une page dans numbers. Code display dialog "Nombre de jours pour la recherche ?" default answer "1095" set MDate to (current date) - days * (text returned of result) -- défini hier comme date de recherche display dialog "Début Heure de recherche ?" default answer "20" set heurelimite to text returned of result set monTexte to "" set AppleScript's text item delimiters to {" "} tell application "Mail" set maListe to (every message in sent mailbox whose date sent > MDate) repeat with unMessage in maListe set maDate to date sent of unMessage if hours of maDate ≥ heurelimite then set mesDestinataires to (address of recipients of unMessage) as rich text set Ladate to (short date string of maDate) set madatetexte to maDate as string set heure to last text item of madatetexte set lejour to text item 1 of madatetexte set objet to subject of unMessage set monTexte to monTexte & lejour & tab & Ladate & tab & heure & tab & objet & tab & mesDestinataires & tab & return end if end repeat end tell set Fichier_Log to (((path to desktop) as text) & "emails_envoyés.txt") try do shell script "touch " & (quoted form of (POSIX path of Fichier_Log)) do shell script "echo " & (quoted form of monTexte) & " >> " & (quoted form of (POSIX path of Fichier_Log)) end try set chemin to (path to desktop folder as text) & "emails_envoyés.txt" as alias tell application "Numbers" activate open chemin tell the first table of the active sheet of document 1 set format of column "B" to date and time sort by column "b" direction descending --in rows LaSelection end tell end tell tell application "Finder" activate (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"}) end tell Merci beaucoup pour ce script ! c'est top ! Là je télécharge 15 Go de mails, heureusement que j'ai la fibre, et hâte de tester tout ça ! -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
27 Oct 2022, 17:39
Message
#40
|
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 268 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
@ Zeltron,
Juste une dernière précision pour la gestion de l'heure: tu peux utiliser la fonction "time string", équivalente pour le temps à la fonction "short date string" pour la date. Ainsi l'instruction: CODE set monTexte to monTexte & (short date string of maDate) & tab & (time string of maDate) & tab & subject of unMessage & tab & mesDestinataires & return te donnera directement la date jj/mm/aaaa en colonne A, et hh:mm:ss en colonne B avec une vraie valeur de temps dans Excel (et je suppose dans Numbers). C'est le cas avec la fonction copié/collé, et cela devrait aussi fonctionner avec le fichier txt. Si, de plus, tu supprimes le caractère tab entre la date et le temps, le tout sera collé dans Excel sous un véritable format de date/time complet,...donc plus simple pour le tri que des colonnes dates et temps séparées. Cordialement Ce message a été modifié par PBell - 27 Oct 2022, 17:42. -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
|
27 Oct 2022, 19:52
Message
#41
|
|
|
Adepte de Macbidouille ![]() Groupe : Membres Messages : 185 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
@ PBell
Merci pour l'info "time string" je ne connaissais pas ! Mais bon, à l'importation dans numbers du fichier texte je formate la colonne B en date, puis je tri sur la date ! Le "time" est en colonne C et reste au format texte! Il me semble qu'il avait demandé de mettre les heures et minute dans une colonne séparée. En le faisant ligne par ligne numbers le reconnaissait comme date mes le traitement était beaucoup trop long... S'il a besoin de changer il fera la demande ! Encore merci pour toutes ces infos ! Bonne soirée. Ce message a été modifié par Zeltron54 - 27 Oct 2022, 19:55. -------------------- Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6) Imac 24 M3 2023 Ram 24Go macOS Sequoia 15.7.3 |
|
|
|
27 Oct 2022, 20:00
Message
#42
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Une dernière question :
si je veux afficher non seulement les messages envoyés mais également ceux reçus, je dois modifier quoi dans le code ? J'ai essayé mailbox tout court, all mailbox, en remplacement de sent mailbox, mais j'ai des messages d'erreur. -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
27 Oct 2022, 20:57
Message
#43
|
|
|
Adepte de Macbidouille ![]() Groupe : Membres Messages : 185 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
Bonsoir,
J'ai ajouter dans le code l'affichage dans le fichier numbers d'une ligne de titre ! le nouveau code: Code display dialog "Nombre de jours pour la recherche ?" default answer "1095" set MDate to (current date) - days * (text returned of result) -- défini hier comme date de recherche display dialog "Début Heure de recherche ?" default answer "20" set heurelimite to text returned of result set monTexte to "Le jour" & tab & "La date" & tab & "Heure d'envoi" & tab & "Objet " & tab & " Le destinataire" & return set AppleScript's text item delimiters to {" "} tell application "Mail" set maListe to (every message in sent mailbox whose date sent > MDate) repeat with unMessage in maListe set maDate to date sent of unMessage if hours of maDate ≥ heurelimite then set mesDestinataires to (address of recipients of unMessage) as rich text set Ladate to (short date string of maDate) set madatetexte to maDate as string set heure to last text item of madatetexte set lejour to text item 1 of madatetexte set objet to subject of unMessage set monTexte to monTexte & lejour & tab & Ladate & tab & heure & tab & objet & tab & mesDestinataires & tab & return end if end repeat end tell set Fichier_Log to (((path to desktop) as text) & "emails_envoyés.txt") try do shell script "touch " & (quoted form of (POSIX path of Fichier_Log)) do shell script "echo " & (quoted form of monTexte) & " >> " & (quoted form of (POSIX path of Fichier_Log)) end try set chemin to (path to desktop folder as text) & "emails_envoyés.txt" as alias tell application "Numbers" activate open chemin tell the first table of the active sheet of document 1 set format of column "B" to date and time sort by column "b" direction descending --remplacer decending par ascending pour tri inverse end tell end tell tell application "Finder" activate (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"}) end tell Pour faire la même chose sur la boite de réception le code devient: Code display dialog "Nombre de jours pour la recherche ?" default answer "1095" set MDate to (current date) - days * (text returned of result) -- défini hier comme date de recherche display dialog "Début Heure de recherche ?" default answer "20" set heurelimite to text returned of result set monTexte to "Le jour" & tab & "La date" & tab & "Heure de réception" & tab & "Objet " & tab & "Expéditeur" & return set AppleScript's text item delimiters to {" "} tell application "Mail" set maListe to (every message in inbox whose date received > MDate) repeat with unMessage in maListe set maDate to date received of unMessage if hours of maDate ≥ heurelimite then set mesDestinataires to (sender of unMessage) as rich text set Ladate to (short date string of maDate) set madatetexte to maDate as string set heure to last text item of madatetexte set lejour to text item 1 of madatetexte set objet to subject of unMessage set monTexte to monTexte & lejour & tab & Ladate & tab & heure & tab & objet & tab & mesDestinataires & tab & return end if end repeat end tell set Fichier_Log to (((path to desktop) as text) & "emails_recus.txt") try do shell script "touch " & (quoted form of (POSIX path of Fichier_Log)) do shell script "echo " & (quoted form of monTexte) & " >> " & (quoted form of (POSIX path of Fichier_Log)) end try set chemin to (path to desktop folder as text) & "emails_recus.txt" as alias tell application "Numbers" activate open chemin tell the first table of the active sheet of document 1 set format of column "B" to date and time sort by column "b" direction descending --remplacer decending par ascending pour tri inverse end tell end tell tell application "Finder" activate (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"}) end tell Dis moi si cela fonctionne comme tu veux ! Ce message a été modifié par Zeltron54 - 27 Oct 2022, 20:58. -------------------- Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6) Imac 24 M3 2023 Ram 24Go macOS Sequoia 15.7.3 |
|
|
|
31 Oct 2022, 18:32
Message
#44
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Hello,
Pour le script qui affiche les messages de la boite de réception, j'ai un message d'erreur : Code error "Erreur dans Mail : Délai dépassé pour un AppleEvent." number -1712
-------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
31 Oct 2022, 18:40
Message
#45
|
|
|
Adepte de Macbidouille ![]() Groupe : Membres Messages : 185 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
Je ne vois pas !
Je viens de retester chez moi, pas de message d'erreur ! -------------------- Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6) Imac 24 M3 2023 Ram 24Go macOS Sequoia 15.7.3 |
|
|
|
31 Oct 2022, 20:00
Message
#46
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Merci pour tes tests.
J'ai essayé avec 4000 jours et 5000 jours, j'ai un message d'erreur, mais bon c est pas grave. Serait-il possible d'avoir un script qui me sorte une feuille number incluant tous les mails reçus et envoyés par Mail depuis le 01/04/2010 ? Avec une colonne indiquant expéditeur et une colonne indiquant destinataire ? Je n'arrive pas à fusionner tes 2 scripts pour en faire 1 seul : je colle donc le premier tableau dans le second , mais je suis obligé de colorier le texte des mail expédiés en rouge pour les différencier. -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
31 Oct 2022, 20:43
Message
#47
|
|
|
Adepte de Macbidouille ![]() Groupe : Membres Messages : 185 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
Pour le message d'erreur,
Lorsque le script à terminé il met une boite de dialogue avec ""waouou ... Ca y est c'est fait !". Il faut que tu fermes ce dialogue dans les 2 minutes sinon une erreur est générée car le temps d'attente est trop long. (cela ne change en rien le résultat) Pour réunir les sortie des messages envoyés et des messages reçus, Après l'exécution des 2 scripts tu as donc une fenêtre numbers avec les messages envoyés et une fenêtre avec les messages reçus. Il devrait suffire de mettre les messages envoyés dans la même fenêtre que les messages reçu et ça dans une deuxième feuille. Une feuille pour les envoyés et une feuille pour les reçus. Pour faire cela cliquer sur l'onglet de la feuille --> copier la feuille,.... aller sur l'autre fenêtre, un clic sur l'onglet de la feuille--> coller la feuille, une deuxième feuille est créée automatiquement. Tu auras tout dans le même document... EDIT: n'oublies pas de supprimer les fichiers texte qui sont sur le bureau, avant une deuxième utilisation des scripts ! EDIT 2 : pour éviter le message d'erreur créé par le temps d'attente trop long de la fenêtre de fin du travail, tu remplaces la ligne : Code (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"}) par : Code display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"} giving up after 120 Qui ferme le dialogue après 2 minutes. Ce message a été modifié par Zeltron54 - 1 Nov 2022, 11:19. -------------------- Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6) Imac 24 M3 2023 Ram 24Go macOS Sequoia 15.7.3 |
|
|
|
2 Nov 2022, 18:51
Message
#48
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Bonjour,
J'arrive à récupérer une feuille Numbers contenant des emails envoyés. Est-ce possible d'écrire un script qui filtre cette feuille Numbers en fonction de certains termes ? Par exemple, dans le script j'écris "coco@<spam>" et ça supprime la ligne où "coco@<spam>" figure ? Merci. Sinon, j'ai un problème : j'ai importé dans mail la boîte mail de 15 go dont je désirais extraire les emails envoyés. Or, depuis que j'ai ajouté ce nouveau compte dans mail, plus aucun script ne fonctionne, j'ai toujours des messages d'erreur Même les tous premiers scripts que vous m'avez généreusement offert ne renvoient des messages d'erreur Est-ce du à un volume trop important de données à traiter ? Merci pour votre aide. Le message qui s'affiche avec tous vos scripts est : "Délai dépassé pour un Apple Event" Le problème viendrait de Mail qui ne peut pas gérer trop d'e-mails ? J'ai aussi la suite Office sur mon Mac, pensez-vous qu'utiliser un script qui interroge Outlook et qui renvoie une réponse sous forme de feuille Excel sera plus fiable ? Ce message a été modifié par davdenice - 2 Nov 2022, 19:46.
Fichier(s) joint(s)
-------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
2 Nov 2022, 20:23
Message
#49
|
|
|
Adepte de Macbidouille ![]() Groupe : Membres Messages : 185 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
Citation Est-ce possible d'écrire un script qui filtre cette feuille Numbers en fonction de certains termes ? Par exemple, dans le script j'écris "coco@<spam>" et ça supprime la ligne où "coco@<spam>" figure ? Il serait plus simple de saisir le terme à filtrer dans le script de recherche des mails pour ne pas les inclure dans le texte de sortie et donc de la feuille numbers. Pour ton message d'erreur, rien à voir avec le nombre de mails, la recherche se faisant sur la boite du compte par défaut, je suppose que le script cherche une boite d'envoi "sent mailbox" sans la trouver et fini par te mettre ce message. -------------------- Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6) Imac 24 M3 2023 Ram 24Go macOS Sequoia 15.7.3 |
|
|
|
3 Nov 2022, 00:58
Message
#50
|
|
![]() Adepte de Macbidouille ![]() Groupe : Membres Messages : 130 Inscrit : 21 Jan 2007 Membre no 78 760 |
Citation Est-ce possible d'écrire un script qui filtre cette feuille Numbers en fonction de certains termes ? Par exemple, dans le script j'écris "coco@<spam>" et ça supprime la ligne où "coco@<spam>" figure ? Il serait plus simple de saisir le terme à filtrer dans le script de recherche des mails pour ne pas les inclure dans le texte de sortie et donc de la feuille numbers. Pour ton message d'erreur, rien à voir avec le nombre de mails, la recherche se faisant sur la boite du compte par défaut, je suppose que le script cherche une boite d'envoi "sent mailbox" sans la trouver et fini par te mettre ce message. Ok, c'est bon, j'ai fait une recherche boite d'envoi par boite d'envoi, je devais les spécifier sinon le script ne trouvait rien. Merci beaucoup. -------------------- Ancien matériel possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.
Actuellement toujours chez : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB. |
|
|
|
3 Nov 2022, 07:51
Message
#51
|
|
|
Adepte de Macbidouille ![]() Groupe : Membres Messages : 185 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
Bonjour,
Ok pour l'erreur ! Pour les filtres, dis moi si il faut inclure dans le script, sinon tu as la possibilité dans Numbers de filtrer ... sélectionner la colonne "Le Destinataire" puis En haut à droite --> organiser, -->Filtrer --> ajouter un filtre --> "le destinataire" --> Texte --> ne contient pas --> tu entres ton texte à filtrer... Ce message a été modifié par Zeltron54 - 3 Nov 2022, 14:21. -------------------- Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6) Imac 24 M3 2023 Ram 24Go macOS Sequoia 15.7.3 |
|
|
|
![]() ![]() |
| Nous sommes le : 14th December 2025 - 03:24 |