Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1896to1900
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Code erweitern um PDF Senden

Code erweitern um PDF Senden
06.09.2022 16:43:38
Bernhard
Hallo zusammen,
ich habe von Fennek folgenden Code bekommen und habe Ihn um das Abspeichern der Datei als PDF in einem bestimmten Pfad erweitert.
Was ich nicht hinbekomme ist, das dieses PDF dann als Anhang in Outlook an eine Vordefinierte E-Mail Adresse gesendet wird.

Sub Serienbrief()
Const Bewertung As String = "G:\SteloTec\Managementsystem\Einkauf\Lieferantenbewertung\LFT_Bewertung_2022_neu.xlsx" '
Für eure Hilfe danke ich Euch schon mal
Beste Grüße
Bernhard

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code erweitern um PDF Senden
06.09.2022 17:06:55
Fennek
Hallo,
es soll sehr bewusst kein copy/paste Code sein.
In Outlook ginge da zum Beispiel so:

Sub verzoegert_senden()
Dim EML As MailItem
Set EML = CreateItem(olMailItem)    ' olMailItem : 0
With EML
.DeferredDeliveryTime = Now + TimeSerial(0, 10, 0)
.To = "max@mustermann.de"	'oder cells(i,j)
.Subject = "verzögert senden"
.Body = "bekannt"
.Attachments.Add "Pfad_Dateiname"
.Send
End With
End Sub
Für Excel muss ein
Dim Ol as object:set ol = createobject("Outlook.application")
dim EML as object
ergänzt werden.
mfg
AW: Code erweitern um PDF Senden
07.09.2022 09:17:44
Bernhard
Guten Morgen Fennek,
danke für die Ergänzung aber leider weiß ich damit nichts anzufangen.
Ich bin wie ich angegeben habe in VBA eine Niete und habe echt null Ahnung davon.
Ich verstehe das du mich dahin führen möchtest, das ich mir selber Gedanken mache und das finde ich auch super aber leider habe ich nicht die Zeit dafür, da mir aktuell andere Projekte die ganze Aufmerksamkeit rauben.
Daher meine bitte, kannst du mir den Code so zur Verfügung stellen, das er per Copy & Paste nutzbar ist und mir Ihn aus kommentieren, damit ich Ihn nachvollziehen und später mich damit auseinander setzen kann?
Das wäre echt super lieb!
Vielen Dank für deine Hilfe und Unterstützung
Gruß
Bernhard
Anzeige
AW: Code erweitern um PDF Senden
06.09.2022 17:07:14
Nepumuk
Hallo Bernhard,
teste mal:

Option Explicit
Sub Serienbrief()
Const Bewertung As String = "G:\SteloTec\Managementsystem\Einkauf\Lieferantenbewertung\LFT_Bewertung_2022_neu.xlsx" '
Gruß
Nepumuk
AW: Code erweitern um PDF Senden
07.09.2022 09:11:43
Bernhard
Guten Morgen Nepumuk,
Vielen Dank für deine Unterstützung!
Ich habe deinen Code eingefügt und getestet.
Leider bekomme ich einen Fehler in der Zeile:

Set OutlookMailItem = OutlookApp.CreatItem(0)

"Laufzeitfehler 438
Objekt unterstützt diese Eigenschaft oder Methode nicht"
Hast du eine Idee woran das liegen könnte?
Beste Grüße
Benrhard
Anzeige
AW: Code erweitern um PDF Senden
07.09.2022 09:14:42
Nepumuk
Hallo Bernhard,
so:

Set OutlookMailItem = OutlookApp.CreateItem(0)
Gruß
Nepumuk
AW: Code erweitern um PDF Senden
07.09.2022 09:27:25
Bernhard
Moin Nepumuk,
Danke für die fixe Antwort.
Ja das e hat gefehlt und es läuft jetzt weiter aber er findet die angegebene Datei nicht.
Wenn ich Debugge, läuft er bis

Set OutlookMailItem = OutlookApp.CreateItem(0)
With OutlookMailItem
.To = Range("O6")
durch und gibt dann den Fehler aus.
Findet er die Datei nicht oder kann er keinen Eintrag in der Datei finden?
Wenn du die Original Datei brauchst, könnte ich Sie dir im vertrauen zukommen lassen.
Danke und Gruß
Bernhard
Anzeige
AW: Code erweitern um PDF Senden
07.09.2022 09:34:42
Nepumuk
Hallo Bernhard,
welche Zeile markiert der Debugger wie lautet die Fehlermeldung (Nummer und Text bitte). Oder soll ich raten?
Gruß
Nepumuk
AW: Code erweitern um PDF Senden
07.09.2022 09:41:11
Bernhard
Hallo Nepumuk,
sollst nicht raten ;)
die zeile die er makiert ist die

.To = Range("O6")
und wenn ich dann nochmal auf F8 drücke kommt die Meldung:
"Laufzeitfehler -2147024894 (80070002)
Automatisierungsfehler
Das System kann die angegebene Datei nicht finden"
Gruß
Benrhard
AW: Code erweitern um PDF Senden
07.09.2022 09:46:21
Nepumuk
Hallo Bernhard,
das kommt bei schlampiger Programmierung heraus. Versuch es so:

            With OutlookMailItem
.To = Range("O6").Text
.Subject = Range("O8").Text
.Body = Range("O11").Text
.Attachments.Add strPath
.Display
End With
Gruß
Nepumuk
Anzeige
AW: Code erweitern um PDF Senden
07.09.2022 10:23:19
Bernhard
Hallo Nepumuk,
sorry für den schlechten Code aber ich bin eben absolut ein Noob in VBA.
Er läuft jetzt bis

.Attachments.Add strPath
und bringt dann den gleichen Fehler:
"Laufzeitfehler -2147024894 (80070002)
Automatisierungsfehler
Das System kann die angegebene Datei nicht finden"
Sorry fürs nevern!
Gruß
Bernhard
AW: Code erweitern um PDF Senden
07.09.2022 10:31:18
Nepumuk
Hallo Bernhard,
sorry, mein Fehler. So ist es richtig:

strPath = FOLDER_PATH & Range("D25").Value & "_" & Range("A14").Value & "_" & Format$(Date, "YYYYMMDD") & ".pdf"
Gruß
Nepumuk
Anzeige
AW: Code erweitern um PDF Senden
07.09.2022 10:46:28
Bernhard
Hallo nepumuk,
ich bin dir sowas von dankbar für deine Hilfe, du musst dich hier für nicht entschuldigen.
Ich habe den Code so eingefügt, ist das so richtig?

.Attachments.Add strPath = FOLDER_PATH & Range("D25").Value & "_" & Range("A14").Value & "_" & Format$(Date, "YYYYMMDD") & ".pdf"
Den jetzt kommt folgende Fehlermeldung:
"Laufzeitfehler 5
Ungültiger Prozeduraufruf oder ungültiges Argument"
Gruß
Bernhard
AW: Code erweitern um PDF Senden
07.09.2022 10:48:27
Nepumuk
Hallo Bernhard,
nein, diese Zeile:

strPath = FOLDER_PATH & Range("D25").Value & "_" & Range("A14").Value & "_" & Format$(Date, "YYYYMMDD")
durch diese ersetzen:

strPath = FOLDER_PATH & Range("D25").Value & "_" & Range("A14").Value & "_" & Format$(Date, "YYYYMMDD") & ".pdf"
Gruß
Nepumuk
Anzeige
AW: Code erweitern um PDF Senden
07.09.2022 11:01:31
Bernhard
Hallo Nepumuk,
Danke, hatte die Zeile überlesen.
Habe es geändert und es funktioniert wie erhofft super.
Vielen Vielen Dank dafür!!!
Beste Grüße
Benrhard
Closed
AW: Code erweitern um PDF Senden
07.09.2022 13:13:33
Bernhard
Muss doch noch mal öffnen...
Ich versuche seit 2 Std. die Signatur in die E-Mails mit rein zu bekommen.
Klappt auch aber der Body überschreibt diese dann wieder.
Hatte in einem Eintrag hier im Forum gelesen wie der Kollege das gelost bekommen hat aber bekomme das nicht bei mir umgesetzt.
https://www.herber.de/forum/archiv/1724to1728/1727037_VBA_Body_ueberschreibt_Signatur.html
Könntest du mir hierbei noch einmal helfen?
Gruß
Bernhard
Anzeige
AW: Code erweitern um PDF Senden
07.09.2022 13:19:38
Nepumuk
Hallo Bernhard,
und warum benutzt du nicht den Code von Luschi aus deinem Link, den er in der Textdatei bereitgestellt hat?
Gruß
Nepumuk
AW: Code erweitern um PDF Senden
07.09.2022 13:28:19
Bernhard
Habe ich versucht aber irgendwie hat es nicht hingehauen.
keine Ahnung ob ich mich irgendwo verschrieben habe oder etwas übersehen oder falsch eingetragen habe.
Kann es ja nochmal versuchen und den Code dann einstellen, dann kannst du mir sicher sagen wo der/die Fehler sind.
Danke und Gruß
Bernhard
AW: Code erweitern um PDF Senden
07.09.2022 13:32:06
Nepumuk
Hallo Bernhard,
mach das.
Gruß
Nepumuk
AW: Code erweitern um PDF Senden
07.09.2022 13:44:20
Bernhard
Hallo Nepumuk,
habe es jetzt endlich hinbekommen, der Fehler lag hier:

 .HTMLBody = Range("O9").Text & "
" & "
" & Range("O11").Text & "
" & Range("O12").Text & "
" & olOldHtmlBody
hatte olOldHtmlBody nicht hinten angefügt.
hier der Code, kannst du noch mal drüber scheuen ob es so ok ist oder ob es was zu verbessern gibt?
Danke :-)

Option Explicit
Sub Serienbrief()
Const Bewertung As String = "G:\SteloTec\Managementsystem\Einkauf\Lieferantenbewertung\LFT_Bewertung_2022_neu.xlsx"
Const FOLDER_PATH As String = "G:\SteloTec\Managementsystem\Einkauf\Lieferantenbewertung\Lieferantenbewertung_2022\"
Dim OutlookApp As Object, OutlookMailItem As Object
Dim WB As Workbook
Dim i As Long
Dim strPath As String
Dim olOldHtmlBody As String, UserPfad As String, UserDatei As String
Const olBodyFormat As Integer = 2    ''Html-Format
ChDrive Left("G:\SteloTec\Managementsystem\Einkauf\Lieferantenbewertung\LFT_Bewertung_2022_neu.xlsx", 1)
ChDir "G:\SteloTec\Managementsystem\Einkauf\Lieferantenbewertung\Lieferantenbewertung_2022\"
Set WB = Workbooks.Open(Bewertung, 0, 0)
ThisWorkbook.Activate
Set OutlookApp = CreateObject("Outlook.Application")
With WB.Sheets("Bewertung")
For i = 9 To .Cells(.Rows.Count, 1).End(xlUp).Row
Cells(14, "I") = .Cells(i, 1)
strPath = FOLDER_PATH & Range("D25").Value & "_" & Range("A14").Value & "_" & Format$(Date, "YYYYMMDD") & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPath, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Set OutlookMailItem = OutlookApp.CreateItem(0)
Do While Dir(UserDatei, vbNormal) = ""
DoEvents
Loop
''late binding - kein VCba-Verweis auf M$ Outlook xx.0 Object Library erforderlich
With OutlookMailItem
.BodyFormat = olBodyFormat
.GetInspector.Display
olOldHtmlBody = .HTMLBody
.To = Range("O6").Text
.Subject = Range("O8").Text
.HTMLBody = Range("O9").Text & "
" & "
" & Range("O11").Text & "
" & Range("O12").Text & "
" & olOldHtmlBody .Attachments.Add strPath .Display End With Next i End With WB.Close 0 Set WB = Nothing Set OutlookMailItem = Nothing Set OutlookApp = Nothing End Sub
Gruß
Bernhard
Anzeige
AW: Code erweitern um PDF Senden
07.09.2022 13:53:52
Nepumuk
Hallo Bernhard,
Passt. :-)
Gruß
Nepumuk
AW: Code erweitern um PDF Senden
07.09.2022 09:37:16
Bernhard
Hallo Nepumuk,
ich habe grade gesehen, das er die PFS nicht mehr im Ordner ?Liefernatenberwetung_2022 speichert sondern im Übergeordneten Ordner Lieferantenbewertung.
Die Pfade oben passen aber soweit ich das sehe.
Sehr komisch. deswegen findet er wahrscheinlich auch die Dateien nicht oder?
Gruß
Bernhard
AW: Code erweitern um PDF Senden
07.09.2022 09:40:55
Nepumuk
Hallo Bernhard,
wieso beantwortest du meine Frage nicht?
Gruß
Nepumuk
AW: Code erweitern um PDF Senden
07.09.2022 09:42:23
Bernhard
Weil sie erst gesehen habe nachdem ich noch einmal geantwortet hatte.
Gruß
bernhard

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige