code vba "envoyer recevoir" outlook

andrekn13

XLDnaute Occasionnel
Je cherche à trouver une solution pour , qu'une fois mon mail soit envoyé à partir de mon code excel vba, Outlook se réactive pour faire l'envoi réellement. Car il se loge dans " à envoyer", et Outlook se ferme. je dois donc le réouvrir "manuellement" pour procéder à l' envoi.
j'ai essayé pleins de paramètres dans Outlook, comme "hors connexion" toutes les minutes, mais je pense que lorsqu'il est fermé, rien n'y fait.

Dim X As String
Dim Y As String
Dim Z As String
Dim nomUtilisateur As String
Dim CheminDuFichier As String

X = Range("E45").Value
Y = Range("E11").Value
Z = Range("H17").Value
CheminDuFichier = Z & " - " & Y & " - " & X & " € " & ".pdf"

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\" & Environ("username") & "\Desktop\" & CheminDuFichier, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False

Set olApp = CreateObject("Outlook.application")
Set M = olApp.CreateItem(ol_MailItem)
With M
M.To = Range("E19").Value 'le destinataire
M.Subject = " facture"
M.Body = "Bonjour" & vbCr & "Veuillez trouver ci-joint mon offre de prix" & vbCr & " Cordialement " 'texte a rajouter"
M.Attachments.Add "C:\Users\" & Environ("username") & "\Desktop\" & CheminDuFichier
'Set oBjMail = Nothing
.Display
SendKeys "^{ENTER}"
M.send
nomUtilisateur = Application.UserName
Kill "C:\Users\" & nomUtilisateur & "\Desktop\" & CheminDuFichier


Set oBjMail = Nothing
Set olApp = Nothing
'Application.Dialogs(xlDialogSendMail).Show

Normalement, " .Send" doit il l' envoyer même si Outlook se ferme du moment qu'il commence cette tâche et qu'il continue en travail de fond et c'est mon Outlook qui bugg ? ou je doit rajouter une commande pour qu'il l'envoi avant de fermer ?
Si quelqu'un connaît la réponse .... je le remercie par avance.
 

lepigoennier

XLDnaute Junior
Re : code vba "envoyer recevoir" outlook

Tu ouvres ton Outlook en arrière-plan, tu travailles à partir d'Excel. Lorsque tu lances la macro, les courriels s'envoient automatiquement. Tu dois juste vérifier avant de fermer ton Outlook que tous les messages sont envoyés (plus rien dans ton Outbox)
 

andrekn13

XLDnaute Occasionnel
Re : code vba "envoyer recevoir" outlook

re
Cela signifie que l'on peut pas ouvrir Outlook directement d' Excel en arrière plan ?
je pensais pourtant avec vbMinimizedFocus '2 La fenêtre est affichée sous forme d'icône et activée
mais je n' arrive pas à le mettre là où il faut
 

andrekn13

XLDnaute Occasionnel
Re : code vba "envoyer recevoir" outlook

RE
Ben pour un premier essai , j'ai une erreur avec CDO
faut demain que je jette un coup d'œil pourquoi
Bon quand même dommage que je n'arrive pas à trouver une solution alors qu'il manque un chouia pour ouvrir Outlook en arrière plan
merci beaucoup pour votre aide , j'ai encore de quoi faire !
 

Pièces jointes

  • CDO.jpg
    CDO.jpg
    26.2 KB · Affichages: 54

andrekn13

XLDnaute Occasionnel
Re : code vba "envoyer recevoir" outlook

Re bonsoir Staple
j'avais jamais fait attention à cocher cette case, et pourtant des macros en sont passées !
Ok j'ai essayé ça marché nickel ;) . je le garde précieusement car c'est inévitablement que l'on en a besoin tôt ou tard.
Mais bon, j'ai peur de l'utiliser professionnellement car j' oubli vite, et j'ai peur de m' embrouiller pour savoir si j'ai envoyé et surtout à qu'elle date un tel mail à tel client
Avec Outlook, je retrouve tout .
Une petite idée pour ouvrir Outlook en arrière plan , malgré tout:eek: ??
 

Roland_M

XLDnaute Barbatruc
Re : code vba "envoyer recevoir" outlook

bonjour à tous !

. . .
. . . j' oubli vite, et j'ai peur de m' embrouiller pour savoir si j'ai envoyé et surtout à qu'elle date un tel mail à tel client.
Avec Outlook, je retrouve tout .

ça me donne une idée, je peux regarder pour enregistrer les noms des envois effectués !?
par exemple dans une feuille à part !?
 
Dernière édition:

andrekn13

XLDnaute Occasionnel
Re : code vba "envoyer recevoir" outlook

Bonjour Roland_M
je viens d' essayer, et là j' avoue que tu as fait fort ! nickel.
par curiosité, si tu as la réponse pourquoi Outlook s'ouvre toujours en premier plan ?
si je fais juste: Shell "OUTLOOK.EXE", 6 il ne respecte pas la commande. Rien trouvé sur le net
merci
 

Roland_M

XLDnaute Barbatruc
Re : code vba "envoyer recevoir" outlook

re

il m'est difficile de te répondre car je n'ai pas outlook !

mais j'ai des exemples que j'ai assez bien documenté, si tu veux y jeter un œil ...

EDIT:
tu verras cette remarque:

'Send et Display ne doivent pas être utilisé simultanément
'.Send '<<<<< Pour envoyer directement
.Display '<<<< Pour voir le mail avant envoi
 

Pièces jointes

  • CodeMailOutlook.xlsm
    16.6 KB · Affichages: 43
Dernière édition:

andrekn13

XLDnaute Occasionnel
Re : code vba "envoyer recevoir" outlook

Re
merci beaucoup pour ton fichier, j'ai testé et vu les codes, mais toujours la même règle : il faut qu'Outlook soit déjà ouvert.
Le test que tu as confirmes bien qu'il faut qu'il soit ouvert avant et réduit.
Bon dommage ....
merci encore et surtout pour ton CDO !
 

andrekn13

XLDnaute Occasionnel
Re : code vba "envoyer recevoir" outlook

Bonsoir Martial
erreur 438
'Dim OutlookApp As objet
'OutlookApp.ActiveWindow.WindowState = olMinimized
Set OutlookApp = CreateObject("Outlook.Application")
OutlookApp.Visible = 0
'With OutlookApp
'OutlookApp.ActiveWindow.WindowState = olMinimized
'End With
'Shell "Outlook", vbHide
'ActiveExplorer.WindowState = olMinimized
'olapplication = olMinimized
'Application.ScreenUpdating = False
Call Shell("C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE", vbHide)

'Application.ActiveWindow.WindowState = olMinimized
'OutlookApp.ActiveWindow = olMinimized
'Shell "C:\Users\AK\Desktop\"OUTLOOK.EXE - Raccourci"
' Minimize an Outlook window
'OutlookApp.ActiveWindow.WindowState = 1


Call Shell("C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE", vbHide)
With GetObject(, "Outlook.Application")
.ActiveWindow.WindowState = 1 ' olMinimized = 1
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 730
Membres
110 553
dernier inscrit
loic55