Envoi PDF en VBA
Résolu/Fermé
joseB45
Messages postés
22
Date d'inscription
jeudi 26 décembre 2013
Statut
Membre
Dernière intervention
16 septembre 2015
-
Modifié par pijaku le 12/05/2014 à 09:43
tilo75 Messages postés 48 Date d'inscription mardi 19 novembre 2013 Statut Membre Dernière intervention 13 mai 2014 - 13 mai 2014 à 09:27
tilo75 Messages postés 48 Date d'inscription mardi 19 novembre 2013 Statut Membre Dernière intervention 13 mai 2014 - 13 mai 2014 à 09:27
A voir également:
- Envoi PDF en VBA
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Save as pdf - Télécharger - Bureautique
- Comment faire un pdf - Guide
- Comment modifier un pdf - Guide
- Comment réduire la taille d'un pdf - Guide
8 réponses
yannpl7
Messages postés
1509
Date d'inscription
lundi 10 décembre 2007
Statut
Membre
Dernière intervention
20 novembre 2015
303
Modifié par pijaku le 12/05/2014 à 09:42
Modifié par pijaku le 12/05/2014 à 09:42
Ci dessous une macro que je me suis servi dans le passé
celui qui détient le savoir détient le pouvoir
' configuration SMTP pour envoi de mail Public Const MAIL_SENDUSING = 2 Public Const MAIL_AUTHENTICATE = 1 Public Const MAIL_CPT_SENDUSR = "expediteur@gmail.com" Public Const MAIL_CPT_SENDPASS = "motdepasseexpéditeur" Public Const MAIL_FROM = "expediteur@gmail.com" Public Const MAIL_SMTP_SERVER = "smtp.gmail.com" Public Const MAIL_SMTP_SERVERPORT = 465 '''""""""""""""""""""""""""""""""""""""""""""""""""""''' ' ' FONCTION : envoyer un mail par SMTP ' pstrTo : 1 ou plusieurs destinataire(s) ' pstrSubject : objet du mail ' pvarAttachFile : 1 ou plusieurs fichiers joints - string ou array de string ' '''""""""""""""""""""""""""""""""""""""""""""""""""""''' Public Function SMTPSendMail(pstrTo As String, pstrSubject As String, Optional pvarAttachFile As Variant) As Boolean On Error GoTo SMTPSendMail_Err Dim i As Long Dim objEmail As New CDO.Message 'Set objEmail = CreateObject("CDO.Message") objEmail.From = MAIL_FROM objEmail.To = pstrTo objEmail.Subject = pstrSubject ' Aucun corps de message, uniquement la pièce jointe ' laisser un TextBody avec chaine vide, sinon le mail peut planter (pièce jointe incomplète) objEmail.TextBody = "By yannpl7" ' Ajout de la pièce jointe, 1 ou plusieurs fichiers If Not IsMissing(pvarAttachFile) Then If IsArray(pvarAttachFile) Then ' parcourrir le tableau For i = LBound(pvarAttachFile) To UBound(pvarAttachFile) objEmail.AddAttachment pvarAttachFile(i) Next i Else objEmail.AddAttachment pvarAttachFile End If End If With objEmail.Configuration.Fields .Item(CdoConfiguration.cdoSendUsingMethod) = MAIL_SENDUSING .Item(CdoConfiguration.cdoSMTPAuthenticate) = MAIL_AUTHENTICATE .Item(CdoConfiguration.cdoSendUserName) = MAIL_CPT_SENDUSR .Item(CdoConfiguration.cdoSendPassword) = MAIL_CPT_SENDPASS .Item(CdoConfiguration.cdoSMTPServer) = MAIL_SMTP_SERVER .Item(CdoConfiguration.cdoSMTPServerPort) = MAIL_SMTP_SERVERPORT .Item("[http://schemas.microsoft.com/cdo/configuration/smtpusessl]") = "true" .Update End With objEmail.Send SMTPSendMail = True Exit Function SMTPSendMail_Err: MsgBox Err.Description End Function Sub envoiemail() Dim result As Variant Dim file As Variant file = "C:\repertoiredufichier\" & "Nomdufichier" & & ".PDF" result = SMTPSendMail("destinataire@desti.fr", "Titre", file) End Sub
celui qui détient le savoir détient le pouvoir
joseB45
Messages postés
22
Date d'inscription
jeudi 26 décembre 2013
Statut
Membre
Dernière intervention
16 septembre 2015
12 mai 2014 à 09:42
12 mai 2014 à 09:42
ok merci yannpl7
je vais essayer d'adapter ca a mon cas
petites questions =
//Public Const MAIL_CPT_SENDPASS = "motdepasseexpéditeur"// est ce obligatoire ?
//result = SMTPSendMail("destinataire@desti.fr", "Titre", file)// puis je laisser le champs du destinataire vide ?
je vais essayer d'adapter ca a mon cas
petites questions =
//Public Const MAIL_CPT_SENDPASS = "motdepasseexpéditeur"// est ce obligatoire ?
//result = SMTPSendMail("destinataire@desti.fr", "Titre", file)// puis je laisser le champs du destinataire vide ?
yannpl7
Messages postés
1509
Date d'inscription
lundi 10 décembre 2007
Statut
Membre
Dernière intervention
20 novembre 2015
303
Modifié par yannpl7 le 12/05/2014 à 09:55
Modifié par yannpl7 le 12/05/2014 à 09:55
Si tu veux envoyé un email il faut obligatoirement renseigner le mot de passe du compte de l'expéditeur et une adresse d'un destinataire.
attention petite correction
Merci à pijaku pour l'info
celui qui détient le savoir détient le pouvoir
attention petite correction
file = "C:\repertoiredufichier\" & "Nomdufichier" & ".PDF"
Merci à pijaku pour l'info
celui qui détient le savoir détient le pouvoir
tilo75
Messages postés
48
Date d'inscription
mardi 19 novembre 2013
Statut
Membre
Dernière intervention
13 mai 2014
12 mai 2014 à 12:22
12 mai 2014 à 12:22
Bonjour, yann et josé
Je me permets de rentrer dans votre discussion car j'ai un sujet similaire que j'essai de résoudre mais en vain.
J'utilise la macro suivante pour laquelle je veux rajouter d'autres pièces jointes (feuilles excel qui viennent du même fichier) à l'envoie d'un email .
J'ai essayé de faire mettre deux fois ActiveWorkbook.SendMail Recipients, _... mais ne marche pas, il créé deux emails, ce qui est logique en soit.
J'ai essayé aussi "attachement .add" "add" Sheets("C").Copy mais ne marche pas aussi
Est ce que vous avez une idée?
Merci d'avance
Je me permets de rentrer dans votre discussion car j'ai un sujet similaire que j'essai de résoudre mais en vain.
J'utilise la macro suivante pour laquelle je veux rajouter d'autres pièces jointes (feuilles excel qui viennent du même fichier) à l'envoie d'un email .
Sub Envoyer_Email()
Dim DrLig As Long, maDate As String
Sheets("A").Copy
maDate = Format(Now, " yyyy.mm.dd hh-mm")
DrLig = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row + 1 'Cherche la première ligne vide de la colonne 1 (colonne A)
Rows(DrLig & ":" & Rows.Count).EntireRow.Delete 'Supprime entièrement toutes les lignes de la ligne DrLig (première ligne vide) jusqu'à la toute dernière
ActiveWorkbook.SaveAs Filename:="B" & maDate & ".xlsx"
ActiveWorkbook.SendMail Recipients, _
Subject:="B"
ActiveWorkbook.Close savechanges:=False
End sub
J'ai essayé de faire mettre deux fois ActiveWorkbook.SendMail Recipients, _... mais ne marche pas, il créé deux emails, ce qui est logique en soit.
J'ai essayé aussi "attachement .add" "add" Sheets("C").Copy mais ne marche pas aussi
Est ce que vous avez une idée?
Merci d'avance
joseB45
Messages postés
22
Date d'inscription
jeudi 26 décembre 2013
Statut
Membre
Dernière intervention
16 septembre 2015
12 mai 2014 à 11:03
12 mai 2014 à 11:03
je me retrouve avec un message d'alerte a l'execution du code
//attribut incorrect dans une procédure sub ou function//
et j'ai le premier "Public const" surligné en bleu
//attribut incorrect dans une procédure sub ou function//
et j'ai le premier "Public const" surligné en bleu
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
yannpl7
Messages postés
1509
Date d'inscription
lundi 10 décembre 2007
Statut
Membre
Dernière intervention
20 novembre 2015
303
12 mai 2014 à 11:12
12 mai 2014 à 11:12
Les Public Const doivent se trouvées tout au dessus du code et non dans un SUB. Enregistre ton fichier ferme le et relance le
joseB45
Messages postés
22
Date d'inscription
jeudi 26 décembre 2013
Statut
Membre
Dernière intervention
16 septembre 2015
12 mai 2014 à 11:27
12 mai 2014 à 11:27
ok cette alerte a disparu, j'avais mis tout ton code entre sub et end sub ^^
mais comme j'y vais au pas a pas vu que je suis nul en vba j'ai une autre alerte
//erreur compilation : type defini par utilisateur non defini//
objEmail As New CDO.Message surligné en bleu
je pense que j'ai du oublié de changer quelque chose
mais comme j'y vais au pas a pas vu que je suis nul en vba j'ai une autre alerte
//erreur compilation : type defini par utilisateur non defini//
objEmail As New CDO.Message surligné en bleu
je pense que j'ai du oublié de changer quelque chose
yannpl7
Messages postés
1509
Date d'inscription
lundi 10 décembre 2007
Statut
Membre
Dernière intervention
20 novembre 2015
303
12 mai 2014 à 11:34
12 mai 2014 à 11:34
Non c'est moi qui est oublié quelque chose
Dans Ton visual Basic tu va dans Outils -> Références
et tu coche Microsoft CDO for Windows 2000 Library puis OK
Dans Ton visual Basic tu va dans Outils -> Références
et tu coche Microsoft CDO for Windows 2000 Library puis OK
joseB45
Messages postés
22
Date d'inscription
jeudi 26 décembre 2013
Statut
Membre
Dernière intervention
16 septembre 2015
12 mai 2014 à 12:36
12 mai 2014 à 12:36
grand merci yannpl7
ca fonctionne nickel !
tilo75 je ne peux pas t'aider, mais je suis sur qu'un cador vba viendra a ton aide
a bientot
ca fonctionne nickel !
tilo75 je ne peux pas t'aider, mais je suis sur qu'un cador vba viendra a ton aide
a bientot
tilo75
Messages postés
48
Date d'inscription
mardi 19 novembre 2013
Statut
Membre
Dernière intervention
13 mai 2014
13 mai 2014 à 09:27
13 mai 2014 à 09:27
Merci d'avoir répondu josé, même si tu n'as pas de réponses à m'offrir. Effectivement, j'espère qu'un cador VBA viendra.
Modifié par pijaku le 12/05/2014 à 09:43
Lorsque vous placez du code sur notre forum, merci d'utiliser les balises code à votre disposition.
Le mode d'emploi (au cas ou) est ICI.
Cordialement,
pijaku