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
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
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
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige