EXCEL : Envoi de mails automatisés
Résolu
Damaged
-
Villette54 Messages postés 300 Date d'inscription Statut Membre Dernière intervention -
Villette54 Messages postés 300 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Pour simplifier, voici tout de suite une version que j'ai rendu anonyme du fichier : http://cjoint.com/?CCpkkUIPc2S
.
Je vous explique mon problème :
.
J'ai une planning d'environ 50 personnes, sur le modèle du fichier.
.
Seulement voilà, j'ai peur d'oublier certains de mes RDV ou que mon contact l'oublie.
.
Du coup j'aimerais savoir s'il est possible par l'intermédiaire de Macros ou autres, d'envoyer automatiquement un mail de rappel (avec un texte automatique du genre "Sujet : Message automatique de rapel. Texte : Bonjour, pour rappel nous avons rendez vous ensemble aujourd'hui le #Date fichier# à #Heure RDV fichier#. Bien à vous, ....") le jour du rendez vous aux 2 personnes concernées à savoir moi et mon contact si la date du RDV correspond à la date en haut à droite
.
Pour infos les adresses mails sont sur la 2nd page, et j'utilise Outlook pour gérer mes mails.
.
Mais je ne sais si c'est possible pour 2 raisons :
.
1. Le document se met-il à jour automatiquement à minuit (donc le mail partirait à minuit) ou ne se met-il à jour que à l'ouverture de celui-ci ? De ce fait il faudrait que j'ouvre le document pour que les mails partent.
.
2. Est-il possible d'extraire des données d'une cellule pour les insérer dans le mail (Par exemple la date et l'heure de RDV)
.
En espérant pouvoir être aider, merci d'avance :)
Pour simplifier, voici tout de suite une version que j'ai rendu anonyme du fichier : http://cjoint.com/?CCpkkUIPc2S
.
Je vous explique mon problème :
.
J'ai une planning d'environ 50 personnes, sur le modèle du fichier.
.
Seulement voilà, j'ai peur d'oublier certains de mes RDV ou que mon contact l'oublie.
.
Du coup j'aimerais savoir s'il est possible par l'intermédiaire de Macros ou autres, d'envoyer automatiquement un mail de rappel (avec un texte automatique du genre "Sujet : Message automatique de rapel. Texte : Bonjour, pour rappel nous avons rendez vous ensemble aujourd'hui le #Date fichier# à #Heure RDV fichier#. Bien à vous, ....") le jour du rendez vous aux 2 personnes concernées à savoir moi et mon contact si la date du RDV correspond à la date en haut à droite
.
Pour infos les adresses mails sont sur la 2nd page, et j'utilise Outlook pour gérer mes mails.
.
Mais je ne sais si c'est possible pour 2 raisons :
.
1. Le document se met-il à jour automatiquement à minuit (donc le mail partirait à minuit) ou ne se met-il à jour que à l'ouverture de celui-ci ? De ce fait il faudrait que j'ouvre le document pour que les mails partent.
.
2. Est-il possible d'extraire des données d'une cellule pour les insérer dans le mail (Par exemple la date et l'heure de RDV)
.
En espérant pouvoir être aider, merci d'avance :)
A voir également:
- EXCEL : Envoi de mails automatisés
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
16 réponses
Bonjour,
J'ai trouvé ce sujet en faisant une recherche,
Je suis plus ou moins dans le même cas donc j'aimerais relancer ce sujet plutôt que de créer un doublon.
Merci, et bonne journée
J'ai trouvé ce sujet en faisant une recherche,
Je suis plus ou moins dans le même cas donc j'aimerais relancer ce sujet plutôt que de créer un doublon.
Merci, et bonne journée
Salut,
Avec Excel tout ou presque tout est possible.
Je te conseille de passer directement en CDO, plus facile à gérer et automatiser l'envoi.
Dans l'exemple ci joint il suffit de saisir en B3 l'adresse destinataire, en C1 le SMTP de son fournisseur d'accès et éventuellement un texte dans les cellules C3 à C10.
l'envoi à plusieurs destinataire n'est pas un problème et le corps du message peut être saisi dans le code comme le SMTP, ainsi que le déclenchement de l'envoi peut se faire automatiquement sur un critère.
A tester et on en reparle
https://www.cjoint.com/c/CCsk3utDxuP
Avec Excel tout ou presque tout est possible.
Je te conseille de passer directement en CDO, plus facile à gérer et automatiser l'envoi.
Dans l'exemple ci joint il suffit de saisir en B3 l'adresse destinataire, en C1 le SMTP de son fournisseur d'accès et éventuellement un texte dans les cellules C3 à C10.
l'envoi à plusieurs destinataire n'est pas un problème et le corps du message peut être saisi dans le code comme le SMTP, ainsi que le déclenchement de l'envoi peut se faire automatiquement sur un critère.
A tester et on en reparle
https://www.cjoint.com/c/CCsk3utDxuP
Bonjour Mike,
Pour moi ton fichier est d'une grande aide, seulement j'ai un petit soucis au niveau des adresses mails !
En effet il ne s'agit ni de free, ni de orange ect.. il s'agit d'une boite outlook avec pour extansion le nom de la boite (ex : Nom.Prenom@Nomsociete.com)
J'ai essayé de rentrer ça dans les cellules, seulement j'ai un message d'erreur : 553 sorry, that domain isn't in my list of allowed rcpthost (#5.7.1)
Je n'ai pas le moindre idée de ce que je peux y faire... Peux-tu m'aider ?
Merci.
Pour moi ton fichier est d'une grande aide, seulement j'ai un petit soucis au niveau des adresses mails !
En effet il ne s'agit ni de free, ni de orange ect.. il s'agit d'une boite outlook avec pour extansion le nom de la boite (ex : Nom.Prenom@Nomsociete.com)
J'ai essayé de rentrer ça dans les cellules, seulement j'ai un message d'erreur : 553 sorry, that domain isn't in my list of allowed rcpthost (#5.7.1)
Je n'ai pas le moindre idée de ce que je peux y faire... Peux-tu m'aider ?
Merci.
Re,
En B2 ton adresse mail d'expéditeur
et en B3 adresse mail du destinataire, pour tester tu peux mettre la tienne
Nom.Prenom@Nomsociete.com
en C1 tu dois avoir un SMTP de l'entreprise qui devrait ressembler à
SMTP.Nomsociete.com
pour t'assurer de ton smtp tu peux aller voir sur une adresse de messagerie sur Outlook/propriété/je crois que c'est sur un onglet serveur
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
En B2 ton adresse mail d'expéditeur
et en B3 adresse mail du destinataire, pour tester tu peux mettre la tienne
Nom.Prenom@Nomsociete.com
en C1 tu dois avoir un SMTP de l'entreprise qui devrait ressembler à
SMTP.Nomsociete.com
pour t'assurer de ton smtp tu peux aller voir sur une adresse de messagerie sur Outlook/propriété/je crois que c'est sur un onglet serveur
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ok merci j'avance,
Pour le SMTP j'ai mis SMTP.Outlook.com et ça à l'air de fonctionner.
Un petit soucis avec l'authentification, mais j'ai vu que tu avais déjà tout préparé dans le VBA, donc j'ai pu résoudre le problème facilement.
Cependant ce n'ai pas fini, maintenant lorsque je clique sur le bouton j'ai ce message qui apparait : "Compil Error : Variable not defined"
Et dans le VBA :
End Sub
Sub Procédure_Envoi()
Dim messageHTML As Variant
Dim objMessage As Variant
Dim piece_jointe As Variant
Ce que j'ai mis en gras se surligne en jaune. (Encore désolé mais je suis plus que novice en VBA)
Que puis-je faire ?
Merci.
Pour le SMTP j'ai mis SMTP.Outlook.com et ça à l'air de fonctionner.
Un petit soucis avec l'authentification, mais j'ai vu que tu avais déjà tout préparé dans le VBA, donc j'ai pu résoudre le problème facilement.
Cependant ce n'ai pas fini, maintenant lorsque je clique sur le bouton j'ai ce message qui apparait : "Compil Error : Variable not defined"
Et dans le VBA :
End Sub
Sub Procédure_Envoi()
Dim messageHTML As Variant
Dim objMessage As Variant
Dim piece_jointe As Variant
Ce que j'ai mis en gras se surligne en jaune. (Encore désolé mais je suis plus que novice en VBA)
Que puis-je faire ?
Merci.
Re,
Il est normal que Sub Procédure_Envoi() se mette en jaune si une erreur est rencontrée dans le code.
pour détecter la ligne en erreur aller dans le visual basic et blocage/activer le pas à pas détaillé
mais ton SMTP "SMTP.Outlook.com " ne peut être bon
ouvre outlook, puis je crois que c'est dans outils/comptes
ou tu devrais trouver ton adresse mail, clic dessus/propriété/ensuite clic sur tes onglets, je crois que c'est l'onglet serveur ou tu récupéreras les données de ton courrier sortant (SMTP) que tu rapporteras en C1
Il est normal que Sub Procédure_Envoi() se mette en jaune si une erreur est rencontrée dans le code.
pour détecter la ligne en erreur aller dans le visual basic et blocage/activer le pas à pas détaillé
mais ton SMTP "SMTP.Outlook.com " ne peut être bon
ouvre outlook, puis je crois que c'est dans outils/comptes
ou tu devrais trouver ton adresse mail, clic dessus/propriété/ensuite clic sur tes onglets, je crois que c'est l'onglet serveur ou tu récupéreras les données de ton courrier sortant (SMTP) que tu rapporteras en C1
Ok, pour l'erreur VBA j'ai ceci (en gras) qui se surligne :
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "***"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "***"
Huuum, question : dois-je laisser les " " autour de mon nom d'utilisateur et de mon mot de passe ?
Sinon pour mon SMTP, je ne trouve pas... Car dans l'outlook professionnel mis en place dans mon entreprise je n'ai pas l'onglet "outils" et je ne trouve rien lié aux comptes.
La seule info que je trouve c'est "Serveur Microsoft exchange : eu-casarray.nomsociété.net"
Encore désolé pour le dérangement, j'ai l'impression de te demander 150 fois la même chose mais de ne jamais comprendre !
Merci d'avance.
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "***"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "***"
Huuum, question : dois-je laisser les " " autour de mon nom d'utilisateur et de mon mot de passe ?
Sinon pour mon SMTP, je ne trouve pas... Car dans l'outlook professionnel mis en place dans mon entreprise je n'ai pas l'onglet "outils" et je ne trouve rien lié aux comptes.
La seule info que je trouve c'est "Serveur Microsoft exchange : eu-casarray.nomsociété.net"
Encore désolé pour le dérangement, j'ai l'impression de te demander 150 fois la même chose mais de ne jamais comprendre !
Merci d'avance.
Re,
Dans le code, ces lignes sont isolées et ne doivent être libérées et renseignées que dans le cas ou la connexion nécessite une authentification(dans ce cas l'apostrophe en tête de ligne doit être supprimée)
soit remettre l'apostrophe en tête de ligne ou supprimer ces lignes
Il est impératif de connaitre le SMTP pour renseigner la cellule C1 ou directement l'insérer dans le code
Dans le code, ces lignes sont isolées et ne doivent être libérées et renseignées que dans le cas ou la connexion nécessite une authentification(dans ce cas l'apostrophe en tête de ligne doit être supprimée)
soit remettre l'apostrophe en tête de ligne ou supprimer ces lignes
Il est impératif de connaitre le SMTP pour renseigner la cellule C1 ou directement l'insérer dans le code
Bonjour Mike,
J'ai du retirer l'apostrophe et renseigner ces lignes justement car j'ai eu un message d'erreur qui me disait que je devais m'authentifier !
Je ne trouve rien de plus pour mon SMTP, je vais laisser tomber ça sera plus simple ! J'enverrais mes mails à la main et pis c'est tout.
Merci encore pour ton aide, et pour le temps que tu m'as consacré.
Bonne journée
J'ai du retirer l'apostrophe et renseigner ces lignes justement car j'ai eu un message d'erreur qui me disait que je devais m'authentifier !
Je ne trouve rien de plus pour mon SMTP, je vais laisser tomber ça sera plus simple ! J'enverrais mes mails à la main et pis c'est tout.
Merci encore pour ton aide, et pour le temps que tu m'as consacré.
Bonne journée
Ce post est juste à titre informatif pour ceux qui chercheraient à faire la même chose.
J'ai finalement réussi à faire ce que je voulais à savoir un bouton qui envoi une page Excel voici le VBA :
Sub PDFMAIL()
Application.DisplayAlerts = False
Dim ObjOutlook As Object
Dim oBjMail
Dim pj As String
Dim Corps As String
Sheets("Feuil3").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"P:\AAA Test\" & [B2] & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False _
pj = "P:\AAA Test\" & [B2] & ".pdf"
Set ObjOutlook = CreateObject("outlook.application")
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
If pj = "Faux" Then Exit Sub
If VarType(pj) = vbBoolean Then Exit Sub
Corps = "Bonjour, " & "<br><br>" _
& "1000ème TEST DE CETTE MERDEEEEEEEEEEEE " & "<br>" _
& "je reste à votre disposition pour tous renseignement complémentaire " & "<br>" _
With oBjMail
.To = [A2].Value
.CC = [A3].Value
.Subject = "test 1, 2 .. 3 ? "
.Attachments.Add pj
.HTMLBody = ""
.BodyFormat = 2
.GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute
.HTMLBody = Corps & oBjMail.HTMLBody
.Send
End With
Kill "P:\AAA Test\" & [B2] & ".pdf"
Application.DisplayAlerts = True
End Sub
Voilà, si j'ai réussi alors que je n'avais absolument AUCUNE notion en VBA avant cette semaine, juste grâce à l'aide de Mike (les explications que tu avais dans le premier VBA m'ont beaucoup aidé) et d'un peu de persévérance c'est que tout le monde peut réussir.
Bonne journée !
J'ai finalement réussi à faire ce que je voulais à savoir un bouton qui envoi une page Excel voici le VBA :
Sub PDFMAIL()
Application.DisplayAlerts = False
Dim ObjOutlook As Object
Dim oBjMail
Dim pj As String
Dim Corps As String
Sheets("Feuil3").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"P:\AAA Test\" & [B2] & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False _
pj = "P:\AAA Test\" & [B2] & ".pdf"
Set ObjOutlook = CreateObject("outlook.application")
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
If pj = "Faux" Then Exit Sub
If VarType(pj) = vbBoolean Then Exit Sub
Corps = "Bonjour, " & "<br><br>" _
& "1000ème TEST DE CETTE MERDEEEEEEEEEEEE " & "<br>" _
& "je reste à votre disposition pour tous renseignement complémentaire " & "<br>" _
With oBjMail
.To = [A2].Value
.CC = [A3].Value
.Subject = "test 1, 2 .. 3 ? "
.Attachments.Add pj
.HTMLBody = ""
.BodyFormat = 2
.GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute
.HTMLBody = Corps & oBjMail.HTMLBody
.Send
End With
Kill "P:\AAA Test\" & [B2] & ".pdf"
Application.DisplayAlerts = True
End Sub
Voilà, si j'ai réussi alors que je n'avais absolument AUCUNE notion en VBA avant cette semaine, juste grâce à l'aide de Mike (les explications que tu avais dans le premier VBA m'ont beaucoup aidé) et d'un peu de persévérance c'est que tout le monde peut réussir.
Bonne journée !
Re,
essaye de simplifier en remplaçant l'adresse de la pièce jointe "P:\AAA Test\" & [B2] & ".pdf"
par la syntaxe ActiveWorkbook.Path & "\" & [B2] & ".pdf" ce qui t'évitera de saisir le chemin du fichier et surtout de te tromper
Sub PDFMAIL()
Application.DisplayAlerts = False
Dim ObjOutlook As Object
Dim oBjMail
Dim pj,Corps As String
Sheets("Feuil3").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & "\" & [B2] & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False _
pj = ActiveWorkbook.Path & "\" & [B2] & ".pdf"
Set ObjOutlook = CreateObject("outlook.application")
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
If pj = "Faux" Then Exit Sub
If VarType(pj) = vbBoolean Then Exit Sub
Corps = "Bonjour, " & "<br><br>" _
& "1000ème TEST DE CETTE MERDEEEEEEEEEEEE " & "<br>" _
& "je reste à votre disposition pour tous renseignement complémentaire " & "<br>" _
With oBjMail
.To = [A2].Value
.CC = [A3].Value
.Subject = "test 1, 2 .. 3 ? "
.Attachments.Add pj
.HTMLBody = ""
.BodyFormat = 2
.GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute
.HTMLBody = Corps & oBjMail.HTMLBody
.Send
End With
Kill ActiveWorkbook.Path & "\" & [B2] & ".pdf"
Application.DisplayAlerts = True
End Sub
essaye de simplifier en remplaçant l'adresse de la pièce jointe "P:\AAA Test\" & [B2] & ".pdf"
par la syntaxe ActiveWorkbook.Path & "\" & [B2] & ".pdf" ce qui t'évitera de saisir le chemin du fichier et surtout de te tromper
Sub PDFMAIL()
Application.DisplayAlerts = False
Dim ObjOutlook As Object
Dim oBjMail
Dim pj,Corps As String
Sheets("Feuil3").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & "\" & [B2] & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False _
pj = ActiveWorkbook.Path & "\" & [B2] & ".pdf"
Set ObjOutlook = CreateObject("outlook.application")
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
If pj = "Faux" Then Exit Sub
If VarType(pj) = vbBoolean Then Exit Sub
Corps = "Bonjour, " & "<br><br>" _
& "1000ème TEST DE CETTE MERDEEEEEEEEEEEE " & "<br>" _
& "je reste à votre disposition pour tous renseignement complémentaire " & "<br>" _
With oBjMail
.To = [A2].Value
.CC = [A3].Value
.Subject = "test 1, 2 .. 3 ? "
.Attachments.Add pj
.HTMLBody = ""
.BodyFormat = 2
.GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute
.HTMLBody = Corps & oBjMail.HTMLBody
.Send
End With
Kill ActiveWorkbook.Path & "\" & [B2] & ".pdf"
Application.DisplayAlerts = True
End Sub
Salut Mike,
Oui tu as raison écrire le chemin peut-être un problème, surtout que j'ai assez souvent l'erreur : Run time error : '-2147024773 (87007b) Document not Saved
Et je ne sais absolument pas à quoi elle est du, puisque des fois l'erreur survient, et des fois le mail s'envoie sans soucis. Si tu as une idée, je suis preneur d'ailleurs.
Par contre si j'ai choisit cette option, c'est que je pense exporter cette macro à d'autres documents et pour certains je vais devoir garder une copie de la pièce jointe (J'ai juste à supprimer la ligne "Kill ..." dans la macro) et avec ta syntaxe je ne sais pas où va se sauvegarder le fichier, ce qui peut-être problématique !
Si tu as des solutions à ces problèmes (toi ou quelqu'un d'autre) je suis preneur !
Merci d'avance
Oui tu as raison écrire le chemin peut-être un problème, surtout que j'ai assez souvent l'erreur : Run time error : '-2147024773 (87007b) Document not Saved
Et je ne sais absolument pas à quoi elle est du, puisque des fois l'erreur survient, et des fois le mail s'envoie sans soucis. Si tu as une idée, je suis preneur d'ailleurs.
Par contre si j'ai choisit cette option, c'est que je pense exporter cette macro à d'autres documents et pour certains je vais devoir garder une copie de la pièce jointe (J'ai juste à supprimer la ligne "Kill ..." dans la macro) et avec ta syntaxe je ne sais pas où va se sauvegarder le fichier, ce qui peut-être problématique !
Si tu as des solutions à ces problèmes (toi ou quelqu'un d'autre) je suis preneur !
Merci d'avance
Re,
"Run time error"= "erreur de délai d'exécution"
tout dépend de la ligne qui génère l'erreur, il suffit de mettre un temporisateur de sorte à retarder d'une seconde l'application de la ligne afin de laisser le temps à la ligne précédente de terminer l'action
cette syntaxe ActiveWorkbook.Path permet d'enregistrer la copie dans le même répertoire que le fichier source
"Run time error"= "erreur de délai d'exécution"
tout dépend de la ligne qui génère l'erreur, il suffit de mettre un temporisateur de sorte à retarder d'une seconde l'application de la ligne afin de laisser le temps à la ligne précédente de terminer l'action
cette syntaxe ActiveWorkbook.Path permet d'enregistrer la copie dans le même répertoire que le fichier source
Merci pour ces précisions !
Je viens d'essayer avec ta syntaxe mais l'erreur reste la même.
La ligne qui génère l'erreur est :
Sheets("RDV du jour").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & "\" & [B2] & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Comment puis-je mettre un délai ?
J'aurais une autre question pour toi, comment mettre un message de confirmation avant l'envoi du mail (Ex : une boite de dialogue qui survient au clic et qui demande "Êtes-vous sûr de vouloir envoyer ce mail ?" Oui - Non)
Merci.
Je viens d'essayer avec ta syntaxe mais l'erreur reste la même.
La ligne qui génère l'erreur est :
Sheets("RDV du jour").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & "\" & [B2] & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Comment puis-je mettre un délai ?
J'aurais une autre question pour toi, comment mettre un message de confirmation avant l'envoi du mail (Ex : une boite de dialogue qui survient au clic et qui demande "Êtes-vous sûr de vouloir envoyer ce mail ?" Oui - Non)
Merci.
Je me répète mais j'ai vraiment besoin d'aide...
Voici mon VBA complet :
Sub PDFMAIL()
Application.DisplayAlerts = False
Dim ObjOutlook
Dim oBjMail
Dim pj As String
Dim Corps As String
Sheets("RDV").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & "\" & [B2] & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
pj = ActiveWorkbook.Path & "\" & [B2] & ".pdf"
Set ObjOutlook = CreateObject("outlook.application")
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
If pj = "Faux" Then Exit Sub
If VarType(pj) = vbBoolean Then Exit Sub
Corps = [D13].Value & vbCrLf & "<br>" _
& [D14].Value & vbCrLf & "<br>" _
& [D15].Value & vbCrLf & "<br>" _
& [D16].Value & vbCrLf & "<br>" _
& [D17].Value & vbCrLf & "<br>" _
& [D18].Value & vbCrLf
With oBjMail
.To = [D5].Value
.CC = [D7].Value
.Bcc = [D9].Value
.Subject = [D11].Value
.Attachments.Add pj
.HTMLBody = ""
.BodyFormat = 2
.GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute
.HTMLBody = Corps & oBjMail.HTMLBody
.Send
End With
Kill ActiveWorkbook.Path & "\" & [B2] & ".pdf"
Application.DisplayAlerts = True
Exit Sub
errorHandler:
MsgBox Err.Description
MsgBox "Le mail a été bien envoyé !"
End Sub
Ce que j'ai mis en gras, c'est l'endroit où est localisé mon erreur, à savoir :
VBA Runtime error : '-2147024773 (8007007b)
Et pour infos : https://www.computerperformance.co.uk/
D'après ce que j'ai compris, il manquerait quelque chose, un élément, un caractère ou je ne sais quoi dans cette partie de mon VBA.. Mais n'étant qu'un débutant je n'ai pas la moindre idée de ce que cela pourrait être.
En espérant que quelqu'un puisse m'aider, merci.
Voici mon VBA complet :
Sub PDFMAIL()
Application.DisplayAlerts = False
Dim ObjOutlook
Dim oBjMail
Dim pj As String
Dim Corps As String
Sheets("RDV").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & "\" & [B2] & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
pj = ActiveWorkbook.Path & "\" & [B2] & ".pdf"
Set ObjOutlook = CreateObject("outlook.application")
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
If pj = "Faux" Then Exit Sub
If VarType(pj) = vbBoolean Then Exit Sub
Corps = [D13].Value & vbCrLf & "<br>" _
& [D14].Value & vbCrLf & "<br>" _
& [D15].Value & vbCrLf & "<br>" _
& [D16].Value & vbCrLf & "<br>" _
& [D17].Value & vbCrLf & "<br>" _
& [D18].Value & vbCrLf
With oBjMail
.To = [D5].Value
.CC = [D7].Value
.Bcc = [D9].Value
.Subject = [D11].Value
.Attachments.Add pj
.HTMLBody = ""
.BodyFormat = 2
.GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute
.HTMLBody = Corps & oBjMail.HTMLBody
.Send
End With
Kill ActiveWorkbook.Path & "\" & [B2] & ".pdf"
Application.DisplayAlerts = True
Exit Sub
errorHandler:
MsgBox Err.Description
MsgBox "Le mail a été bien envoyé !"
End Sub
Ce que j'ai mis en gras, c'est l'endroit où est localisé mon erreur, à savoir :
VBA Runtime error : '-2147024773 (8007007b)
Et pour infos : https://www.computerperformance.co.uk/
D'après ce que j'ai compris, il manquerait quelque chose, un élément, un caractère ou je ne sais quoi dans cette partie de mon VBA.. Mais n'étant qu'un débutant je n'ai pas la moindre idée de ce que cela pourrait être.
En espérant que quelqu'un puisse m'aider, merci.