Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1584to1588
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

Probleme bei langen Serverpfaden?

Probleme bei langen Serverpfaden?
07.10.2017 16:32:22
Steffen
Hallo,
ich benutze den untenstehenden Code wenn ich meine "Protokolle" als PDF abspeichern möchte.
Dabei kommt es abundzu zum Laufzeitfehler 5 :(
Mittlerweile habe ich herausgefunden das Excel ein Problem mit den Serverpfad hat, da der Fehler nur auftritt wenn der Pfad zu "lang" ist :(
Weis jemand wie ich diesen Fehler elegant umgehen kann?
(Ich kann den Serverpfad nicht kürzen da der von der Firma so vorgegeben ist)
Lustiger weise erstellt er Ordner und ich kann die Dateien in den Ordner verschieben(mit einem Makro-Code, trotz des Langem Dateipfades), das ist zwar ein Notbehelf aber ich wüsste gerne ob es eine andere (elegantere) Möglichkeit gibt?
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Pfad + Dateinamen + ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme bei langen Serverpfaden?
07.10.2017 20:09:01
Nepumuk
Hallo Steffen,
du könntest erst den CurDir auf den richtigen Netzwerkordner setzen und dann das PDF speichern.
Beispiel:
Option Explicit

Private Declare PtrSafe Function SetCurrentDirectoryA Lib "kernel32.dll" ( _
    ByVal lpPathName As String) As Long

Sub Beispiel()
    Dim lngReturn As Long
    Dim Pfad As String, Dateinamen As String
    Pfad = "\\SERVERNAME\Eigene Dateien\AEG\Arbeitsaufträge PT4\Zeichnungen" 'Anpassen !!!!!!!!!
    Dateinamen = "MeinPDF" 'Anpassen !!!!!!!!!
    lngReturn = SetCurrentDirectoryA(Pfad)
    If lngReturn <> 0 Then
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Dateinamen, _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, OpenAfterPublish:=True
    Else
        MsgBox "Fehler"
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Probleme bei langen Serverpfaden?
08.10.2017 11:48:54
Steffen
Danke,
der Fehler 5 erscheint jetzt nicht mehr,
dafür ist es jetzt Fehler 1004 (es ist keine PDF offen)
aber der Fehler passiert ebenfalls an der selben stelle :(
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Dateinamen, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True

AW: Probleme bei langen Serverpfaden?
08.10.2017 11:52:26
Nepumuk
Hallo Steffen,
wie lautet der Text der Fehlermeldung?
Gruß
Nepumuk
AW: Probleme bei langen Serverpfaden?
08.10.2017 12:24:16
Steffen
Hier die beiden Fehlermeldungen.
Jetzt:
Laufzeitfehler 1004
Das Dokument wurde nicht gespeichert. Das Dokument ist möglicherweise geöffnet, oder beim Speichern ist ein Fehler aufgetreten
Davor:
Laufzeitfehler 5:
Ungültiger Prozeduraufruf oder ungültiges Argument

Anzeige
AW: Probleme bei langen Serverpfaden?
08.10.2017 12:42:08
Nepumuk
Hallo Steffen,
das muss ich morgen in der Arbeit testen, hier zu Hause habe ich keine Netzwerkpfade.
Gruß
Nepumuk
AW: Probleme bei langen Serverpfaden?
08.10.2017 13:00:49
Steffen
Ok,
aber schon mal im Voraus Danke.
Weis nicht ob es hilft, aber habe gerade mal geschaut, der gesamte Pfad (incl. Datei) ist bis zu 260 Zeichen Lang
AW: Probleme bei langen Serverpfaden?
09.10.2017 09:21:27
Nepumuk
Hallo Steffen,
es ist, wie ich es mir dachte so, dass VBA nur Pfade mit 216 Zeichen fehlerfrei verarbeiten kann. Alles was darüber hinaus geht erzeugt einen Fehler. Dagegen kann ich leider auch nichts machen.
Gruß
Nepumuk
Probleme bei langen Serverpfaden?
09.10.2017 19:07:15
Anton
Hallo Steffen,
ich hätte den Server verbunden und dann als PDF gespeichert, etwa so:
Sub b()
Dim objNetzwerk As Object
Dim strServerpfad As String, strBenutzername As String, strPasswort As String
Set objNetzwerk = CreateObject("WScript.Network")
strServerpfad = "\\servername\freigabe\ordner\ordner\ordner\ordner\ordner\ordner" 'anpassen
'Netzwerk verbinden
On Error Resume Next
objNetzwerk.MapNetworkDrive "b:", strServerpfad ', , strBenutzername, strPasswort
If Err.Number Then
MsgBox Err.Description
Else
ChDrive ("b:\")
'MsgBox "Verbunden"
ActiveSheet.ExportAsFixedFormat ...
End If
ChDrive ("c:\") 'wichtig!sonst funktioniert das Trennen nicht!
'Netzwerk trennen
objNetzwerk.RemoveNetworkDrive "b:"
Set objNetzwerk = Nothing
End Sub
mfg Anton
Anzeige
@sschunack oT
11.10.2017 18:49:07
Anton

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige