HERBERS Excel-Forum - das Archiv
Hilfe bei VBA-Code
Bernd

Hallo zusammen,
brauche wieder Hilfe bei folgendem Problem.
Habe eine Exceldatei mit 20 TabBlätter, bei der das Blatt "Total" als pdf-Datei über Button erzeugt wird und im selben Ordner abgelegt wird, wo die Exceldatei sich befindet.
Diese pdf-Datei (hat den gleichen Namen wie die Exceldatei z.B "name_vorname_datum.pdf) möchte ich als Dateianhang per Outlook versenden. In Outlook muss im "Betreff" der Eintrag "Zusammenfassung" erscheinen und im Body der Email soll folgender Text stehen ...
"Sehr geehrte(r) Kunde(in),
anbei übersende ich Ihnen die Zusammenfassung Ihrer Daten.
Mit freundlichen Grüßen
Bernd Kiehl"
Wäre toll, wenn jemand eine Lösung hätte.
Danke schon mal im Voraus.
Gruß aus dem kalten Bremen
Bernd Kiehl

AW: Hilfe bei VBA-Code
Josef

Hallo Bernd,
den Empfänger musst du noch eintragen.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub sendPDF()
  Dim OutApp As Object, OutMail As Object
  Dim strBody As String, strFile As String
  
  On Error GoTo ErrExit
  
  strFile = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, ".") - 1) & ".pdf"
  
  If Dir(strFile, vbNormal) <> "" Then
    
    With Application
      .EnableEvents = False
      .ScreenUpdating = False
    End With
    
    strBody = "Sehr geehrte(r) Kunde(in)," & vbLf & vbLf
    strBody = strBody & "anbei übersende ich Ihnen die Zusammenfassung Ihrer Daten." & vbLf & vbLf
    strBody = strBody & "Mit freundlichen Grüßen" & vbLf
    strBody = strBody & "Bernd Kiehl"
    
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
    
    Set OutMail = OutApp.CreateItem(0)
    
    With OutMail
      .To = ""
      .Subject = "Zusammenfassung"
      .Body = strBody
      .Attachments.Add strFile
      .Display ' oder .Send
    End With
    
  End If
  
  ErrExit:
  
  With Application
    .EnableEvents = True
    .ScreenUpdating = True
  End With
  
  Set OutMail = Nothing
  Set OutApp = Nothing
End Sub

Gruß Sepp

AW: Hilfe bei VBA-Code
Bernd

Hallo Sepp,
oh, Asche über mein Haupt, hatte in der Aufregung vergessen zu erwähnen, dass die Empfänger-eMail-Adresse in TabBlatt "Kd Name" in Zelle B14 steht.
Kannst du das bitte noch einfügen in deinen Code, dann wäre ich dir sehr dankbar!!!
Gruß Bernd
AW: Hilfe bei VBA-Code
Josef

Hallo Bernd,
schreib bei .To statt = "", = Sheets("Kd Name").Range("B14")
Gruß Sepp

AW: Hilfe bei VBA-Code
Bernd

Hallo Sepp,
hab gerade alles getestet und funktioniert toll.
Darf mich bei Dir nochmal herzlich bedanken für Deine schnelle und kompetente Hilfe.
Dir und deinen Angehörigen wünsche ich ein gesundes und friedliches Weihnachtsfest.
Gruß aus dem kalten Bremen
Bernd
Auch ich wünsche Dir...
Josef

...und Deinen Lieben ein besinnliches Weihnachtsfest.
Gruß Sepp