Envoi mail VBA Excel

Vincent11000

Nouveau membre
17 Août 2015
4
0
33
Hello,

Je suis en train de faire une macro excel qui me génère un fichier txt avec le contenu de certaines colonnes d'une feuille excel.

J'aimerai que une fois ce fichier généré, il soit envoyé par mail ou uploadé sur un serveur distant.

J'imagine que Excel mac ne va pas communiquer avec Mail, et donc du coup je me demandais si une macro VBA pouvait appeler un script applescript qui pourrait faire tout cela de manière quasi transparente du coup.

Merci pour votre aide.
 

JacqR

Membre confirmé
9 Octobre 2014
113
16
Bonjour,

Vous pouvez utilisé a commande MacScript() pour exécuter un script AppleScript.

Voici un exemple très simple qui crée un outgoing message vide dans Mail.
Bloc de code:
    Dim aScript As String
    aScript = "tell application ""Mail""" & vbCr & "set x to make new outgoing message" & vbCr & "end tell"
    retval = MacScript(aScript)
 

zeltron54

Membre d’élite
29 Mars 2008
1 754
262
Lorraine

Vincent11000

Nouveau membre
17 Août 2015
4
0
33
Je regarde mais du coup le problème c'est que ça oblige l'utilisateur à avoir paramétrer mail...
Je suis en train de me dire que un transfert FTP serait idéal et plus transparent.
Je vois comment faire un transfert FTP via le terminal, mais du coup dans l'idée je pensais faire un applescript qui fait ça, et qui se lance via la macro VBA. C'est faisable concrètement de faire un appel à un script applescript via une macro va excel?
 

zeltron54

Membre d’élite
29 Mars 2008
1 754
262
Lorraine
JacqR t'as donné la solution juste au dessus !

Il faut mettre le script applescript dans une variable et passer la commande Macscript (lavariable)

Pense à fouiller sur le site de Rondebruin ! !
 

Vincent11000

Nouveau membre
17 Août 2015
4
0
33
Oups pardon j'avais pas vu!
Bon je vais réfléchir à ça!
Par contre, mais je pense que c'est plus de l'applescript, c'est possible de tout gérer en tache de fond? C'est dire sans que la fenêtre de mail s'ouvre, que ce soit totalement transparent pour l'utilisateur?
 

Vincent11000

Nouveau membre
17 Août 2015
4
0
33
Re!

J'ai défini ma fonction comme ceci


Bloc de code:
aScript = "tell application ""Terminal""" & vbCr & "activate" & vbCr & "delay 1" & vbCr & "end tell"
retval = MacScript(aScript)
Mais je voudrai copier dans le terminal le contenu d'une variable définie dans ma macro (défini en STRING).

Est-ce possible?

J'ai essayé en mettant

Bloc de code:
Call AffichageTerminal(m)
et plus loin

Bloc de code:
Sub AffichageTerminal(m As String)
Dim scriptToRun As String
scriptToRun = "display alert" & """m"""
MacScript (scriptToRun)
End Sub
mais je me retrouve avec une fenêtre alerte avec un joli m à l'intérieur, et non pas le contenu de la variable m!
 
Dernière édition:

zeltron54

Membre d’élite
29 Mars 2008
1 754
262
Lorraine
Tu as des problème de Guillemets ...
Pour reprendre ton script:

Sub Macro1()
m = "essai"
Call AffichageTerminal(m)
End Sub

Sub AffichageTerminal(m)
Dim scriptToRun As String
Gu = Chr$(34)
scriptToRun = "display alert" & Gu & m & Gu
MacScript (scriptToRun)
End Sub
 

PETITBENJAMIN

Nouveau membre
8 Mai 2020
4
0
36
Bonjour Zeltron 54,

J’ai utilisé le code de JacqR pour ouvrir une page mail et cela fonctionne très bien

par contre je ne trouve pas la solution pour remplir le mail automatiquement (adresse, objet et corps de mail)

‘saurais-tu me dire le bout de code à ajouter stp ?

merci pour ton aide

Benjamin
 

zeltron54

Membre d’élite
29 Mars 2008
1 754
262
Lorraine
Pour envoi de mail à l'aide d"une macro VBAva voir le site de Ron de Bruin :http://www.rondebruin.nl/mac/mail.htm

Tu trouveras en fonction de ton OS
Exemple récupéré sur ce site:

MacExcelWithMacMailCatalinaAndUp subject:="This is a test macro", _
mailbody:=strbody, _
toaddress:="ron@debruin.nl", _
ccaddress:="", _
bccaddress:="", _
displaymail:="yes", _
attachment:=TempFileName, _
thesignature:="", _
thesender:="", _
FileFormat:=Sourcewb.FileFormat
 

PETITBENJAMIN

Nouveau membre
8 Mai 2020
4
0
36
merci Zeltron, je vais essayer mais il me semble que lorsque je copie ce bout de code après le code de jacq j'ai un message d'erreur
 

zeltron54

Membre d’élite
29 Mars 2008
1 754
262
Lorraine
Ce code n'est pas à copié tel quel, il faut l'adapter à ton besoin,.
Il défini seulement le nom des variables à renseigner suivant ton besoin.

Lire les explications sur le site....
 

PETITBENJAMIN

Nouveau membre
8 Mai 2020
4
0
36
Ce code n'est pas à copié tel quel, il faut l'adapter à ton besoin,.
Il défini seulement le nom des variables à renseigner suivant ton besoin.

Lire les explications sur le site....
Je l’avais bien adapté mais une faute de frappe me mettait en erreur

encore merci

à bientôt