XL 2010 Envoi un mail automatique

FaruSZ

XLDnaute Junior
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 Accro
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 Impliqué
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
 

Fichiers joints

FaruSZ

XLDnaute Junior
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.
Voir 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 Impliqué
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
 

Fichiers joints

FaruSZ

XLDnaute Junior
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
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas