Macro envoi alerte Outlook

  • Initiateur de la discussion Initiateur de la discussion lorsaint
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lorsaint

XLDnaute Occasionnel
Bonjour à tous,

J'ai une macro qui me permet, à l'ouverture du fichier, d'afficher une msgbox qui m'alerte sur des dates. Je souhaiterais que, en même temps que la msgbox s'affiche, un message Outlook soit envoyé à une adresse mail.

Est-ce possible ?

Voici le code sur lequel je souhaiterais ajouter cette fonctionnalité :

Private Sub Workbook_Open()
Dim m_r As Integer
For n = 2 To Sheets("Feuil1").Range("L65536").End(xlUp).Row
j_r = Day(Range("L" & n))
a_r = Year(Range("L" & n))
m_r = Month(Range("L" & n)) - 3
If m_r < 1 Then
m_r = m_r + 12
a_r = a_r - 1
End If
If j_r > derj(m_r) Then j_r = derj(m_r)
If CDate(j_r & "/" & m_r & "/" & a_r) <= Date And CDate(j_r & "/" & m_r & "/" & a_r) > Date - 15 Then
MsgBox ("Attention, retour de " & Range("B" & n) & " " & Range("A" & n) & " le" & Chr(10) & Range("L" & n))
End If
Next n
End Sub

Function derj(m As Integer)
derj = Day(CDate("01/" & m + 1 & "/2009") - 1)
End Function


Par avance, merci pour votre aide.

Lorsaint 😛
 
Re : Macro envoi alerte Outlook

Bonjour Lorsaint 🙂,
Voici une possibilité faite par Thierry
Code:
Sub EnvoyerMail()
' Thierry (XLD)
Dim OLApplication As Outlook.Application, OLMail As Outlook.MailItem
Set OLApplication = CreateObject("Outlook.Application")
Set OLMail = OLApplication.CreateItem(OLMailItem)
With OLMail
   .To = MailTo ' Destinataire
   .CC = MailCC ' Copie
   .Importance = olImportanceNormal
   .Subject = ObjetMessage ' Sujet
   .Body = CorpsMessage ' Message
   .Attachments.Add CheminDestination ' Pièce jointe
   .Categories = "Daily"
   .OriginatorDeliveryReportRequested = True ' Accusé de dépôt
   .ReadReceiptRequested = True ' Accusé de lecture
'  .Send '<<<<<<<<<<<<<<<Pour envoyer directement
   .Display '<<<<<<<<<<<<<Pour voir le mail avant envoi
End With
Set OLApplication = Nothing
Set OLMail = Nothing
End Sub
Ne pas oublier d'ouvrir la référence à OutLook et ne valider que Send ou Display suivant ce que tu souhaites.
Bonne soirée 😎
 
Re : Macro envoi alerte Outlook

Bonjour Lorsaint 🙂,
Voici une possibilité faite par Thierry
Code:
Sub EnvoyerMail()
' Thierry (XLD)
Dim OLApplication As Outlook.Application, OLMail As Outlook.MailItem
Set OLApplication = CreateObject("Outlook.Application")
Set OLMail = OLApplication.CreateItem(OLMailItem)
With OLMail
   .To = MailTo ' Destinataire
   .CC = MailCC ' Copie
   .Importance = olImportanceNormal
   .Subject = ObjetMessage ' Sujet
   .Body = CorpsMessage ' Message
   .Attachments.Add CheminDestination ' Pièce jointe
   .Categories = "Daily"
   .OriginatorDeliveryReportRequested = True ' Accusé de dépôt
   .ReadReceiptRequested = True ' Accusé de lecture
'  .Send '<<<<<<<<<<<<<<<Pour envoyer directement
   .Display '<<<<<<<<<<<<<Pour voir le mail avant envoi
End With
Set OLApplication = Nothing
Set OLMail = Nothing
End Sub
Ne pas oublier d'ouvrir la référence à OutLook et ne valider que Send ou Display suivant ce que tu souhaites.
Bonne soirée 😎

bonjour JNP,

Merci pour l'info. Que signifie "ouvrir la référence à Outlook" ?

Encore merci pour l'aide si précieuse

Lorsaint
 
Re : Macro envoi alerte Outlook

Re 🙂,
Dans l'explorateur VBA, Outils -> Références... chercher Microsoft OutLook 10.0 (11.0 ou 12.0 en fonction de ta version d'Office) Object Library et le cocher.
Bonne journée 😎
 
Re : Macro envoi alerte Outlook

Bonjour à vous,

(et salut @+Thierry au passage!)

J'ai fait une recherche sur envoyer e-mail et je suis tombée sur ce fil.

Très intéressant, mais je ne sais pas l'exploiter.

Je dois envoyer quotidiennement un e-mail de rappel comportant un certain texte à une liste d'adresses e-mail figurant dans la colonne A d'un classeur XL.
J'ai (honteusement!) copié le code de notre rocker-biker (ou l'inverse) mais évidemment ça le fait pas...
Une petite aide serait la bien venue.

Merci à vous tous.😎

Bises

C@thy
 
Re : Macro envoi alerte Outlook

Salut Cathy 🙂,
Le code est commenté, donc ça devrait le faire 😛. Non, plus sérieusement, il faudrait un peu plus d'explication (un certain texte, le même pour tout le monde, ou chacun le sien ?). Sinon, il te suffit de concaténer ta liste d'adresse avec des ";" et de mettre la liste dans la variable MailTo.
Dans le code
Code:
Sub EnvoyerMail()
' Thierry (XLD)
Dim OLApplication As Outlook.Application, OLMail As Outlook.MailItem
Set OLApplication = CreateObject("Outlook.Application")
Set OLMail = OLApplication.CreateItem(OLMailItem)
With OLMail
   .To = [B][COLOR=red]MailTo[/COLOR][/B] ' Destinataire
   .CC = [B][COLOR=red]MailCC[/COLOR][/B] ' Copie
   .Importance = olImportanceNormal
   .Subject = [B][COLOR=red]ObjetMessage[/COLOR][/B] ' Sujet
   .Body = [B][COLOR=red]CorpsMessage[/COLOR][/B] ' Message
   .Attachments.Add [COLOR=red][B]CheminDestination[/B][/COLOR] ' Pièce jointe
   .Categories = "Daily"
   .OriginatorDeliveryReportRequested = True ' Accusé de dépôt
   .ReadReceiptRequested = True ' Accusé de lecture
'  .Send '<<<<<<<<<<<<<<<Pour envoyer directement
   .Display '<<<<<<<<<<<<<Pour voir le mail avant envoi
End With
Set OLApplication = Nothing
Set OLMail = Nothing
End Sub
tous les gras et rouges sont des variables en String (comme toi sur les photos 😀) où tu mets ce dont tu as besoin (CheminDestination est du type "C:\Documents and Settings\...\MonFichier.xls").
Bonne journée 😎
 
Re : Macro envoi alerte Outlook

Ah voilà, on avance : mettre des ; entre chaque adresse, SUPER,

le même texte pour tout le monde (il y a 1500 destinataires!)
je ne connais pas ce texte à l'avance, mais il y aura vraisemblablement un tableau
(arf, c'est plus dur?) d'1 seule colonne (5 infos)
Si les gens renvoient le mail avec le tableau rempli, y a-t-il un moyen de récupérer ça sous XL?
Si ça marche, tu auras la photo de moi en string... vue de face.

Bises

C@thy
 
Re : Macro envoi alerte Outlook

Re 🙂,
1500 destinataires, tu plaisantes pas 😛! Tu va te faire blacklister avec ça... Tu as intérêt à découper tes envois avec 20 destinataires maxi et 10 envois à la fois, séparés par une temporisation (et décoche l'accusé de réception...). Pour le tableau, le problème est que le message est envoyé en texte brut, peut-être qu'il va falloir le coder en HTML 🙄... Le plus simple est de mettre ce tableau en pièce jointe format Excel. Ce sera aussi plus simple pour le récupérer en Excel au retour.
Par contre, autant j'aime Excel et VBA, autant je passerai plutôt par un publipostage Word en messagerie (ça marche en 2007, mais je ne sais pas à partir de quelle version c'est possible 😱).
Bon courage 😎
 
Re : Macro envoi alerte Outlook

ceci marche pas mal pour envoyer la feuille active d'un classeur :
ActiveWorkbook.SendMail Recipients:=Array("Cathy[EMAIL="Cathy@xld.fr"]@xld.fr"[/EMAIL])
(j'ai mis Array car je voulais faire :=Array("Cathy[EMAIL="Cathy@xld.fr"]@xld.fr", tibo@xld.fr, jnp@xld.fr etc...[/EMAIL])
mais gasp! ça veut pas marcher(??)
avantage : la macro ne fait qu'une seule ligne.
Crois-tu que je pourrais faire une boucle sur une liste de 1500 adresses dans une feuille? On peut effectivement mettre une temporisation du style
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 15
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime

Y'a juste un petit souci : il transfère aussi la macro et le bouton qui lance la macro!

Bizz

C@thy
 
Dernière édition:
Re : Macro envoi alerte Outlook

Coucou me revoilou 😉

j'ai 'achement progressé depuis hier.

Voici l'état d'avancement de mes cogitations :
j'ai mis sur une Feuil2 en A2 et suivants la liste des adresses mail de mes destinataires
je voudrais envoyer la feuil1 mais ça ne marche pas :
Code:
Sub Test()
Dim C As Range
Dim AdresseMail As String
Sheets("Feuil2").Activate
Range("A2", Range("A2").End(xlDown)).Select
For Each C In Selection
AdresseMail = C.Value
ActiveWorkbook.[COLOR=red]Sheets("Feuil1").[/COLOR]SendMail Recipients:=AdresseMail
Next
End Sub
si j'enlève ce qui est en rouge je reçois la liste de mes destinataires => pas bon! 😡

En plus, gros problème :
Outlook me demande une confirmation à chaque envoi (j'en ai 1500!).😡 😡
Comment éviter ve message???

Merciiiiiiiiiiiii à vous.

Bises
du matin.

C@thy
 
Re : Macro envoi alerte Outlook

Salut Cathy 🙂,
L'envoi depuis un deuxième classeur fonctionne très bien, à condition que le classeur à envoyer soit ouvert simultanément 😉.
Pour le message, il y a pas mal de posts à ce sujet, mais je crois bien qu'il n'y a pas de solution vraiment correcte 😱...
Par contre, en faisant des paquets de 20, ça ne fait plus que 75 clicks 😛, ce qui te permettra de temporiser à la main. Essaie avec le classeur joint.
Bonne journée 😎
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
163
Réponses
2
Affichages
154
Réponses
4
Affichages
180
Réponses
4
Affichages
463
Retour