EXCEL : Envoi de mails automatisés
Résolu/Fermé
Damaged
-
Modifié par Damaged le 15/03/2013 à 10:36
Villette54 Messages postés 300 Date d'inscription vendredi 15 mars 2013 Statut Membre Dernière intervention 31 juillet 2018 - 20 mars 2013 à 13:59
Villette54 Messages postés 300 Date d'inscription vendredi 15 mars 2013 Statut Membre Dernière intervention 31 juillet 2018 - 20 mars 2013 à 13:59
A voir également:
- EXCEL : Envoi de mails automatisés
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
- Déplacer une colonne excel - Guide
16 réponses
Villette54
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
28
18 mars 2013 à 08:29
18 mars 2013 à 08:29
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
Mike-31
Messages postés
18353
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
31 décembre 2024
5 110
18 mars 2013 à 10:57
18 mars 2013 à 10:57
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
Villette54
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
28
18 mars 2013 à 12:00
18 mars 2013 à 12:00
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.
Mike-31
Messages postés
18353
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
31 décembre 2024
5 110
Modifié par Mike-31 le 18/03/2013 à 13:03
Modifié par Mike-31 le 18/03/2013 à 13:03
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
Villette54
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
28
18 mars 2013 à 13:18
18 mars 2013 à 13:18
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.
Mike-31
Messages postés
18353
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
31 décembre 2024
5 110
18 mars 2013 à 15:43
18 mars 2013 à 15:43
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
Villette54
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
28
Modifié par Villette54 le 18/03/2013 à 16:30
Modifié par Villette54 le 18/03/2013 à 16:30
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.
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
20 mars 2013 à 09:26
20 mars 2013 à 09:26
Bonjour à tous,
Je me pose un peu la, mais as-tu pensé à cocher la librairie CDO dans Outils>Références ?
Le nom de la librairie : "Microsoft CDO for Windows XXXX Library"
Je me pose un peu la, mais as-tu pensé à cocher la librairie CDO dans Outils>Références ?
Le nom de la librairie : "Microsoft CDO for Windows XXXX Library"
Villette54
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
28
20 mars 2013 à 10:31
20 mars 2013 à 10:31
Effectivement je ne l'avais pas fais, mais j'ai changé de macro à l'heure actuelle.
Ce problème est donc résolu, mais il m'en reste d'autre (Cf. Un peu plus bas) peut-être pourras-tu m'aider !
Ce problème est donc résolu, mais il m'en reste d'autre (Cf. Un peu plus bas) peut-être pourras-tu m'aider !
Mike-31
Messages postés
18353
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
31 décembre 2024
5 110
18 mars 2013 à 21:41
18 mars 2013 à 21:41
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
Villette54
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
28
19 mars 2013 à 08:23
19 mars 2013 à 08:23
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
Villette54
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
28
Modifié par Villette54 le 19/03/2013 à 14:17
Modifié par Villette54 le 19/03/2013 à 14:17
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 !
Mike-31
Messages postés
18353
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
31 décembre 2024
5 110
19 mars 2013 à 15:51
19 mars 2013 à 15:51
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
Villette54
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
28
20 mars 2013 à 08:34
20 mars 2013 à 08:34
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
Mike-31
Messages postés
18353
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
31 décembre 2024
5 110
20 mars 2013 à 08:49
20 mars 2013 à 08:49
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
Villette54
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
28
20 mars 2013 à 09:19
20 mars 2013 à 09:19
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.
Villette54
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
28
Modifié par Villette54 le 20/03/2013 à 12:08
Modifié par Villette54 le 20/03/2013 à 12:08
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.
Villette54
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
28
20 mars 2013 à 13:59
20 mars 2013 à 13:59
Problème réglé.
Merci quand même.
Merci quand même.