Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
680to684
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
680to684
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schreibschutzprüfung

Schreibschutzprüfung
12.10.2005 07:38:55
eres
Guten Morgen Excel-Fans,
habe folgende Aufgabenstellung:
In einem gegeben Verzeichnis befinden sich n Workbooks. Diese sollen alle schreibgeschützt sein. Wie kann ich geschickt eine Liste der Workbooks generieren, die NICHT schreibgeschützt sind ?
Kann man das Schreibschutzattribut in den Dateieigenschaften auslesen, ohne die Datei jeweils zu öffnen ?
Bin für jeden Tipp dankbar.
Gruss aus Köln
eres

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schreibschutzprüfung
12.10.2005 09:05:28
Heiko
Hallo Eres,
z.B. so: Pfad anpassen und in einem leeren Blatt starten.

Sub SchreibSchutz()
Dim bolStatus As Boolean
Dim strFolder As String
Dim lngI As Long, lngHelp As Long
' Verzeichnis apassen !!!
strFolder = "C:\Copy"
ChDrive Left(strFolder, 2)
ChDir strFolder
With Application.FileSearch
.NewSearch
.LookIn = strFolder
' Wenn Unterordner nicht durchsucht werden sollen dann hier False angeben.
.SearchSubFolders = True
.Filename = "*.xls"
.Execute
If .FoundFiles.Count = 0 Then
MsgBox "Im angegebenen Laufwerk wurden keine EXCEL Dateien gefunden !", vbInformation
Exit Sub
End If
ActiveSheet.Cells(1, 1) = "Schreibschutz"
ActiveSheet.Cells(1, 2) = "Pfad + Datei"
lngHelp = 2
Application.ScreenUpdating = False
For lngI = 1 To .FoundFiles.Count
Application.StatusBar = "Datei " & lngI & " von " & .FoundFiles.Count & ".      " & .FoundFiles(lngI) & " wird bearbeitet"
bolStatus = GetAttr(.FoundFiles(lngI)) And vbReadOnly
If bolStatus = False Then
ActiveSheet.Cells(lngHelp, 1) = bolStatus
ActiveSheet.Cells(lngHelp, 2) = .FoundFiles(lngI)
lngHelp = lngHelp + 1
End If
Application.StatusBar = False
Next lngI
End With
Application.ScreenUpdating = True
MsgBox "Fertig !", vbInformation
End Sub

Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
AW: Schreibschutzprüfung
12.10.2005 10:46:55
eres
Hallo Heiko, vielen Dank für Deine Lösung.
Leider hatte ich mich in der Ausgangsfrage nicht korrekt ausgedrückt.
Mir geht es um den Schreibschutz innerhalb einer Excel-Datei (also bei Speichern unter - Extras - Allgemeine Optionen - Schreibutzkennwort).
Vermutlich muss ich versuchen, die Dateien zu öffnen und dabei abzufragen, ob die Dateien ein Schreibschutzkennwort haben.
Hat jemand eine Idee ?
(Heiko, Deine Lösung dient mir auf jeden Fall dazu, mein VBA-Wissen zu verbessern, vielen Dank nochmals)
Gruss aus Köln
eres
AW: Schreibschutzprüfung
12.10.2005 11:57:55
Heiko
Hallo Eres,
noch ein Versuch, mit der Voraussetzung das alle das gleiche Passwort haben. Wenn das nicht der Fall ist, müsstest du in diese Zeile
Workbooks.Open Filename:=.FoundFiles(lngI), WriteResPassword:="Test"
so ändern,
Workbooks.Open Filename:=.FoundFiles(lngI)
Was aber leider zur Folge hat das du dann bei Mappen mit Passwort dazu aufgefordert wirst dieses einzugeben.
Wenn das nicht reicht musst du die Frage wieder offen stellen, da ich dann auch nicht mehr helfen kann.

Sub SchreibSchutz()
Dim bolStatus As Boolean
Dim strFolder As String
Dim lngI As Long, lngHelp As Long
' Verzeichnis apassen !!!
strFolder = "C:\Copy"
ChDrive Left(strFolder, 2)
ChDir strFolder
With Application.FileSearch
.NewSearch
.LookIn = strFolder
' Wenn Unterordner nicht durchsucht werden sollen dann hier False angeben.
.SearchSubFolders = True
.Filename = "*.xls"
.Execute
If .FoundFiles.Count = 0 Then
MsgBox "Im angegebenen Laufwerk wurden keine EXCEL Dateien gefunden !", vbInformation
Exit Sub
End If
ActiveSheet.Cells.Delete
ActiveSheet.Cells(1, 1) = "Schreibschutz"
ActiveSheet.Cells(1, 2) = "Pfad + Datei"
lngHelp = 2
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.EnableEvents = False
For lngI = 1 To .FoundFiles.Count
Application.StatusBar = "Datei " & lngI & " von " & .FoundFiles.Count & ".      " & .FoundFiles(lngI) & " wird bearbeitet"
' Wenn alle das gleiche Passwort haben, dann geht das so.
' Wenn nicht dann habe ich keine weitere Lösung.
Workbooks.Open Filename:=.FoundFiles(lngI), WriteResPassword:="Test"
bolStatus = ActiveWorkbook.WriteReserved
MsgBox bolStatus
ActiveWorkbook.Close
If bolStatus = False Then
ActiveSheet.Cells(lngHelp, 1) = bolStatus
ActiveSheet.Cells(lngHelp, 2) = .FoundFiles(lngI)
lngHelp = lngHelp + 1
End If
Application.StatusBar = False
Next lngI
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.EnableEvents = True
MsgBox "Fertig !", vbInformation
End Sub

Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
AW: Schreibschutzprüfung
12.10.2005 12:10:59
eres
Hallo Heiko,
nochmals vielen Dank für Deine Hilfe.
Meine Problemstellung ist, dass ich prüfen möchte, ob alle in dem ausgewählten Verzeichnis enthaltenen Excel-Sheet mit einem Schreibschutzpassword versehen sind.
Idealerweise gäbe es beim Versuch zu öffnen eine Art Eigenschaft wie isreadonly (?), die ich abfragen könnte, ohne die Datei komplett zu öffnen.
Herzliche Grüsse ans Forum
eres
AW: Schreibschutzprüfung
13.10.2005 15:07:21
Heiko
Hallo Eres,
hier wird wohl nicht mehr viel kommen, darum stell das Problem doch mal ( mit genauer Beschreibung damit nicht nochmal jemand auf Datei - Schreibschutz reinfällt ) bei Online-Excel ins Forum.
http://www.online-excel.de/fom/fo_na.php?f=1
Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige