Option Explicit
Private CdoConfig As CDO.Configuratione
Private CdoConfigErrorMessage As String
Function GetCdoConfig() As Boolean
CdoConfigErrorMessage = ""
On Error GoTo FIN
'
' Si la configuration n'est pas déjà prête
' La créer et la préparer
If CdoConfig Is Nothing Then
Set CdoConfig = New CDO.Configuration
With CdoConfig
.Fields(cdoSMTPServer) = "smtp.gmail.com"
.Fields(cdoSMTPConnectionTimeout) = 60
.Fields(cdoSendUsingMethod) = cdoSendUsingPort
.Fields(cdoSMTPServerPort) = 465
.Fields(cdoSMTPAuthenticate) = cdoBasic
.Fields(cdoSMTPUseSSL) = True
.Fields(cdoSendUserName) = "trucmachin@gmail.com" ' à adapter
.Fields(cdoSendPassword) = "motdepasse ' à adapter"
.Fields.Update
End With
End If
FIN:
If Err.Number <> 0 Then CdoConfigErrorMessage = Err.Description
GetCdoConfig = Not CdoConfig Is Nothing
On Error GoTo 0
End Function
Sub Relance()
Dim cdo_msg As CDO.Message
Dim Cellule As Range
Dim Ligne As Long
'
' L'appel à la fonction GetCdoConfig
' Vérifiera si la configuration existe déjà
'
If GetCdoConfig() Then
'
'Commencer la boucle de création et d'envoi de message individuel
For Each Cellule In Range("i1:i100000")
Ligne = Ligne + 1
If Cells(Ligne, 9).Value = "non" And Cells(Ligne, 11) <= Date Then
'
' Création du nouveau message
Set cdo_msg = New CDO.Message
Set cdo_msg.Configuration = CdoConfig
'
' Mettre ici les autres lignes de constitution du message et d'envoi
'
End If
'
' Nettoyage de la variable cdo_msg
Set cdo_msg = Nothing
Next
'
' Destruction de l'objet configuration qui n'a plus lieu d'être
Set CdoConfig = Nothing
Else
'
' Eventuellement afficher le message
' d'erreur de configuration
MsgBox "Relance interrompue en raison de l'erreur suivante : " & vbCrLf & vbCrLf & _
CdoConfigErrorMessage, vbExclamation, "Relance personnalisée"
End If
End Sub