pdf-file mailen

Status
Niet open voor verdere reacties.

Oude leerling

Gebruiker
Lid geworden
30 aug 2010
Berichten
554
Geacht forum

Ik heb een factuur gemaakt en deze opgeslagen als een .pdf file.

Nu wil ik deze pdf-file ook via een code versturen naar mijn klant
en ook uitprinten.
Ik had een CDO-code gevonden maar die geeft de fout dat het gegevenstype niet gedefinieerd is. (zie mijn poging in de bijlage)
Weet u voor deze 2 problemen een oplossing.
Ik heb Gmail en werk met office 2016

Jaap



Sub Macro1()

Dim Naam As String

Naam = Range("B6").Value & " " & Range("D16").Value

ChDir "C:\Users\Gebruiker\Documents\Facturen 2017"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Naam & ".pdf"

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True



Code:
    With New CDO.Message
.Configuration(cdoSendUsingMethod) = 2
.Configuration(cdoSMTPServer) = "smtp.gmail.com"
.Configuration(cdoSMTPServerPort) = 465
.Configuration(cdoSMTPusessl) = True
.Configuration(cdoSMTPconnectiontimeout) = 60
.Configuration(cdoSMTPauthenticate) = 1
.Configuration(cdosendusername) = "[COLOR="#0000FF"]*knip*[/COLOR]"
.Configuration(cdosendpassword) = "[COLOR="#0000FF"]*knip*[/COLOR]"
.Configuration.Fields.Update
.addattachment ThisWorkbook.Path & "\Filename:=Naam & ".pdf"
.To = "G.Gerritsen@quicknet.nl"
.CC = " "
.BCC = " "
.From = "J.Zandvliet@gmail.com"
.Subject = "Factuur"
.TextBody = "Factuur"
.Send
    End With
     
End Sub
 

Bijlagen

  • Test mailen.xlsm
    40,7 KB · Weergaven: 42
Laatst bewerkt door een moderator:
Bij verwijzingen:
'Microsoft CDO for Windosw 2000 library' aanvinken.

Code:
With CreateObject("CDO.Message")

Code:
.addattachment ThisWorkbook.Path & "\" & Naam & ".pdf"
 
Beste Jaap,

Hoewel de gegevens uit uw code niet (meer) kloppen heb ik ze er toch even uitgehaald.
Het is ten zeerste aan te raden om niet uw persoonlijke info (zoals geboortejaar / email adres) publiekelijk te maken op het internet.

m.v.g,
Rick van Lieshout
 
Haal die quote van gast0660 dan ook maar even weg. Lijkt me een redelijk duidelijk hint naar de informatie die keurig uit het starttopic verwijderd is.
 
@Rogers
Zelf aangepast,blijft nog één email adres over.
 
De mailadressen en geboortejaar waren willekeurige gegevens al hoewel het jaartal wel in de buurt kwam.
Ik begrijp het en zal , als zoiets nog eens voorkomt , dat soort gegevens weglaten.

Harry jouw oplossing was de juiste en het werkte. Super bedankt

Alle anderen bedankt voor de les

Jaap
 
Graag gedaan Jaap.

Ik had de moderator maar even ingelicht, dacht dat het je echte wachtwoord was. :eek:
 
Als het mailadres in een adreslijst staat, hoe krijg ik dan dat adres in CDO-code Configuration(cdosendusername) =

Jaap
 
Met zo weinig info erover kan ik alleen maar zeggen dat je dat adres uit die lijst moet lezen.
 
Dus dan zo:
Configuration(cdosendusername) = Sheets("Factuur").Range("B10").Value
 
edmoor ,

Simpel.
Ik zocht het weer veel te ver .
Alles werkt nu prima.
Bedankt voor de reacties.
Vriendelijke groet , Jaap
 
In de CDO-code staat ook het item "TextBody" .
Hier kan een tekst ingevuld worden. b.v. "Groetjes Jaap"
Nu heb ik in blad("Herinnering") een standaard betalingsherinnering brief staan.
Hoe krijg ik nu deze brief als tekst in de mail?
Ik heb het simpel geprobeerd met TextBody = Sheets("Herinnering") , maar dat lukt niet.

Jaap
 
Dat is precies hetzelfde als voor je vraag over het email adres waarop ik in #13 antwoord gaf.
Als het niet lukt, laat dan eens zien wat er in Sheets("Herinnering") staat.
 
Laatst bewerkt:
Deze tekst staat in blad "Herinnering" en komt dan met de foutmelding , "type komen niet overeen"



Geachte Klant,

Uit onze administratie is gebleken dat bijgevoegde factuur 2017-102 ad € 125,00 nog niet is voldaan.
Vermoedelijk hebt u deze factuur over het hoofd gezien.
De betalingstermijn van 30 dagen is reeds verstreken.
Wij verzoeken u daarom om binnen 7 dagen het openstaande bedrag over te maken op rekeningnummer

Indien uw betaling deze brief heeft gekruist, kunt u deze betalingsherinnering als niet verzonden beschouwen.

Hoogachtend,
 
Het gaat uiteraard om het bereik waarin dit staat en niet de tekst zelf.
 
Deze code staat er nu
TextBody = Sheets("Herinnering").Range("B2:M13").Value

Hij blijft met dezelfde foutmelding komen. "Type komen niet overeen."
 
Dat lijkt me ook niet vreemd. Het gebied B2:M13 bestaat uit 121 cellen.
Je kunt geen cellen in een tekstvariabele proppen.

Als je de tekst uit deze 121 cellen in 1 cel schrijft gaat het al een stuk handiger.

Als je dat niet wil kan het nog met deze macro:

Code:
Sub M_van_klembord_halen()
    Range("B2:M13").Copy
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
       .GetFromClipboard
       Textbody = Replace(Replace(.GetText, vbTab, " "), vbCrLf, vbLf)
    End With
    
    MsgBox Textbody
End Sub

PS. de msgbox staat er alleen maar om het resultaat van deze code te illustreren. Daarna kun je hem verwijderen.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan