VBA pb avec macro d'envoi d'un pdf par email via gmail

superbog

XLDnaute Occasionnel
Bonsoir,

Voilà j'ai fait une macro pour enregister une feuille sous pdf puis l'envoyer par email via gmail (en webmail) mais ca ne marche pas
pourriez vous m'aider à corriger ma macro, la voici

Code:
Sub email_pdf()

 Dim dossier As String
Dim nomNewClasseur As String
Dim CdoMessage As Object
Dim email As String
Dim Cdo_Message As Object

dossier = Range("A9")
email =Range("E15")
nomNewClasseur = Range("A9") & "-" & Format(Range("F2"), "ddmmyy") & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\\ecap\" & nomNewClasseur, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
  
Set Cdo_Message.Configuration = GetSMTPServerConfig()

    Set CdoMessage = CreateObject("CDO.Message")
    With CdoMessage
        .Subject = "Etat financier de votre dossier"
        .From = "moi@moi.com"
        .To = email
        .cc = ""
        .BCC = ""
        .TextBody = "Vous trouverez ci-joint un état "
        .AddAttachment "C:\Users\recap\" & nomNewClasseur
        .Send
    End With
    
    Set CdoMessage = Nothing


End Sub

Function GetSMTPServerConfig() As Object

Dim Cdo_Config As Object
Dim Cdo_Fields As Object
Dim Cdo_Config As Object

Set Cdo_Fields = Cdo_Config.Fields
With Cdo_Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = "smtp.gmail.com"
.Item(cdoSMTPServerPort) = 465
.Item(cdoSendUserName) = "monadresse"
.Item(cdoSendPassword) = "mon paswword"
.Item(cdoSMTPAuthenticate) = cdoBasic
.Item(cdoSMTPUseSSL) = True
.Update
End With
Set GetSMTPServerConfig = Cdo_Config
Set Cdo_Config = Nothing
Set Cdo_Fields = Nothing
End Function
 
End Sub

je précise que je n'ai aucun logiciel de courrier, je n'utilise que gmail en webmail

je vous joins aussi le classeur test, si vous pouviez m'aider, je suis perdue

merci d'avance
 

Pièces jointes

  • testemail.xlsm
    23.1 KB · Affichages: 99

francedemo

XLDnaute Occasionnel
Re : VBA pb avec macro d'envoi d'un pdf par email via gmail

bonjour superbog,

à essayer en pce jointe

il y avait une erreur de frappe dans le chemin de ton dossier

je ne sais pas si ça suffit...
à+
 

Pièces jointes

  • Copie de testemail.xlsm
    25 KB · Affichages: 110

superbog

XLDnaute Occasionnel
Re : VBA pb avec macro d'envoi d'un pdf par email via gmail

c'est un fichier test, cette erreur ne change rien, la macro ne fonctionne pas

Code:
Sub email_pdf()

 Dim dossier As String
Dim nomNewClasseur As String
Dim CdoMessage As Object
Dim email As String
Dim Cdo_Message As Object

dossier = Range("A9")
email =Range("E15")
nomNewClasseur = Range("A9") & "-" & Format(Range("F2"), "ddmmyy") & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\ecap\" & nomNewClasseur, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
  
Set Cdo_Message.Configuration = GetSMTPServerConfig()

    Set CdoMessage = CreateObject("CDO.Message")
    With CdoMessage
        .Subject = "Etat financier de votre dossier"
        .From = "moi@moi.com"
        .To = email
        .cc = ""
        .BCC = ""
        .TextBody = "Vous trouverez ci-joint un état "
        .AddAttachment "C:\Users\recap\" & nomNewClasseur
        .Send
    End With
    
    Set CdoMessage = Nothing


End Sub

Function GetSMTPServerConfig() As Object

Dim Cdo_Config As Object
Dim Cdo_Fields As Object
Dim Cdo_Config As Object

Set Cdo_Fields = Cdo_Config.Fields
With Cdo_Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = "smtp.gmail.com"
.Item(cdoSMTPServerPort) = 465
.Item(cdoSendUserName) = "monadresse"
.Item(cdoSendPassword) = "mon paswword"
.Item(cdoSMTPAuthenticate) = cdoBasic
.Item(cdoSMTPUseSSL) = True
.Update
End With
Set GetSMTPServerConfig = Cdo_Config
Set Cdo_Config = Nothing
Set Cdo_Fields = Nothing
End Function
 
End Sub
 

Statistiques des forums

Discussions
312 193
Messages
2 086 062
Membres
103 110
dernier inscrit
Privé