Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1460to1464
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
Inhaltsverzeichnis

Schutz bei Arbeitsmappe

Schutz bei Arbeitsmappe
23.11.2015 10:41:24
matthias
Hallo,
über einen Button in einer Userform kann ich die Personen auswählen, die eine Datei bearbeiten dürfen.
Wie schaffe ich es jetzt aber, dass erst wenn ein Name aus der Listbox ausgewählt ist, dass eine Bearbeitung der gesamten Datei möglich ist.
Wenn kein Name ausgewählt ist, soll eine Meldung kommen.
Ich habe bisher nur einen Blattschutz auf einem Blatt in der Datei.
Gruß

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schutz bei Arbeitsmappe
23.11.2015 14:20:46
fcs
Hallo Mathias,
hier Beispiele für den die erfordelichen Makros im Userform-Modul und für "DieseArbeitsmappe"
Gruß
Franz
'Code Beispiel unter dem Userform
Option Explicit
Private Sub CommandButton1_Click()
Dim wks As Worksheet
With Me.ListBox1
If .ListIndex = -1 Then
MsgBox "Bitte erst einen Namen in der Listbox auswählen", vbOKOnly, "Prüfung Auswah Name"
Else
For Each wks In ActiveWorkbook.Worksheets
Select Case wks.Name
Case "Tabelle ABC", "Tabelle XYZ"
'Tabellenblätter mit diesen NAmen geschüzuzt lassen
Case Else
wks.Unprotect Password:="" 'ggf. mit Passwort arbeiten
End Select
Next
End If
End With
Me.Hide 'oder Unload me
End Sub
Private Sub UserForm_Initialize()
With Me.ListBox1
.AddItem "Name01"
.AddItem "name 02"
End With
End Sub

'Code unter DieseArbeitsmappe
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim wks As Worksheet
Dim bolSaved As Boolean
bolSaved = Me.Saved
For Each wks In Me.Worksheets
Select Case wks.Name
Case "Tabelle ABC", "Tabelle XYZ"
'Tabellenblätter mit diesen nichts machen
Case Else
wks.Protect Password:="" 'ggf. mit Passwort arbeiten
End Select
Next
If bolSaved = True Then Me.Save
End Sub
Private Sub Workbook_Open()
UserForm1.Show
End Sub

Anzeige
AW: Schutz bei Arbeitsmappe
23.11.2015 15:02:18
Lars
hallo,
danke funktioniert wunderbar.
Ich habe aber bereits einen Blattschutz auf den Blättern. Somit kann ich ja den Blattschutz nicht nochmal verwenden. Ich bräuchte nun eher etwas wie einen Arbeitsmappenschutz.

AW: Schutz bei Arbeitsmappe
23.11.2015 15:05:19
Lars
Sprich nachdem ich den Button betätige sind alle Felder wie beschreibbar und das sollte nicht sein, deshalb bräuchte ich einen übergeordneten Schutz.

AW: Schutz bei Arbeitsmappe
23.11.2015 15:28:48
Rudi
keine Ahnung was du dir vorstellst.
Setze den Schreibschutz und hebe ihn wieder auf, wenn Benutzer ausgewählt.
Gruß
Rudi

AW: Schutz bei Arbeitsmappe
23.11.2015 15:36:37
Lars
Es ist so, dass ein schon einen Blattschutz definiere habe auf meinem Blatt.
Teilweise sind aber Zellen beschreibbar.
Ich möchte nun, vorab bevor überhaupt eine Zelle beschreibbar ist, den Benutzer festlegen können.
Erst wenn dieser ausgewählt ist, geht eine übergeordnete Sperre weg und gibt das Blatt frei.
Jedoch mit dem bisherigen Blattschutz, sodass nur bestimmte Zellen beschreibbar sind.
Weist du jetzt was ich will?

Anzeige
AW: Schutz bei Arbeitsmappe
23.11.2015 15:43:15
Rudi
Hallo,
sowas gibt es nicht.
Gruß
Rudi

AW: Schutz bei Arbeitsmappe
23.11.2015 15:57:38
Lars
Alternative Lösung? oder Vorschlag?

AW: Schutz bei Arbeitsmappe
23.11.2015 16:01:49
Rudi
in diese Arbeitsmappe:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Speichern unter verhindern
Cancel = SaveAsUI
End Sub
Private Sub Workbook_Open()
Me.ChangeFileAccess xlReadOnly
UserForm1.Show
End Sub
Im Userform:
Private Sub CommandButton1_Click()
If ListBox1.ListIndex > -1 Then
ActiveWorkbook.ChangeFileAccess xlReadWrite
Hide
Else
MsgBox "Der Meldungstext"
End If
End Sub
Dann ist die Mappe schreibgeschützt. Man kann drin rum machen aber nicht speichern.
Gruß
Rudi

Anzeige
AW: Schutz bei Arbeitsmappe
23.11.2015 16:10:07
Lars
und wenn dann ein Benutzer ausgewählt ist? kann gespeichert werden?

AW: Schutz bei Arbeitsmappe
23.11.2015 16:43:15
Lars
Ich hätte noch eine Idee.
Geht es einfach eine durchsichtiges Rechtteck über den ganzen Bildschirm zu legen,
wenn ein Benutzer ausgefüllt wurde wird das Rechteckt gelöscht.
Bei Öffnen der Datei wird das Rechteck wieder vor allem gelegt, bis wieder eine Benutzer aktiviert wurde.
Geht so etwas?

AW: Schutz bei Arbeitsmappe
23.11.2015 17:07:33
Rudi
ich hab noch eine bessere Idee.
markiere deine Eingabezellen (mit gedrückter Strg-Taste) und definiere einen Namen (z.B. Eingabe)
In Diese Arbeitsmappe:
Private Sub Workbook_Open()
With Sheets(1)
.Activate
.Unprotect "abc"
Range("eingabe").Locked = True  'sperrt die Eingabezellen
.Protect "abc"
End With
UserForm1.Show
End Sub
Im Userform:
Private Sub CommandButton1_Click()
If ListBox1.ListIndex > -1 Then
With Sheets(1)
.Unprotect "abc"
.Range("eingabe").Locked = False 'gibt die Eingabezellen frei
.Protect "abc"
End With
Else
MsgBox "Bearbeitung gesperrt"
End If
Hide
End Sub
Gruß
Rudi

Anzeige
AW: Schutz bei Arbeitsmappe
23.11.2015 17:51:51
Lars
Super danke.
Aber der anfängliche Bereichsweise Blattschutz geht aber dann nicht mehr, weil alles Zellen nicht mehr gesperrt sind :(

AW: Schutz bei Arbeitsmappe
23.11.2015 18:48:01
KlausF
Hallo Lars,
Du könntest die Scroll.Area aller Blätter auf eine einzige Zelle pro Blatt beschränken,
und wenn der korrekte Name über die Userform ausgewählt ist, die Beschränkung wieder aufheben.
Im Beispiel kann auf jedem Blatt nur Zelle A1 angewählt werden:
https://www.herber.de/bbs/user/101755.xls
Gruß
Klaus

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige