Envoyer un mail depuis excel - Sendkeys ne fonctionne pas.

mitch18 Messages postés 1 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 8 mars 2005 - 8 mars 2005 à 14:16
cs_Benur Messages postés 2 Date d'inscription lundi 31 mai 2004 Statut Membre Dernière intervention 3 décembre 2005 - 3 déc. 2005 à 12:21
Bonjour à tous.

Je suis programmeur occasionel , j'ai découvert vb sous excel il y a 2 mois.

J'ai passé presque la journée hier sur ce forum à essayer tout un tas de codes
me permettant d'envoyer un message mail excel avec un autre classeur en
pièce jointe.
Voici où j'en suis :
J'utilise un code pompé ici hier à base de shell qui appelle outlook express.
çà fonctionne, le message "de base" se crée (destinataire, objet, corps).

Shell "C:\Program Files\Outlook Express\msimn.exe " & _
"/mailurl:mailto:" & destinataire & _
"?subject=" & objet & _
"&Body=" & message, vbMaximizedFocus

Je pensais que la fonction sendkeys me permettrait d'envoyer les instructions
nécessaires à outlook express pour finaliser (en fait insérer la pièce jointe et
envoyer)

SendKeys "%I{ENTER}", False 'pour insérer fichier
SendKeys file, False' Pour indiquer le nom du fichier à joindre
SendKeys "%F{DOWN}{ENTER}", False' Pour faire envoyer maintenant

Que nenni !

Le message outlook se crée et basta, la main reste dessus, elle ne revient pas
à mon application excel.

Où me suis-je trompé nom de ........?

Un grand merci à tous ceux qui auront la bonté de m'aider.....

@+ Mitch

3 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
8 mars 2005 à 20:56
Salut,

Il y a une autre méthode.

1 - Tu crées une userform (userform1 pour l'ex)

2 - Dans le menu "Outils/Contrôles supplémentaires" tu ajoutes :
Microsoft MAPI Messages Control
et
Microsoft MAPI Session Control

3 - Tu poses 1 controle MAPISession et i controle MAPIMessages sur ta userform

4 - Tu crées une macro (macro1) :

Private Sub Macro1()
UserForm1.MAPISession1.SignOn


UserForm1.MAPIMessages1.SessionID = UserForm1.MAPISession1.SessionID

UserForm1.MAPIMessages1.Compose

' Adresse destinataire
UserForm1.MAPIMessages1.RecipAddress = [mailto:destinataire@truc.machin destinataire@truc.machin]
'sujet du message
UserForm1.MAPIMessages1.MsgSubject = "COUCOU"
'contenu du mail
UserForm1.MAPIMessages1.MsgNoteText = "Bonne réception"
'pièces jointes
UserForm1.MAPIMessages1.AttachmentPathName = "c:\temp\truc.xls"

UserForm1.MAPIMessages1.Send True

UserForm1.MAPISession1.SignOff


End Sub

Tu exécutes la macro et ça devrait le faire.

Loup Gris
0
cs_Benur Messages postés 2 Date d'inscription lundi 31 mai 2004 Statut Membre Dernière intervention 3 décembre 2005
3 déc. 2005 à 12:18
Bonjour,
C'est dans le menu d'excel que tu trouves :"Outils/Contrôles supplémentaires" ?
Car chez moi j'ai pas !! Par contre est ce que ça marche avec OUtLOOK ?

Merci de ta réponse. Slts
0
cs_Benur Messages postés 2 Date d'inscription lundi 31 mai 2004 Statut Membre Dernière intervention 3 décembre 2005
3 déc. 2005 à 12:21
Bonjour,
C'est dans le menu d'excel que tu trouves :"Outils/Contrôles supplémentaires" ?
Car chez moi j'ai pas !! Par contre est ce que ça marche avec OUtLOOK ?

Merci de ta réponse. Slts
0
Rejoignez-nous