Envoi mail VBA Excel

Vincent11000

Membre enregistré
17 Août 2015
4
0
37
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.
 
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)
 
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?
 
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 ! !
 
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?
 
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:
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
 
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
 
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:="[email protected]", _
ccaddress:="", _
bccaddress:="", _
displaymail:="yes", _
attachment:=TempFileName, _
thesignature:="", _
thesender:="", _
FileFormat:=Sourcewb.FileFormat
 
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

une erreur de compilation
 
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....