Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
752to756
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
752to756
752to756
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schreibschutz einer Arbeitsmappe

Schreibschutz einer Arbeitsmappe
12.04.2006 23:44:54
Torsten
Hallo,
auf mein Workbook sollen verschiedene User gleichzeitig zugreifen können. Nun kann ich die Arbeitsmappe leider nicht freigeben, da ich in meinem Programm mit vielen "Protect-Methoden" operiere.
Das Workbook soll normal gestartet werden, sofern es nicht schon geöffnet ist. Ist es schon geöffnet, so soll es automatisch schreibgeschützt geöffnet werden, eben ohne die Abfrage "schreibgeschützt öffnen?" (und nach Möglichkeit soll die Abfrage ob "aktualisiert" werden soll auch gleich bejaht werden). Normalerweise lasse ich das Workbook speichern bevor es geschlossen wird. Im schreibgeschützten Modus soll es dann einfach ohne zu speichern beendet werden.

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

Betreff
Datum
Anwender
Anzeige
AW: Schreibschutz einer Arbeitsmappe - Teil1
13.04.2006 08:37:10
Matthias
Hallo Torsten,
mein Vorschlag zum ersten Teil der Frage:
Erstelle eine Datei Start.xls, mit folgendem Code in "DieseArbeitsmappe":

Option Explicit
Const fn = "Daten.xls"
Private Sub Workbook_Open()
Dim ro As Boolean
ro = DateiInBearbeitung(ThisWorkbook.Path & "\" & fn)
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & fn, UpdateLinks:=True, ReadOnly:=ro, Password:="123"
ThisWorkbook.Close False
End Sub
Private Function DateiInBearbeitung(s As String) As Boolean
Dim ff As Integer
ff = FreeFile
On Error Resume Next
Open s For Binary Access Read Lock Read As ff
Close ff
If Err.Number <> 0 Then
DateiInBearbeitung = True
Err.Clear
End If
End Function

Dieses Makro prüft, ob die zu öffnende Datei bereits geöffnet ist. Wenn ja, wird sie schreibgeschützt geöffnet.
Gruß Matthias
Anzeige
AW: Schreibschutz einer Arbeitsmappe - Teil1
13.04.2006 14:25:35
Torsten
Danke für deine schnelle Antwort auf meine Fragen. Der erste Teil ist beantwortet und funktioniert ohne Probleme.
Grüße Torsteb
AW: Schreibschutz einer Arbeitsmappe - Teil2
13.04.2006 14:33:53
Matthias
Hallo Torsten,
Normalerweise lasse ich das Workbook speichern bevor es geschlossen wird. Im schreibgeschützten Modus soll es dann einfach ohne zu speichern beendet werden.
Was heißt, du lässt es speichern? Verwendest du irgendwelche Ereignisse, eigenen Code?
Gruß Matthias
AW: Schreibschutz einer Arbeitsmappe - Teil2
13.04.2006 17:56:07
Torsten
Hallo,
mein beenden button ist mit vollgendem Makro unterlegt:

Sub beenden()
Dim Antwort%
Dim Frage As String
Dim ctrl As CommandBarPopup
Dim i As Integer
Msg = "Wollen Sie Crosspromotion 2006 ® schließen?"
Select Case MsgBox(Msg, vbInformation + vbYesNoCancel)
Case vbYes:
Application.ScreenUpdating = False
Sheets("Verlauf").Unprotect Password:="ndr"
zellnr = Range("Verlauf!D1")
If zellnr = 1000 Then Range("Verlauf!A2:A1000").ClearContents
uname = Application.Username
Range("Verlauf!A" & zellnr) = uname
Range("Verlauf!B" & zellnr) = Date
Range("Verlauf!C" & zellnr) = Time
Sheets("Verlauf").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="ndr"
Application.ScreenUpdating = True
Call Menü_zurücksetzen
Application.ScreenUpdating = False
Sheets(Array("Beginn", "Ende", "graphischG", "graphischE", "insgesamt", "insgesamtE", "insgesamtÜ", "insgesamtG", "LFH HH", "LFH MV", "LFH NDS", "LFH SH", "NDR 2", "NDR Info", "NDR Kultur", "N-JOY", "NDR FS", "NDR FS LFH", "WerWen")).Select
ActiveWindow.Zoom = 100
For i = 1 To Sheets.Count
Sheets(i).Visible = False
Sheets("Beginn").Visible = True
Sheets("Ende").Visible = True
Next i
Sheets("Ende").Select
Application.ScreenUpdating = True
Application.DisplayFullScreen = False
ActiveWorkbook.Save
ActiveWorkbook.Close
Case vbNo: Call Nein
Case vbCancel: Call Abbruch
End Select
End Sub

Danke für deine Hilfe
Grüße Torsten
Anzeige
AW: Schreibschutz einer Arbeitsmappe - Teil2
13.04.2006 18:21:48
Matthias
Hallo Torsten,
so in etwa:
statt:

ActiveWorkbook.Save
ActiveWorkbook.Close

so:

If Thisworkbook.ReadOnly then
ThisWorkbook.Close False
Else
ThisWorkbook.Save True
End If

Nur, was passiert, wenn der Anwender das Schließkreuz drückt?
Außderdem musst du m.E. den Anwender beim Öffnen deutlich darauf hinweisen, falls die Mappe schreibgeschützt ist. Sonst macht er Änderungen und ärgert sich am Ende...
Gruß Matthias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige