Erreur d'exécution '-2147220960(80040220)': la val

CYKY34 Messages postés 4 Date d'inscription mercredi 18 avril 2018 Statut Membre Dernière intervention 23 avril 2018 - 23 avril 2018 à 13:01
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 24 avril 2018 à 19:55
Bonjour,

J'essaie de faire marché ce code vba mais une erreur d'exécution'-2147220960(80040220)': la valeur de configuration "sendusing" est non valide a été détectée, est- ce quelqu'un aurait une solution pour résoudre cette erreur.

Mon objectif est d'arriver à envoyer un message sans pièce jointe par mail à plusieurs destinataires à date dépassée à partir d'un fichier excel.

Voici ce que j'ai fait mais ça ne marche toujours pas.





J'ai vraiment besoin d'aide.

En vous remerciant par avance.

Cordialement,
A voir également:

3 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
23 avril 2018 à 18:33
Merci de poster le code sous format texte, les images ne permettent pas le copier/coller du code.
0
CYKY34 Messages postés 4 Date d'inscription mercredi 18 avril 2018 Statut Membre Dernière intervention 23 avril 2018
Modifié le 24 avril 2018 à 18:04
Bonjour NHenry,

Je vous mets le code complet, le but est que je puisse envoi un mail sans pièce jointe à date dépassée date (en colonne C ) à ma liste d'adresse mail (en colonne D).

Je vous remercie par avance de votre aide.

Cordialement,

Option Explicit

Sub TesteDate()
'envoie un mail si la date est dépassée
Dim sSujet, sBody, sAdresseMail, sAdresseRetour As String 'chaines pour le sujet, corps, adresse d'envoi, adresse de retour
Dim duree As Integer 'nbre de jours entre aujourd'hui et la date à tester
Dim Lig_Deb, Lig_Fin As Integer 'ligne de début, de fin
Dim sDates_Col, sMails_Col As String 'colonnes qui contiennent les dates à tester et les adresses mail
Dim i As Integer

'initialisation des constantes de la macro :
Lig_Deb = 4 'dans ma feuille Excel, les dates à tester commencent en ligne 2
sDates_Col = "C" ' et elles sont en colonne C ( 3 ième colonne)et les adresses mail sont en colonne D à côté

'initialisation des données du mail envoyé :
sSujet = "Attestation d'assurance:"
sBody = "Bonjour," + vbNewLine + "Pouvez-vous nous transmettre votre attestation d'assurance à jour afin de mettre notre dossier administratif sous-traitant." + vbNewLine + "En vous remerciant." + vbNewLine + "Cordialement," + vbNewLine
sAdresseRetour = "-------------------@hotmail.fr"

'Ligne de fin =1ère cellule vide dans la colonne des dates
Lig_Fin = Val(Range(sDates_Col & CStr(Lig_Deb)).End(xlDown).Row)

' boucle de test dans la plage des dates (=> )
For i = Lig_Deb To Lig_Fin
Range(sDates_Col & CStr(i)).Select 'activer la cellule testée
duree = Now - ActiveCell.Value ' la date est dans la cellule active
If duree > 0 Then 'la date est dépassée
sAdresseMail = ActiveCell.Offset(0, 1).Value 'l'adresse mail est dans la colonne suivante offset (0,1)
'MsgBox ("Envoi de courrier à " & sAdresseMail)
' envoyer le mail :
CDO_SendMail sSujet, sBody, sAdresseMail, sAdresseRetour
Else
'MsgBox ("La date n'est pas atteinte")
End If

Next i

End Sub

Sub CDO_SendMail(ByVal sSujet As String, ByVal sBody As String, ByVal sAdresseMail As String, ByVal sAdresseRetour)
'MARCHE IMPEC, sans demande de confirmation ;-)))))
'on peut préciser : le sujet, le corps , l'adresse mail, l'adresse de retour
Dim iMsg As Object
Dim iConf As Object

Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")

With iMsg
.Configuration = iConf
.To = sAdresseMail
.Sender = sAdresseRetour 'adresse de l'expéditeur pour le rapport envoyé
.From = sAdresseRetour 'adresse de l'expéditeur du mail
.ReplyTo = sAdresseRetour 'adresse à laquelle sera envoyée la réponse
.CC = ""
.BCC = ""
.Subject = sSujet 'sujet du message
.TextBody = sBody 'corps du message
'.AddAttachment Fichier 'fichier joint
.DSNOptions = 14 'confirmation demandée dans tous les cas (voir ci-dessous avec 14 8 + 4 + 2)
' (0=pas réponse ; 2=rapport si échec ; 4=rapport si réussi ; 8=rapport si délai)

' pour demander des confirmations de réception ou d'envoi :
.Fields("urn:schemas:mailheader:return-receipt-to") = sAdresseRetour
.Fields("urn:schemas:mailheader:disposition-notification-to") = sAdresseRetour
' Update fields
.Fields.Update

' envoi
.Send
End With

End Sub


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
24 avril 2018 à 19:55
N'ayant pas Outlook (ni autre logiciels de la suite Office) sur ma machine, j'essaye quand même quelques hypothèses :
https://www.experts-exchange.com/questions/21277383/runtime-error-2147220960-80040220-The-SendUsing-configuration-is-invalid.html (Réponse du 2005-01-28)
https://stackoverflow.com/questions/582756/smtp-configuration-sendusing-configuration-value-is-invalid-with-asp-classic
https://stackoverflow.com/questions/33391500/cdo-message-1-error-80040220

Il y aurait un truc du genre :
myMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
A adapter à ton code.
0
Rejoignez-nous