Anzeige
Archiv - Navigation
952to956
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
952to956
952to956
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Rechte prüfen

Rechte prüfen
19.02.2008 12:57:00
thomas
Hallo,
kann ich per VBA prüfen, ob ich Schreibrechte in einem best. Ordner im Filesystem habe? oder prüfen kann, ob ich eine best. Datei dort speichern kann.
Ausgangspunkt meiner Frage ist ein Befehl ActiveWorkbook.Saveas Filename:=stringVariable
Wenn ich ein Makro ablaufen lasse, bekomme ich komischerweise keinen Laufzeitfehler 1004, obwohl ich in dem Ordner der in der strVariable drin steckt keine Schreibrechte habe.
Anderer Tipp für den ich dankbar wäre: kann einer sagen oder schreiben :-))), wann kein Laufzeitfehler 1004 .... kan auf R: nicht zugreifen .... kommt, obwohl die Rechte nicht ausreichen.
Danke und viele Grüße aus dem Frankfurt
Thomas

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Rechte prüfen
19.02.2008 13:25:49
Nepumuk
Hallo Thomas,
da wir den Code nicht kennen, können wir auch nur raten warum keine Meldung kommt. Sollen wir?
Also ich würde mal auf On Error Resume Next tippen.
Rechte prüfen könntest du z.B. so:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Const FILE_ALL_ACCESS = &H1F01FF
Private Const FILE_APPEND_DATA = &H4
Private Const FILE_DELETE = &H10000
Private Const FILE_DELETE_CHILD = &H40
Private Const FILE_EXECUTE = &H20
Private Const FILE_READ_ATTRIBUTES = &H80
Private Const FILE_READ_CONTROL = &H20000
Private Const FILE_READ_DATA = &H1
Private Const FILE_READ_EA = &H8
Private Const FILE_SYNCHRONIZE = &H100000
Private Const FILE_WRITE_ATTRIBUTES = &H100
Private Const FILE_WRITE_DAC = &H40000
Private Const FILE_WRITE_DATA = &H2
Private Const FILE_WRITE_EA = &H10
Private Const FILE_WRITE_OWNER = &H80000

Public Sub test()
    Dim lngReturn As Long
    lngReturn = Check_Folderaccess("D:\Eigene Dateien\aviproxy")
    If Not lngReturn And FILE_WRITE_DATA Then MsgBox "Nicht schreiben"
    If Not lngReturn And FILE_READ_DATA Then MsgBox "Nicht lesen"
    If lngReturn And (FILE_WRITE_DATA Or FILE_READ_DATA) Then MsgBox "Vollzugriff"
End Sub

Private Function Check_Folderaccess(strFolder As String) As Long
    Dim objWMI As Object, objItem As Object
    Dir$ ""
    strFolder = (Replace(strFolder, "\", "\\"))
    Set objWMI = GetObject("winmgmts:\\.\root\cimv2"). _
        ExecQuery("Select * from Win32_Directory Where Name = '" & strFolder & "'")
    For Each objItem In objWMI
        Check_Folderaccess = objItem.AccessMask
    Next
End Function

Gruß
Nepumuk

Anzeige
AW: Rechte prüfen
19.02.2008 13:44:29
thomas
au scheibenkleister - asche auf mein Haupt
on error error resume next - ich bin ein ....
du hast recht
Thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige