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

Forumthread: ActiveSheet.ExportAsFixedFormat und Laufzeitfehler

ActiveSheet.ExportAsFixedFormat und Laufzeitfehler
02.07.2018 09:40:51
Alexander
Hallo zusammen,
ich bin am Verzweifeln.
Wir haben hier verschiedene Win7 Rechner alle Excel 2010 (14....).
Ich habe ein Makro, was ein Arbeitsblatt als PDF exportiert und dann als Mail verschickt. Bei mir läuft das alles Prima, bei manchen Kollegen auch, bei anderen kommt der Laufzeitfehler 1004.
Sub Mail_LP()
'Vordruckblatt auswählen
Sheets("Vordruck").Visible = True
Worksheets("Vordruck").Activate
Sheets("Vordruck").Select
'PDF erstellen
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=Environ("TEMP") & "\Plan.pdf"
'Grundgerüst Mail
Dim objOutlook As Object
Dim objMail As Object
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
'Inhalt der Mail
Dim Antwort, Empfänger, Betreff As String
Empfänger = "email@xyzzz.de"
Betreff = "PDFfür " & Cells(17, 1).Value
Antwort = "Sehr geehrte Damen und Herren," & Chr(13) & Chr(13)
Antwort = Antwort & "anbei erhalten Sie den PDF-Auftrag für das Fahrzeug "
Antwort = Antwort & Cells(17, 1).Value & "."
Antwort = Antwort & Chr(13)
With objMail
.To = Empfänger
.Subject = Betreff
.Body = Antwort
.Attachments.Add Environ("TEMP") & "\Plan.pdf"
.Display
End With
Sheets("Vordruck").Visible = False
End Sub
Mit Einzelschrittausführung bin ich nun so weit, dass das "ActiveSheet.ExportAsFixedFormat" Excel bei den Kollegen nicht mag, die den Laufzeitfehler bekommen.
Da das Makro nun auf mehr Standorte ausgerollt werden soll, soll ich den Fehler finden.
Ich habe schon in mühseliger Kleinabeit viele Einstellungen verglichen.
Erstaunlich ist es, dass es mit meinem Account auf einem Rechner geht, meldet sich eine Kollege mit dem LZ Fehler auf dem gleichen Rechner an, geht es nicht.
Die Windowsversionen sind identisch, die Officeversion auch.
Das Makro läuft auch auf auf einem Win10 Rechner mit Office 2013 ohne Probleme.
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ActiveSheet.ExportAsFixedFormat und Laufzeitfehler
02.07.2018 09:46:28
Nepumuk
Hallo Alexander,
und welchen Text zeigt die Fehlermeldung an?
Gruß
Nepumuk
AW: ActiveSheet.ExportAsFixedFormat und Laufzeitfehler
02.07.2018 10:05:55
Alexander
Sorry, die habe ich glatt vergessen:
Das Dokument wurde nicht gespeichert. Das Dokument ist möglicherweise geöffnet, oder beim Speichern ist ein anderer Fehler aufgetreten.
Geöffnet ist es nicht, Schreibrechte sind vorhanden.
Anzeige
AW: ActiveSheet.ExportAsFixedFormat und Laufzeitfehler
02.07.2018 09:54:28
Torsten
Hallo,
das erste, was mir hier in den Sinn kommt, dass manche User moeglicherweise kein Schreibrecht fuer den Zielordner haben. Ich hatte dieses Problem auch mit einigen Usern in meiner Firma, zwar auf einem freigegebenen Laufwerk, aber ist vielleicht eine Moeglichkeit zum ueberpruefen.
Gruss Torsten
Anzeige
AW: ActiveSheet.ExportAsFixedFormat und Laufzeitfehler
02.07.2018 10:07:34
KlausF
Hallo Alexander,
ich vermute mal wie Torsten, dass es Probleme mit den Schreibrechten gibt.
Trotzdem hier noch ein anderer Ansatz, der evtl. eine Prüfung verdient:
http://www.vb-fun.de/cgi-bin/loadframe.pl?ID=vb/tipps/tip0274.shtml
Gruß
Klaus
Anzeige
AW: ActiveSheet.ExportAsFixedFormat und Laufzeitfehler
02.07.2018 10:20:15
Alexander
Ich habe mal das Verzeichnis genommen, wo die Exceltabelle liegt.
Leider geht es immernoch nicht.
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=ActiveWorkbook.Path & "\Plan.pdf"
Auf dem hat jeder Nutzer Schreibrechte.
AW: ActiveSheet.ExportAsFixedFormat und Laufzeitfehler
02.07.2018 10:35:40
Torsten
Naechste Vermutung: Kann es sein, dass das Worksheet nicht aktiv ist? Denn du benutzt ja "ActiveSheet". Versuch mal, hier den Sheet Namen zu benutzen.
Gruss Torsten
Anzeige
AW: ActiveSheet.ExportAsFixedFormat und Laufzeitfehler
02.07.2018 10:57:26
Alexander
Jetzt habe ich noch weiter reduziert:
Sheets("Vordruck").ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\TEMP\LeasePlan.pdf"
Ohne Erfolg.
Ich habe mal einfach versucht, bei den Kollegen das aktive Arbeitsblatt auf dem Standarddrucker ausgeben zu lassen, damit diese es dann per Scan vermailen können. Nicht schön, aber es muss halt kurzfristig laufen. El Cheffe will es so.
ActiveWindow.SelectedSheets.PrintOut _
Copies:=1, From:=1, To:=1, Collate:=True, IgnorePrintAreas:=False

Leider ist der Erfolg noch bescheidener: Excel hängt sich komplett auf und Windows rödelt 5 Minuten rum, bis man Excel wieder öffnen kann.
Ich gehe bald Schreibmaschinen kaufen.
Anzeige
AW: ActiveSheet.ExportAsFixedFormat und Laufzeitfehler
02.07.2018 11:36:57
Torsten
Hallo nochmal, was ist genau der Text in der Fehlermeldung?
AW: ActiveSheet.ExportAsFixedFormat und Laufzeitfehler
02.07.2018 11:43:04
Alexander

Das Dokument wurde nicht gespeichert. Das Dokument ist möglicherweise geöffnet, oder beim Speichern ist ein anderer Fehler aufgetreten.
Ich fange jetzt erstmal den Fehler ab, dass Excel nicht mehr abschmiert und dann können bis zur Lösung nicht alle Kollegen mit arbeiten.
Anzeige
AW: ActiveSheet.ExportAsFixedFormat und Laufzeitfehler
02.07.2018 11:53:09
Torsten
Noch eine weitere Frage, wie rufst du den Code auf bei den Usern? Per Button?
Habe gerade etwas gelesen, da hatte jemand das gleiche Problem.
Er hatte einen Button beutzt, ein Formularsteuerelement. Das hat nicht funktioniert.
Er hat dann den Button ausgetauscht und ein ActiveX Button benutzt. Dann hat es geklappt.
Anzeige
AW: ActiveSheet.ExportAsFixedFormat und Laufzeitfehler
02.07.2018 12:21:47
Alexander
Das Makro wird von einem anderen Makro aufgerufen.
Application.Run "Mail_LP()"
Das andere Makro bereitet das Arbeitsblatt zum Drucken vor.
Es startet auch einwandfrei, bei den betroffenen Kollegen habe ich jetzt mit On Error den Fehler abfangen und die werden dann "eiskalt" abgeworfen. Bis ich eine Lösung habe, können nicht alle mit arbeiten.
Die abgeworfenen Kollegen bekommen das Arbeitsblatt geschützt zu sehen und müssen dann halt via PDF Printer drucken.
Anzeige
AW: ActiveSheet.ExportAsFixedFormat und Laufzeitfehler
02.07.2018 11:44:06
Torsten
Also ich hab jetzt gerade mal deinen urspruenglichen Code:

ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=Environ("TEMP") & "\Plan.pdf"

bei mir ausprobiert. Laeuft sauber durch, wenn auf dem Sheet etwas ist. Mit einem leeren Sheet bekomme ich auch LZF 1004, weil nichts zum drucken da ist.
Anzeige
AW: ActiveSheet.ExportAsFixedFormat und Laufzeitfehler
04.07.2018 09:58:05
Alexander
Ich habe unsere IT kontaktiert: Leider geben die keinen Support für selbst erstellte Makros.
Der Mitarbeiter hat sich jedoch die lokalen Profile der Kollegen angeschaut und festgestellt, dass dieses nicht korrekt war. Nachdem die durch eine Kopie vom Server ersetzt wurden, läuft es wieder.
Danke für Eure Hilfe.
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

ActiveSheet.ExportAsFixedFormat und Laufzeitfehler 1004 beheben


Schritt-für-Schritt-Anleitung

  1. Vorbereitung: Stelle sicher, dass Du Excel 2010 oder eine neuere Version verwendest.

  2. VBA-Code anpassen:

    • Verwende den folgenden Code, um ein Arbeitsblatt als PDF zu exportieren:

      Sub Mail_LP()
       Sheets("Vordruck").Visible = True
       Worksheets("Vordruck").Activate
      
       'PDF erstellen
       ActiveSheet.ExportAsFixedFormat _
       Type:=xlTypePDF, _
       Filename:=Environ("TEMP") & "\Plan.pdf"
      
       'E-Mail erstellen
       Dim objOutlook As Object
       Dim objMail As Object
       Set objOutlook = CreateObject("Outlook.Application")
       Set objMail = objOutlook.CreateItem(0)
      
       'Inhalt der Mail
       Dim Empfänger As String
       Empfänger = "email@xyzzz.de"
      
       With objMail
           .To = Empfänger
           .Subject = "PDF für " & Cells(17, 1).Value
           .Body = "Hier ist das angeforderte PDF."
           .Attachments.Add Environ("TEMP") & "\Plan.pdf"
           .Display
       End With
      
       Sheets("Vordruck").Visible = False
      End Sub
  3. Fehlermeldungen beachten: Achte auf mögliche Fehlermeldungen. Sollte der Laufzeitfehler 1004 erscheinen, überprüfe die Schreibrechte im Zielordner.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004:

    • Problem: „Das Dokument wurde nicht gespeichert. Das Dokument ist möglicherweise geöffnet, oder beim Speichern ist ein anderer Fehler aufgetreten.“
    • Lösung: Überprüfe die Schreibrechte des Zielordners und stelle sicher, dass die Datei nicht bereits geöffnet ist.
  • ActiveSheet nicht richtig definiert:

    • Problem: Verwenden von ActiveSheet kann zu Fehlern führen.
    • Lösung: Benutze stattdessen den genauen Blattnamen:
      Sheets("Vordruck").ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\TEMP\LeasePlan.pdf"
  • Benutzerrechte:

    • Problem: Einige Benutzer haben möglicherweise keine Schreibrechte im Zielverzeichnis.
    • Lösung: Überprüfe die Berechtigungen für alle Benutzer.

Alternative Methoden

  • Exportieren über das Workbook:

    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\TEMP\WorkbookPlan.pdf"
  • Verwenden eines anderen Speicherorts:

    • Teste, ob der Fehler durch einen anderen Speicherort umgangen werden kann, z.B. C:\TEMP\.

Praktische Beispiele

  1. Einfaches PDF-Export-Makro:

    Sub ExportAsPDF()
       Worksheets("Vordruck").ExportAsFixedFormat _
       Type:=xlTypePDF, _
       Filename:="C:\TEMP\Vordruck.pdf"
    End Sub
  2. PDF-Export mit Fehlerbehandlung:

    Sub ExportWithErrorHandling()
       On Error GoTo ErrorHandler
       ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\TEMP\Export.pdf"
       Exit Sub
    ErrorHandler:
       MsgBox "Fehler: " & Err.Description
    End Sub

Tipps für Profis

  • Verwende Umgebungsvariablen: Nutze Environ("TEMP"), um den temporären Ordner des Benutzers zu verwenden.
  • Aktive Arbeitsblätter: Sei vorsichtig mit ActiveSheet, um unerwartete Fehler zu vermeiden. Verwende den Blattnamen, um sicherzustellen, dass das richtige Blatt exportiert wird.
  • Testen auf verschiedenen Systemen: Führe Tests auf verschiedenen Rechnern durch, um sicherzustellen, dass das Makro universell einsetzbar ist.

FAQ: Häufige Fragen

1. Warum erhalte ich den Laufzeitfehler 1004?
Der Fehler tritt normalerweise auf, wenn Excel nicht auf die Datei zugreifen kann oder die Datei bereits geöffnet ist. Überprüfe die Schreibrechte und die Datei-Integrität.

2. Kann ich das Makro auf einer älteren Excel-Version verwenden?
Das Beispiel wurde für Excel 2010 und neuer entwickelt. Ältere Versionen können möglicherweise nicht alle Funktionen unterstützen.

3. Was kann ich tun, wenn das PDF nicht erstellt wird?
Überprüfe den Dateipfad und die Berechtigungen für den Ordner, in den das PDF gespeichert werden soll. Stelle sicher, dass der Pfad existiert und die Anwendung die notwendigen Rechte hat.

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