j'ai crée dans mon fichier excel une fonction qui envoie un mail automatiquement selon un test fait sur la valeur de 2 cellules (gestion de stock)
Voici le code :
Sub SendMail_Outlook()
'Avant de lancer cette macro, Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft 'Outlook Library"
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To = "adresse mail"
.Subject = "Attention stock de casque ou câble limite"
.Body = "Ceci est un message pour signaler que le stock de casque ou de câble est inférieur ou égal à 3"
.Send '.display
'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer 'et le vérifier(display)
End With
End Sub
Cette fonction marche correctement car le mail est bien envoyé cependant le mail est toujours ouvert comme s'il n'avait pas été envoyé.
Est il possible de rendre totalement invisible cette fonction ? c'est à dire peut on fermer la fenêtre du mail à la fin sans fermer totalement outlook ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Bonjour,
Si tu veux envoyer un courriel avec Microsoft Outlook de façon transparente, essaie ce qui suit. Sur le Web, tu dois télécharger et installer un programme du nom "ClickYes.exe" téléchargeable à cette adresse : http://www.contextmagic.com/express-clickyes/free-version.htm
Tu copies le tout dans un module standard
'Déclaration des API dans le haut du module standard Private Declare Function RegisterWindowMessage _ Lib "user32" Alias "RegisterWindowMessageA" _ (ByVal lpString As String) As Long
Private Declare Function FindWindow Lib "user32" _ Alias "FindWindowA" (ByVal lpClassName As Any, _ ByVal lpWindowName As Any) As Long
Private Declare Function SendMessage Lib "user32" _ Alias "SendMessageA" (ByVal hwnd As Long, _ ByVal wMsg As Long, ByVal wParam As Long, _ lParam As Any) As Long '--------------------------------------------------------------- Private Sub SomeProc() Dim wnd As Long, uClickYes As Long, Res As Long
'Avant de lancer cette macro, Dans l'éditeur VBA: 'Faire Menu / Tools / Reference 'Cocher "Microsoft 'Outlook Library" Dim ol As New Outlook.Application Dim olmail As MailItem Dim CurrFile As String Set ol = New Outlook.Application Set olmail = ol.CreateItem(olMailItem)
' Register a message to send uClickYes = RegisterWindowMessage("CLICKYES_SUSPEND_RESUME")
' Find ClickYes Window by classname wnd = FindWindow("EXCLICKYES_WND", 0&)
' Send the message to Resume ClickYes Res = SendMessage(wnd, uClickYes, 1, 0)
' ... ' Do some Actions With olmail .To = "" .Subject = "Attention stock de casque ou câble limite" .Body = "Ceci est un message pour signaler que le stock " 'de casque ou de câble est inférieur ou égal à 3" .Send '.display 'On peut switcher entre .send et .display selon que l'on 'veut envoyer le mail(send) ou seulement le préparer 'et le vérifier(display) End With ' Send the message to Suspend ClickYes Res = SendMessage(wnd, uClickYes, 0, 0) Set olmail = Nothing: Set ol = Nothing End Sub '---------------------------------------------------------------
"flyingjuju" a écrit dans le message de groupe de discussion :
Bonjour,
j'ai crée dans mon fichier excel une fonction qui envoie un mail automatiquement selon un test fait sur la valeur de 2 cellules (gestion de stock)
Voici le code :
Sub SendMail_Outlook() 'Avant de lancer cette macro, Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft 'Outlook Library" Dim ol As New Outlook.Application Dim olmail As MailItem Dim CurrFile As String Set ol = New Outlook.Application Set olmail = ol.CreateItem(olMailItem) With olmail To = "adresse mail" Subject = "Attention stock de casque ou câble limite" Body = "Ceci est un message pour signaler que le stock de casque ou de câble est inférieur ou égal à 3" Send '.display 'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer 'et le vérifier(display) End With End Sub
Cette fonction marche correctement car le mail est bien envoyé cependant le mail est toujours ouvert comme s'il n'avait pas été envoyé. Est il possible de rendre totalement invisible cette fonction ? c'est à dire peut on fermer la fenêtre du mail à la fin sans fermer totalement outlook ?
Merci
Bonjour,
Si tu veux envoyer un courriel avec Microsoft Outlook de façon
transparente, essaie ce qui suit. Sur le Web, tu dois télécharger
et installer un programme du nom "ClickYes.exe" téléchargeable
à cette adresse :
http://www.contextmagic.com/express-clickyes/free-version.htm
Tu copies le tout dans un module standard
'Déclaration des API dans le haut du module standard
Private Declare Function RegisterWindowMessage _
Lib "user32" Alias "RegisterWindowMessageA" _
(ByVal lpString As String) As Long
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" (ByVal lpClassName As Any, _
ByVal lpWindowName As Any) As Long
Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
'---------------------------------------------------------------
Private Sub SomeProc()
Dim wnd As Long, uClickYes As Long, Res As Long
'Avant de lancer cette macro, Dans l'éditeur VBA:
'Faire Menu / Tools / Reference
'Cocher "Microsoft 'Outlook Library"
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
' Register a message to send
uClickYes = RegisterWindowMessage("CLICKYES_SUSPEND_RESUME")
' Find ClickYes Window by classname
wnd = FindWindow("EXCLICKYES_WND", 0&)
' Send the message to Resume ClickYes
Res = SendMessage(wnd, uClickYes, 1, 0)
' ...
' Do some Actions
With olmail
.To = "Destinataire@Fournisseur.com"
.Subject = "Attention stock de casque ou câble limite"
.Body = "Ceci est un message pour signaler que le stock "
'de casque ou de câble est inférieur ou égal à 3"
.Send '.display
'On peut switcher entre .send et .display selon que l'on
'veut envoyer le mail(send) ou seulement le préparer
'et le vérifier(display)
End With
' Send the message to Suspend ClickYes
Res = SendMessage(wnd, uClickYes, 0, 0)
Set olmail = Nothing: Set ol = Nothing
End Sub
'---------------------------------------------------------------
"flyingjuju" a écrit dans le message de groupe de discussion :
ieKdne0jKON1zs3N4p2dnAA@giganews.com...
Bonjour,
j'ai crée dans mon fichier excel une fonction qui envoie un mail
automatiquement
selon un test fait sur la valeur de 2 cellules (gestion de stock)
Voici le code :
Sub SendMail_Outlook()
'Avant de lancer cette macro, Dans l'éditeur VBA: Faire Menu / Tools /
Reference
/ Cocher "Microsoft 'Outlook Library"
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
To = "adresse mail"
Subject = "Attention stock de casque ou câble limite"
Body = "Ceci est un message pour signaler que le stock de casque ou de câble
est inférieur ou égal à 3"
Send '.display
'On peut switcher entre .send et .display selon que l'on veut envoyer le
mail
(send) ou seulement le préparer 'et le vérifier(display)
End With
End Sub
Cette fonction marche correctement car le mail est bien envoyé cependant le
mail
est toujours ouvert comme s'il n'avait pas été envoyé.
Est il possible de rendre totalement invisible cette fonction ? c'est à dire
peut on fermer la fenêtre du mail à la fin sans fermer totalement outlook ?
Si tu veux envoyer un courriel avec Microsoft Outlook de façon transparente, essaie ce qui suit. Sur le Web, tu dois télécharger et installer un programme du nom "ClickYes.exe" téléchargeable à cette adresse : http://www.contextmagic.com/express-clickyes/free-version.htm
Tu copies le tout dans un module standard
'Déclaration des API dans le haut du module standard Private Declare Function RegisterWindowMessage _ Lib "user32" Alias "RegisterWindowMessageA" _ (ByVal lpString As String) As Long
Private Declare Function FindWindow Lib "user32" _ Alias "FindWindowA" (ByVal lpClassName As Any, _ ByVal lpWindowName As Any) As Long
Private Declare Function SendMessage Lib "user32" _ Alias "SendMessageA" (ByVal hwnd As Long, _ ByVal wMsg As Long, ByVal wParam As Long, _ lParam As Any) As Long '--------------------------------------------------------------- Private Sub SomeProc() Dim wnd As Long, uClickYes As Long, Res As Long
'Avant de lancer cette macro, Dans l'éditeur VBA: 'Faire Menu / Tools / Reference 'Cocher "Microsoft 'Outlook Library" Dim ol As New Outlook.Application Dim olmail As MailItem Dim CurrFile As String Set ol = New Outlook.Application Set olmail = ol.CreateItem(olMailItem)
' Register a message to send uClickYes = RegisterWindowMessage("CLICKYES_SUSPEND_RESUME")
' Find ClickYes Window by classname wnd = FindWindow("EXCLICKYES_WND", 0&)
' Send the message to Resume ClickYes Res = SendMessage(wnd, uClickYes, 1, 0)
' ... ' Do some Actions With olmail .To = "" .Subject = "Attention stock de casque ou câble limite" .Body = "Ceci est un message pour signaler que le stock " 'de casque ou de câble est inférieur ou égal à 3" .Send '.display 'On peut switcher entre .send et .display selon que l'on 'veut envoyer le mail(send) ou seulement le préparer 'et le vérifier(display) End With ' Send the message to Suspend ClickYes Res = SendMessage(wnd, uClickYes, 0, 0) Set olmail = Nothing: Set ol = Nothing End Sub '---------------------------------------------------------------
"flyingjuju" a écrit dans le message de groupe de discussion :
Bonjour,
j'ai crée dans mon fichier excel une fonction qui envoie un mail automatiquement selon un test fait sur la valeur de 2 cellules (gestion de stock)
Voici le code :
Sub SendMail_Outlook() 'Avant de lancer cette macro, Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft 'Outlook Library" Dim ol As New Outlook.Application Dim olmail As MailItem Dim CurrFile As String Set ol = New Outlook.Application Set olmail = ol.CreateItem(olMailItem) With olmail To = "adresse mail" Subject = "Attention stock de casque ou câble limite" Body = "Ceci est un message pour signaler que le stock de casque ou de câble est inférieur ou égal à 3" Send '.display 'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer 'et le vérifier(display) End With End Sub
Cette fonction marche correctement car le mail est bien envoyé cependant le mail est toujours ouvert comme s'il n'avait pas été envoyé. Est il possible de rendre totalement invisible cette fonction ? c'est à dire peut on fermer la fenêtre du mail à la fin sans fermer totalement outlook ?