XL 2010 Envoi un mail automatique

FaruSZ

XLDnaute Occasionnel
Bonjour,
Je veux savoir si c'est possible de faire un code qui me permet d'envoyer un mail au personnel de l'entreprise pour les notifier sur des dates d'expiration de quelques procedures. sous VBA.
merci
 

Lolote83

XLDnaute Barbatruc
Bonjour,
en faisant une recherche sur ce thème, tu devrais trouver ton bonheur.
Tout dépend si tu utilises Outlook, Thunderbird, etc etc etc ....
En fonction de cela, ce ne sera pas le même code.
Il y a plein de ressources sur le forum
@+ Lolote83
 

GALOUGALOU

XLDnaute Accro
re farusz, bonsoir lolote83 bonsoir le fil

une solution simple sans logiciel de messagerie avec l'extension CDO à installer dans le classeur excel, et une boite gmail.
cdo.gif


une code vba dans un module avec une fonction, remplacer adresse de messagerie par la vôtre, mais surtout une adresses gmail et le mot de passe de gmail
VB:
Function GetSMTPServerConfig() As Object

Dim Cdo_Config As New CDO.Configuration
Dim Cdo_Fields As Object

Set Cdo_Fields = Cdo_Config.Fields
With Cdo_Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = "smtp.gmail.com"
.Item(cdoSMTPServerPort) = 465
.Item(cdoSendUserName) = "mon_adresse_gmail.com" 'renseigner votre adresse
.Item(cdoSendPassword) = "mon_mot_de_passe_gmail" 'renseigner votre mot de passe
.Item(cdoSMTPAuthenticate) = cdoBasic
.Item(cdoSMTPUseSSL) = True
.Update
End With

Set GetSMTPServerConfig = Cdo_Config
Set Cdo_Config = Nothing
Set Cdo_Fields = Nothing
End Function


Public Sub SendMail22()

Dim Cdo_Message As New CDO.Message

Set Cdo_Message.Configuration = GetSMTPServerConfig()
With Cdo_Message
.To = Sheets("Mail").Range("C2").Text
.From = Sheets("Mail").Range("C2").Text
.Subject = "Information rendez-vous"
.TextBody = "information dans le texte " & Sheets("Mail").Range("D2").Text & " le " & Sheets("Mail").Range("e2").Text & " " & " " & "à " & Sheets("Mail").Range("f2").Text
.Send
End With

Set Cdo_Message = Nothing
MsgBox ("mail envoyé,vous avez la possibilité de supprimer cette boite de dialogue dans le code vba")

End Sub

dans l'exemple les cellules de la deuxième ligne sont concernées pour l'envoie d'un mail.
par une boucle adapter cette macro pour l'envoie à plusieurs destinataires.
cordialement
galougalou
 

Pièces jointes

  • mail.xlsm
    15 KB · Affichages: 16

FaruSZ

XLDnaute Occasionnel
re farusz, bonsoir lolote83 bonsoir le fil

une solution simple sans logiciel de messagerie avec l'extension CDO à installer dans le classeur excel, et une boite gmail.
Regarde la pièce jointe 1071919

une code vba dans un module avec une fonction, remplacer adresse de messagerie par la vôtre, mais surtout une adresses gmail et le mot de passe de gmail
VB:
Function GetSMTPServerConfig() As Object

Dim Cdo_Config As New CDO.Configuration
Dim Cdo_Fields As Object

Set Cdo_Fields = Cdo_Config.Fields
With Cdo_Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = "smtp.gmail.com"
.Item(cdoSMTPServerPort) = 465
.Item(cdoSendUserName) = "mon_adresse_gmail.com" 'renseigner votre adresse
.Item(cdoSendPassword) = "mon_mot_de_passe_gmail" 'renseigner votre mot de passe
.Item(cdoSMTPAuthenticate) = cdoBasic
.Item(cdoSMTPUseSSL) = True
.Update
End With

Set GetSMTPServerConfig = Cdo_Config
Set Cdo_Config = Nothing
Set Cdo_Fields = Nothing
End Function


Public Sub SendMail22()

Dim Cdo_Message As New CDO.Message

Set Cdo_Message.Configuration = GetSMTPServerConfig()
With Cdo_Message
.To = Sheets("Mail").Range("C2").Text
.From = Sheets("Mail").Range("C2").Text
.Subject = "Information rendez-vous"
.TextBody = "information dans le texte " & Sheets("Mail").Range("D2").Text & " le " & Sheets("Mail").Range("e2").Text & " " & " " & "à " & Sheets("Mail").Range("f2").Text
.Send
End With

Set Cdo_Message = Nothing
MsgBox ("mail envoyé,vous avez la possibilité de supprimer cette boite de dialogue dans le code vba")

End Sub

dans l'exemple les cellules de la deuxième ligne sont concernées pour l'envoie d'un mail.
par une boucle adapter cette macro pour l'envoie à plusieurs destinataires.
cordialement
galougalou
Merci je vais le tester.
 

GALOUGALOU

XLDnaute Accro
re farusz bonjour le fil
une petite boucle avec une simplification de la saisie dans la feuille mail
une deuxième feuille liste les adresses mails des destinataires. faire une saisie dans la colonne a sans sauter de lignes.
cordialement
galougalou
 

Pièces jointes

  • mail2.xlsm
    24.9 KB · Affichages: 8

FaruSZ

XLDnaute Occasionnel
re farusz bonjour le fil
une petite boucle avec une simplification de la saisie dans la feuille mail
une deuxième feuille liste les adresses mails des destinataires. faire une saisie dans la colonne a sans sauter de lignes.
cordialement
galougalou
Bonjour,
Merci pour le fichier, cependant moi je veux que le mail s'envoi automatiquement sans cliquer sur des boutons, je veux rédiger un code avec une condition sur la fin de validité de quelques éléments de ma base de données.
Jusqu'à présent j'ai réussi a écrire un code qui me permet d'afficher un msgbox quand la date de validité approche:

'Afficher date fin validit? des formations internes
Sub AlertesDatesFormations()
Dim Sh As Worksheet, Chaine As String, Lig As Integer, Alerte
Lig = 14 ' car les dates de validit? se trouvent en ligne 14
For Each Sh In ActiveWorkbook.Sheets
If Sh.Range("A10") = "Formation interne" Then 'Formation concern?e
Col = 2 ' car la premi?re date de validit? en en colonne B
While Sh.Cells(Lig - 4, Col) <> "" ' on regarde toutes les formations dans la colonne A10 (14-4=10)
If Sh.Cells(Lig, Col) <> "" And Sh.Cells(Lig, Col) < Date + 60 Then ' si formation et date
' on enrichit la chaine avec nom-date-formation
Chaine = Chaine & Sh.Name & vbTab & " Date: " & Sh.Cells(Lig, Col) & " " & Sh.Cells(Lig - 1, Col) & vbCrLf
End If
Col = Col + 1
Wend
If Chaine <> "" Then Chaine = Chaine & vbCrLf
End If
Next Sh
If Chaine <> "" Then Alerte = MsgBox(Chaine, , "Alertes sur les dates de validit? formations.")
End Sub


je veux ajouter l'envoi du mail a l'intérieur de ce code
 

Discussions similaires

Réponses
1
Affichages
78
Compte Supprimé 979
C
Réponses
5
Affichages
332

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof