Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Excel Bereich als pdf Anhang senden

Excel Bereich als pdf Anhang senden
12.11.2018 14:26:40
Nicolai
Hallo Zusammen,
ich bin auf der Suche nach einem Makro, welches einen bestimmten Bereich (A1:D20) als PDF Anhang versendet.
Ich habe leider nur Makros gefunden, welche entweder nicht funktionieren oder sie nur eine Bereich in eine E-Mail kopieren.
Vielen Dank & freundliche Grüße,
Nicolai Sattler
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Bereich als pdf Anhang senden
12.11.2018 14:36:25
japes36

Sub PDFundSenden()
Dim OutlookAPP As Object
Dim OutlookMailItem As Object
Dim strPDF As String
Const strPath As String = "K:\100_DE_After_Sales\280_Sales_Consultant\600_Umsatzreport_\"
strPDF = strPath & Range("Z18")
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPDF
Set OutlookAPP = CreateObject("outlook.application")
Set OutlookMailItem = OutlookAPP.CreateItem(0)
With OutlookMailItem
.to = Range("Z15")
.Subject = Range("Z16")
.Body = "xx"
.Attchements.Add strPDF
'.send
.Display
End With
Set OutlookAPP = Nothing
Set OutlookMailItem = Nothing
End Sub

Anzeige
AW: Excel Bereich als pdf Anhang senden
12.11.2018 14:36:31
japes36

Sub PDFundSenden()
Dim OutlookAPP As Object
Dim OutlookMailItem As Object
Dim strPDF As String
Const strPath As String = "K:\100_DE_After_Sales\280_Sales_Consultant\600_Umsatzreport_\"
strPDF = strPath & Range("Z18")
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPDF
Set OutlookAPP = CreateObject("outlook.application")
Set OutlookMailItem = OutlookAPP.CreateItem(0)
With OutlookMailItem
.to = Range("Z15")
.Subject = Range("Z16")
.Body = "xx"
.Attchements.Add strPDF
'.send
.Display
End With
Set OutlookAPP = Nothing
Set OutlookMailItem = Nothing
End Sub

Anzeige
AW: Excel Bereich als pdf Anhang senden
12.11.2018 14:36:34
japes36

Sub PDFundSenden()
Dim OutlookAPP As Object
Dim OutlookMailItem As Object
Dim strPDF As String
Const strPath As String = "K:\100_DE_After_Sales\280_Sales_Consultant\600_Umsatzreport_\"
strPDF = strPath & Range("Z18")
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPDF
Set OutlookAPP = CreateObject("outlook.application")
Set OutlookMailItem = OutlookAPP.CreateItem(0)
With OutlookMailItem
.to = Range("Z15")
.Subject = Range("Z16")
.Body = "xx"
.Attchements.Add strPDF
'.send
.Display
End With
Set OutlookAPP = Nothing
Set OutlookMailItem = Nothing
End Sub

Anzeige
AW: Excel Bereich als pdf Anhang senden
12.11.2018 14:36:53
japes36

Sub PDFundSenden()
Dim OutlookAPP As Object
Dim OutlookMailItem As Object
Dim strPDF As String
Const strPath As String = "K:\100_DE_After_Sales\280_Sales_Consultant\600_Umsatzreport_\"
strPDF = strPath & Range("Z18")
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPDF
Set OutlookAPP = CreateObject("outlook.application")
Set OutlookMailItem = OutlookAPP.CreateItem(0)
With OutlookMailItem
.to = Range("Z15")
.Subject = Range("Z16")
.Body = "xx"
.Attchements.Add strPDF
'.send
.Display
End With
Set OutlookAPP = Nothing
Set OutlookMailItem = Nothing
End Sub

Anzeige
AW: Excel Bereich als pdf Anhang senden
12.11.2018 16:49:00
niclaus
Hallo Namensvetter
Ich hätte da auch noch etwas. - Im Makro musst Du anpassen:
· den Ordner, in dem der Tabellenausschnitt gespeichert wird
· den Empfänger-Namen - kann auch leer bleiben
· Subject und Body - können auch leer bleiben
Bei mir mit Office 2013 klappt das so bestens. Ich hoffe bei Dir auch.
Grüsse Nicolaus
Sub Makro2()
' Ausschnitt aus Tabelle als PDF verschicken
Dim mgb
Dim ordner$, dateiname$, AWS$, Empfaenger$
Dim MyMessage As Object, MyOutApp As Object
Dim Qe As Integer
mgb = MsgBox("Ist Outlook geoeffnet?", 36, Environ("UserName"))
If mgb = 7 Then Exit Sub
Empfaenger = "xxxxx@bluewin.ch"
ordner = "D:\Documents\0000_TEST2\"
dateiname = Format(Now, "yyyymmdd_hhmmss") & ".pdf"
' Auswahl der Excel-Tabelle wird als PDF erstellt
Range("A1:D20").Select
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ordner & dateiname, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
'Outlook Object und Nachricht erstellen
'Absender ist die Standard-Versand-Adresse
AWS = ordner & dateiname
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.To = Empfaenger
.Subject = "pdf Versand"    ' Betreff
.Attachments.Add AWS
.Body = "irgend ein Text"   ' Ein Text im Email.
.Display
'.Send      ' statt .Display! - Mail wird direkt verschickt.
End With
'Variablen leeren
Set MyOutApp = Nothing
Set MyMessage = Nothing
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel Bereich als PDF Anhang versenden


Schritt-für-Schritt-Anleitung

Um einen ausgewählten Bereich in Excel als PDF zu speichern und als Anhang zu versenden, kannst du die folgenden Schritte befolgen:

  1. Öffne Excel und erstelle oder lade deine Tabelle, die du versenden möchtest.

  2. Aktiviere die Entwicklertools:

    • Gehe zu „Datei“ > „Optionen“ > „Menüband anpassen“ und aktiviere „Entwicklertools“.
  3. Füge ein Makro hinzu:

    • Klicke auf „Entwicklertools“ > „Visual Basic“.
    • Wähle „Einfügen“ > „Modul“ und füge den folgenden VBA-Code ein:
    Sub PDFundSenden()
       Dim OutlookAPP As Object
       Dim OutlookMailItem As Object
       Dim strPDF As String
       Const strPath As String = "K:\Dein_Pfad\"
       strPDF = strPath & Range("Z18").Value & ".pdf"
       ActiveSheet.Range("A1:D20").ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPDF
       Set OutlookAPP = CreateObject("Outlook.Application")
       Set OutlookMailItem = OutlookAPP.CreateItem(0)
       With OutlookMailItem
           .To = Range("Z15").Value
           .Subject = Range("Z16").Value
           .Body = "Hier ist der PDF-Anhang."
           .Attachments.Add strPDF
           .Display ' Zum Senden direkt .Send verwenden
       End With
       Set OutlookAPP = Nothing
       Set OutlookMailItem = Nothing
    End Sub
  4. Passe den Code an:

    • Ändere den strPath, um den Speicherort für die PDF-Datei festzulegen.
    • Stelle sicher, dass die Zellen Z15, Z16 und Z18 die richtigen E-Mail-Adresse, Betreff und Dateinamen enthalten.
  5. Führe das Makro aus:

    • Schließe den VBA-Editor und kehre zu Excel zurück.
    • Klicke auf „Makros“ und wähle das Makro aus, um es auszuführen.

Häufige Fehler und Lösungen

  • Outlook öffnet sich nicht: Stelle sicher, dass Outlook installiert und richtig konfiguriert ist.
  • PDF wird nicht erstellt: Überprüfe den angegebenen Pfad und stelle sicher, dass du Schreibrechte für den Ordner hast.
  • E-Mail wird nicht gesendet: Wenn du .Display verwendest, wird die E-Mail nur angezeigt. Um sie zu senden, ändere .Display in .Send.

Alternative Methoden

Falls du kein VBA nutzen möchtest, kannst du auch manuell einen Excel-Bereich als PDF speichern:

  1. Bereich auswählen: Markiere den gewünschten Bereich in deiner Excel-Tabelle.
  2. Exportieren: Gehe zu „Datei“ > „Exportieren“ > „PDF/XPS-Dokument erstellen“.
  3. Einstellungen wählen: Wähle „Ausgewählte Tabelle“ und speichere die PDF-Datei.
  4. E-Mail senden: Öffne dein E-Mail-Programm und füge die PDF-Datei als Anhang hinzu.

Praktische Beispiele

Hier sind zwei praktische Beispiele für das Makro:

  1. Einfaches Beispiel: Das folgende Makro speichert den Bereich A1:D20 als PDF und sendet es an eine festgelegte E-Mail-Adresse.

    Sub EinfachesBeispiel()
       ' Ähnlich wie vorher
    End Sub
  2. Dynamisches Beispiel: Dieses Makro fragt den Benutzer nach der E-Mail-Adresse und dem Betreff.

    Sub DynamischesBeispiel()
       Dim Empfaenger As String
       Empfaenger = InputBox("Bitte E-Mail-Adresse eingeben:")
       ' Der Rest des Codes bleibt gleich
    End Sub

Tipps für Profis

  • Automatisierung: Nutze die Workbook_Open-Ereignisprozedur, um das Makro beim Öffnen der Datei automatisch auszuführen.
  • Fehlerbehandlung: Implementiere On Error GoTo, um besser mit unerwarteten Fehlern umzugehen.
  • PDF-Qualität: Passe die Quality-Eigenschaft in ExportAsFixedFormat an, um die PDF-Qualität zu steuern.

FAQ: Häufige Fragen

1. Wie speichere ich nur einen markierten Bereich als PDF?
Verwende die ActiveSheet.Range("DeinBereich").ExportAsFixedFormat Methode, um nur den gewünschten Bereich zu speichern.

2. Kann ich das Makro in Excel für Mac verwenden?
Die Verwendung von VBA-Makros in Excel für Mac ist eingeschränkt. Überprüfe die Kompatibilität und passe den Code gegebenenfalls an.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige