Hallo zusammen,
wir haben bei uns in der Firma das folgende Problem:
Es gibt Excel-Dateien, auf die mehrere Leute zugreifen sollen. Allerdings müssen nur die Projektleiter Änderungen vornehmen.
Ideal wäre also folgende Möglichkeit:
Doppelklick auf die Datei => Pop-Up mit zwei Schaltflächen mit der Frage "Schreibgeschützt" oder "Zur Bearbeitung" öffnen.
Es soll kein Passwort verwendet werden. Im Idealfall ist die "Standard-Antwort" schreibgeschützt.
Gibt es hier etwas einfaches? Von Haus aus habe ich nichts gefunden.
Danke
Chelipe
Moin
Muss es unbedingt Doppelclick sein, oder geht evtl. auch etwas anderes?
z.B. Wechsel des Tabellenblatts oder Tastenkombination oder sonstwas
Gruss Igel
Probier doch mal das hier.
Hallo,
danke erstmal; das ist allerdings noch nicht so richtig das, was ich suche.
Vielleicht oder wahrscheinlich habe ich mich auch was unklar ausgedrückt.
Ihr kennt ja die Funktion, dass eine Excel-Datei komplett mit einem Passwort geschützt sein soll. Dann wird man ja beim Öffnen aufgefordert das Passwort einzugeben.
Statt dieser Frage soll nur kommen "schreibgeschützt öffnen" oder "zur Bearbeitung".
Heißt, wenn Mitarbeiter A das Dokument öffnet und "schreibgeschützt öffnen" wählt und danach Mitarbeiter B das Dokument öffnet, kann er es bearbeiten. So in die Richtung stelle ich mir das vor.
Grüße
Hallo Chelipe,
meines Wissens ist es nicht möglich, bereits vor dem Öffnen einer Excel-Mappe per VBA oder ähnlichem seine eigenen Dialoge zu verwenden.
Kennst Du die Funktion "Arbeitsmappe freigeben"? Vielleicht ist das eine Alternative für Dich?
LG Gerd
Hallo,
vor einiger Zeit gab es in einem Forum diesen Code, der prüft, ob eine Datei bereits geöffnet ist:
Code:
Private Declare Function lOpen Lib "kernel32" Alias "_lopen" _
(ByVal lpPathName As String, ByVal iReadWrite As Long) As Long
Private Declare Function lClose Lib "kernel32" _
Alias "_lclose" (ByVal hFile As Long) As Long
Private Const OF_SHARE_EXCLUSIVE = &H10
Private Function FileIsOpen(strFullPath_FileName As String) As Boolean
Dim hdlFile As Long
Dim lastErr As Long
hdlFile = -1
hdlFile = lOpen(strFullPath_FileName, OF_SHARE_EXCLUSIVE)
If hdlFile = -1 Then
lastErr = Err.LastDllError
Else
lClose (hdlFile)
End If
FileIsOpen = (hdlFile = -1) And (lastErr = 32)
End Function
Sub CheckFileOpen()
If FileIsOpen("Full File Name") Then
MsgBox "File Is open"
Else
MsgBox "File Is Not open"
End If
End Sub
Ohne Basiskenntnisse mit API's dürfte es schwierig sein.
mfg
(es gibt eine weitere Variante, eine Datei mit OPEN fileFOR INPUT zu öffnen und auf "lock" zu prüfen)
Hallo Chelipe,
folgender Code kommt in das schon vorhandene VBA-Modul 'DieseArbeitsmappe':
' **************************************************************
' Modul: DieseArbeitsmappe Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************
Option Explicit
Private Sub Workbook_Open()
If MsgBox("Schreibgeschützt öffnen?", vbYesNo + vbQuestion) = vbYes Then
Me.ChangeFileAccess xlReadOnly
End If
End Sub
Gruß Uwe
Hi,
Du könntest die Datei auch mit Schreibschutzempfehlung abspeichern, dann kommt beim Start immer die Nachfrage:
"Der Autor möchte gerne, daß Sie diese Datei schreibgeschützt öffnen!" mit den Buttons "Schreibschutz" und "Bearbeiten".
Das geht so:
"Datei" - "Speichern unter" - Pfad auswählen, Name eingeben - unten in diesem Dateispeicherfenster das "Tools" anklicken und dort dann "Allgemeine Optionen" und dann den Haken setzen bei "Schreibschutz empfehlen".
[
attachment=14948][
attachment=14949]
Danke Rabe, danke Kuwer!
Beides erscheint mir sinnvoll :) Mal sehen, welches wir dann nutzen werden!
Kuwer:
Was mir noch einfällt; gibt es eine Möglichkeit bei Deinem Script noch hinzufügen, dass diese Meldung bei bestimmten Personen (z.B. Projektleiter, Abteilungsleiter) nicht kommt? Wären so um die 10-15 Personen.
Danke
Chelipe