Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Lese- und Schreibrechte für Ordner per VBA checken

Forumthread: Lese- und Schreibrechte für Ordner per VBA checken

Lese- und Schreibrechte für Ordner per VBA checken
29.07.2013 08:23:30
schelbs
Hallo User,
ich brauche eure Hilfe.
Ich möchte per Makro eine Exceldatei in einen Ordner speichern.
Das klappt soweit auch prima. Probleme gibt es nur wenn ich für den ausgewählten Ordner keine Lese- und Schreibrechte habe. Wie kann ich die Rechte vor dem Speichern überprüfen und das Makro abbrechen, wenn ich keine Lese- und Schreibrechte habe?
Vielen Dank schon mal für eure Hilfe.
Gruß Sebastian

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Lese- und Schreibrechte für Ordner per VBA checken
29.07.2013 11:28:49
Oberschlumpf
Hi Sebastian
Versuch mal (ungetestet):
Sub DeinMakro()
On Error GoTo Fehler
'Hier dein Speicherbefehl, deine Datei im von dir ausgewählten Verzeichnis zu speichern
MsgBox "Speichern war erfolgreich"
Exit Sub
Fehler:
MsgBox "Speichern war nicht erfolgreich"
End Sub
Der Code macht nichts weiter, außer dass er eben versucht, deine Datei im von dir ausgewählten Verzeichnis zu speichern.
Wenn du das darfst, wird die Datei gespeichert, und es ershceint eine entsprechende MessageBox.
Die MessageBox-Meldung kannst du natürlich löschen, wenn du bei Erfolg keine Meldung willst.
Wenn du nun im gewählten Verzeichnis keine Schreib (Speicher) rechte hast, wird ein Fehler erzeugt.
Der Code springt zur Sprungmarke "Fehler:" und führt den dann folgenden Code aus, was in diesem Fall nur eine MsgBox ist, die dir anzeigt, dass du nicht speichern darfst - danach wird der Code ganz normal beendet und nicht abgebrochen.
Hilfts?
Ciao
Thorsten

Anzeige
AW: Lese- und Schreibrechte für Ordner per VBA checken
29.07.2013 11:36:43
schelbs
Hallo Thorsten,
danke für deine Antwort. Das Problem ist, dass er erst beim Speichern einen Fehler erzeugt und sich dadurch aufhängt. Ich lese den Pfadname über eine Auswahl in eine Variable und speicher dann über diese auf den entsprechenden Pfad. Das Auslesen erzeugt eben kein Fehler auch wenn der Ordner ansich nicht zugänglich für mich ist. Das Speichern darauf funktioniert aber dann logischerweise nicht, weil die Rechte fehlen.
irgend eine Idee das zu umgehen?
Gruß Sebastian

Anzeige
AW: Lese- und Schreibrechte für Ordner per VBA checken
29.07.2013 11:38:44
SebastianSchelb
Hi Thorsten,
leider bringt Excel mir keine Fehlermeldung wenn ich keine Rechte für einen Ordner habe sondern hängt sich auf. Deshalb funktioniert es nicht mit deiner Idee. Trotzdem vielen Dank.
Gruß Sebastian

AW: Lese- und Schreibrechte für Ordner per VBA checken
29.07.2013 11:39:58
SebastianSchelb
Thread weiterhin offen

AW: Lese- und Schreibrechte für Ordner per VBA checken
29.07.2013 11:45:39
Oberschlumpf
Hi Sebastian
Vielleicht hilft ja dieser Thread:
https://www.herber.de/forum/archiv/1296to1300/t1299630.htm
Ich kenne deinen Speicherbefehl nicht.
Hier wird versucht, mit FSH oder WSH? zu speichern.
Und?
Ciao
Thorsten

Anzeige
AW: Lese- und Schreibrechte für Ordner per VBA checken
29.07.2013 14:13:09
SebastianSchelb
Hier ein Teil meines Makros (Dim usw. sind in anderem Teil):
Sub Teil
i = 1
Do While Dir(Dateipfad & Dateiname & " (" & i & ")" & ".pdf")  "" 'Dateinamen ändern bis  _
nicht vorhanden. Hier hängt sich das Makro auf, wenn ich keine Leserechte habe.
i = i + 1
Loop
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Dateipfad & Dateiname & " (" & i & ")" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True ' Speichern
End If
End Sub
PS: Dank

Anzeige
AW: Lese- und Schreibrechte für Ordner per VBA checken
29.07.2013 14:14:59
SebastianSchelb
Vergesse immer das "Frage noch Offen" Kästchen. Sorry

AW: Lese- und Schreibrechte für Ordner per VBA checken
29.07.2013 15:02:06
Oberschlumpf
hmmmm...
Hi
Sorry, ich mag a) Code als nur Text im Allgemeinen nicht und b) nur Codeschnipsel erst recht nicht, weil ich z Bsp gar nicht weiß, welchen Wert du Dateipfad zugewiesen hast.
Hast du in Dateipfad als letztes Zeichen vielleicht den \ vergessen?
Zeig mal ne Bsp-Datei, in der alles drin steht, was nötig ist, um dein Problem nachvollziehen zu können.
Kann aber auch trotz Bsp-Datei sein, dass ich nicht helfen kann, da ich ja XL 2003 nutze. Bin nicht sicher, ob der Befehl auch in XL 2003 unterstützt wird.
Ciao
Thorsten
p.s. setz den Haken für Offen VOR dem Schreiben deiner Antwort
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Lese- und Schreibrechte für Ordner in Excel per VBA überprüfen


Schritt-für-Schritt-Anleitung

Um die Lese- und Schreibrechte für einen Ordner in Excel mit VBA zu überprüfen, kannst du folgendes Makro verwenden:

Sub CheckPermissions()
    Dim FolderPath As String
    Dim fso As Object

    FolderPath = "C:\Dein\Ordner\Pfad\" ' Passe den Pfad an
    Set fso = CreateObject("Scripting.FileSystemObject")

    If fso.FolderExists(FolderPath) Then
        On Error Resume Next
        Dim testFile As Object
        Set testFile = fso.CreateTextFile(FolderPath & "test.txt", True)

        If Err.Number <> 0 Then
            MsgBox "Keine Schreibrechte für den Ordner!"
        Else
            testFile.Delete ' Testdatei löschen
            MsgBox "Schreibrechte sind vorhanden."
        End If
        On Error GoTo 0
    Else
        MsgBox "Der Ordner existiert nicht."
    End If
End Sub

Dieses Makro überprüft, ob der Ordner existiert und ob du Schreibrechte hast, indem es versucht, eine Testdatei zu erstellen. Wenn das nicht gelingt, erhältst du eine entsprechende Meldung.


Häufige Fehler und Lösungen

  • Fehler: "Das Makro hängt sich auf"
    Dies passiert oft, wenn keine Lese- oder Schreibrechte vorhanden sind. Stelle sicher, dass du den Ordnerpfad korrekt angegeben hast und der Ordner existiert.

  • Fehler: "Das Speichern war nicht erfolgreich"
    Wenn beim Speichern ein Fehler auftritt, könnte dies an fehlenden Schreibrechten liegen. Verwende das obenstehende Makro, um die Berechtigungen vorab zu prüfen.


Alternative Methoden

Eine alternative Methode zur Überprüfung der Lese- und Schreibrechte ist die Verwendung von Windows-Shell-Objekten. Hierbei kannst du die Shell-Funktion in VBA nutzen, um Berechtigungen direkt zu überprüfen. Diese Methode ist jedoch komplexer und erfordert tiefere Kenntnisse in der Windows-Programmierung.


Praktische Beispiele

Hier ist ein Beispiel, wie du das oben genannte Makro in einer realen Situation anwenden kannst:

  1. Erstelle ein neues Excel-Dokument.
  2. Öffne den VBA-Editor (ALT + F11) und füge ein neues Modul hinzu.
  3. Kopiere den Code aus der Schritt-für-Schritt-Anleitung in das Modul.
  4. Passe den FolderPath an deinen gewünschten Ordner an.
  5. Führe das Makro aus und überprüfe die Meldungen.

Tipps für Profis

  • Nutze On Error Resume Next mit Bedacht. Diese Anweisung unterdrückt Fehler, die auftreten könnten. Stelle sicher, dass du nach dem Fehlerhandling wieder auf die Standardfehlerbehandlung zurücksetzt.

  • Verwende FileSystemObject für umfangreiche Dateioperationen. Es bietet eine einfachere Schnittstelle zur Verwaltung von Dateien und Ordnern in VBA.

  • Teste den Code in verschiedenen Excel-Versionen. Einige Befehle könnten in älteren Versionen wie Excel 2003 nicht verfügbar sein.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass mein Makro auf allen Excel-Versionen funktioniert?
Überprüfe die Kompatibilität der verwendeten Funktionen in der jeweiligen Excel-Version. Verwende allgemeine Funktionen, die in den meisten Versionen unterstützt werden.

2. Kann ich die Lese- und Schreibrechte eines Ordners ohne VBA überprüfen?
Ja, du kannst die Eigenschaften des Ordners direkt im Windows Explorer überprüfen. Rechtsklicke auf den Ordner, wähle "Eigenschaften" und gehe zum Tab "Sicherheit".

3. Was kann ich tun, wenn mein Makro immer noch abstürzt?
Überprüfe, ob andere Anwendungen den Zugriff auf den Ordner blockieren, oder teste das Makro auf einem anderen Computer, um Umgebungsprobleme auszuschließen.

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