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

Blatt als pdf versenden und abspeichern = Laufzeitfehler

Forumthread: Blatt als pdf versenden und abspeichern = Laufzeitfehler

Blatt als pdf versenden und abspeichern = Laufzeitfehler
04.02.2025 13:37:59
Birte Herholz
Hallo liebe Excel-VBA Gemeinde.
Ich werde gerade wahnsinnig.
Ich habe mir einen VBA-Code zurechtgefriemelt:

Damit erzeuge ich eine PDF über den Druckbereich des Arbeitsblattes, speichere die PDF im aktuellen Ordner ab und versende sie als Anhang per E-Mail.

Bisher hat das auch immer gut funktioniert!

Doch seit heute kommt jetzt : "Laufzeitfehler '-2147024894 (80070002)' Die Datei kann nicht gefunden werden

Der Dateiname kommt aus einer Zelle des aktuellen Arbeitsblattes (F6) .
Und in der Zelle F6 wird ein Text per Verkettung aus einem anderen Arbeitsblatt generiert: =VERKETTEN("bla bla";" ";'Tabelle3'!D6)

Ich habe folgendes festgestellt:
Hole ich mir die Datei ganz neu von server, funktioniert das Makro anstandslos.
Wird aber in der Zelle "'Tabelle3'!D6" etwas eingefügt, erhalte ich die o.g. Fehlermeldung.


Sub PDFSenden()

Dim DateiName As String
DateiName = Range("F6") & ".pdf"

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=DateiName, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False

Dim Outlook As Object
Dim OutlookMailItem As Object
Dim myAttachments As Object

Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMailItem = OutlookApp.CreateItem(0)
Set myAttachments = OutlookMailItem.Attachments

With OutlookMailItem
.To = Range("F4")
.Subject = Range("F7")
.Body = Range("F14")

myAttachments.Add DateiName

.Display
End With

Set OutlookApp = Nothing
Set OutlookMailItem = Nothing

MsgBox "Wechseln Sie in Ihr Outlook-Programm. Ein neues Fenster mit einer neuen E-Mail sollte sich geöffnet haben. Sobald diese Meldung geschlossen wird, kann in der Excel-Datei weiter gearbeitet werden.", vbInformation, "Erledigt, eine E-Mail wurde in Outlook erstellt."

ThisWorkbook.Sheets("Onboarding_ANLEITUNG").Unprotect
ThisWorkbook.Sheets("Onboarding_ANLEITUNG").Range("D38").Value = Now
ThisWorkbook.Sheets("Onboarding_ANLEITUNG").Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False

End Sub

Danke für jeden Hinweis - ich bin am Verzweifeln!


Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blatt als pdf versenden und abspeichern = Laufzeitfehler
04.02.2025 13:45:53
{Boris}
Hi,

ohne Beispieldatei ist das Raterei.

Was genau ergibt

DateiName = Range("F6") & ".pdf"

Lass Dir die Variable Dateiname mal im Direktfenster oder in einer MsgBox ausgeben.

VG, Boris
AW: Blatt als pdf versenden und abspeichern = Laufzeitfehler
04.02.2025 14:15:57
JoWE
Hallo,
der Dateiname sollte so definiert werden:
Dateiname = ThisWorkbook.Path & "\" & Sheets("xxxxx").Range("F6") & ".pdf" ' TabellenName angeben
dann klappt's vermutlich auch mit Versenden und Speichern.
Allerdings sollte noch eine Fehlerbehandlung eingebaut werden
für den Fall, dass "F6" leer ist oder für einen Dateinamen unzulässige Zeichen enthält!
Gruß
Jochen
Anzeige
AW: Blatt als pdf versenden und abspeichern = Laufzeitfehler
04.02.2025 14:40:29
Birte Herholz
Hallo JoWE

Danke für die Hilfe
Ich benötige aber das Makro (in einem Modul) für mehrere Tabellenblätter.
Wie muss die Zeile heißen, wenn immer das aktuelle Blatt ausgewählt werden soll?

Danke und Gruß
Birte
AW: Blatt als pdf versenden und abspeichern = Laufzeitfehler
04.02.2025 14:53:49
JoWE
Dateiname = ThisWorkbook.Path & "\" & activesheet.Range("F6") & ".pdf"
Anzeige
AW: Blatt als pdf versenden und abspeichern = Laufzeitfehler
04.02.2025 14:57:14
MCO
Hallo Birte!

Versuch mal:
Dateiname = ThisWorkbook.Path & "\" & activesheet.Range("F6") & ".pdf" ' TabellenName angeben


Achte darauf, dass die Tabelle gültig gespeichert ist und das pdf nicht schon geöffnet ist, dann kann es nicht überschrieben werden.

Da kann auch vorher noch den Dateipfad verifizieren:
if Dir(DEINPFAD,vbdirectory)="" then msgbox "Der Pfad " & DeinPfad & " existiert nicht" :end


Gruß, MCO
Anzeige
AW: Blatt als pdf versenden und abspeichern = Laufzeitfehler
04.02.2025 15:16:22
Birte Herholz
Vielen herzlichen Dank!

es hat geholfen!

Dicke Grüße
Birte

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige