Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1064to1068
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

Userbezogener Schreibschutz und vorauswahl und so

Userbezogener Schreibschutz und vorauswahl und so
01.04.2009 12:34:36
Wolle
Hallo super Forum und Excel sowie VBA Freaks und Könner,
Habe folgendes vor:
Userbezogener Schreibschutz und so weiter.
1. Jeder User darf nur "seine" Zellen (z.B. Elfriede A3-D3 und A15-B15) beschreiben.
2. Elfriede darf die Zellen von allen bearbeiten (sie ist Teamleiter), aber nicht die ganze Tabelle (das kann ich sicherlich über gesperrte Zellen einstellen)
Der Teamleiter steht immer an erster Stelle (hier A3).
3. Userbezogen sollen die zu bearbeitenden Zellen farbig dargestellt werden.
4. Der User der gerde mit der Tabelle auf seinem Rechner arbeitet soll hinter der Zelle seines Namens (hier spalte B3) ein X bekommen .Vorher muss der
Bereich (hier B3-B7 gereinigt werden)
5. Die Usernamenabfrage darf nicht zwischen Groß- und Kleinschrift unterscheiden.
6 Der Username darf nicht als Namen in VBA stehen, sonder muss aus der Tabelle geholt werden (hier: A3-A6)
Ich hoffe mal das es da auch eine Lösung für gibt und
verneige mich vor Euch und bedanke mich schon einmal.
lg Wolle
https://www.herber.de/bbs/user/60899.xls

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userbezogener Schreibschutz und vorauswahl und so
01.04.2009 17:18:32
fcs
Hallo Wolle,
hier mal ein Vorschlag.
Sobald das Makro eingerichtet ist, werden beim Schließen der Datei alle Zellen in Tabelle1 gesperrt.
Den Code muss du im VBA-Editor unter dem Modul "DieseArbeitsmappe" einfügen.
Beim Öffnen der datei wird der Username (Anmeldename im Netz) geprüft und die entsprechenden Zellen gefärbt und entsperrt.
Das Makro arbeitet mit dem einfachen Blattschutz ohne Kennwort.
Gruß
Franz

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Alle Zellen sperren
Dim wks As Worksheet
Set wks = Worksheets("Tabelle1")
With wks
.Unprotect
'Alle Zellen sperren
.Cells.Locked = True
.Protect
End With
Me.Save
End Sub
Private Sub Workbook_Open()
'Userbereich entsperren und markieren
Dim wks As Worksheet
Dim strUser As String, strTeamleiter As String
Dim rngUserA As Range, rngUserB As Range, Zelle As Range
Set wks = Worksheets("Tabelle1")
strUser = LCase(VBA.Environ("Username"))
'strUser = LCase("Elfriede") 'Testzeile
With wks
'Teamleiter merken
strTeamleiter = LCase(.Range("A3").Value)
.Unprotect
'Alle Zellen sperren
.Cells.Locked = True
'oberen Bereich (A3 bis max. zur nächsten Leerzeile nach unten) markieren, aufbereiten
Set rngUserA = .Range(.Cells(3, 1), .Cells(3, 1).End(xlDown))
'Farben zurücksetzen
.Range(rngUserA, rngUserA.Offset(0, 3)).Interior.ColorIndex = xlColorIndexNone
'"X" löschen
rngUserA.Offset(0, 1).ClearContents
For Each Zelle In rngUserA
If strUser = strTeamleiter Then
.Range(Zelle.Offset(0, 1), Zelle.Offset(0, 3)).Locked = False
End If
If LCase(Zelle.Value) = strUser Then
.Range(Zelle.Offset(0, 1), Zelle.Offset(0, 3)).Locked = False
.Range(Zelle, Zelle.Offset(0, 3)).Interior.ColorIndex = 4 'hellgrün
Zelle.Offset(0, 1) = "X"
End If
Next
'unteren bereich (A15 bis zur letzten Zeile mit daten in Spalte A) markieren, aufbereiten
Set rngUserB = .Range(.Cells(15, 1), .Cells(.Rows.Count, 1).End(xlUp))
.Range(rngUserB, rngUserB.Offset(0, 1)).Interior.ColorIndex = xlColorIndexNone
For Each Zelle In rngUserB
If strUser = strTeamleiter Then
.Range(Zelle.Offset(0, 1), Zelle.Offset(0, 1)).Locked = False
End If
If LCase(Zelle.Value) = strUser Then
.Range(Zelle.Offset(0, 1), Zelle.Offset(0, 1)).Locked = False
.Range(Zelle, Zelle.Offset(0, 1)).Interior.ColorIndex = 4 'hellgrün
End If
Next
.Protect
End With
End Sub


Anzeige
AW: Userbezogener Schreibschutz und vorauswahl und so
02.04.2009 07:18:42
Wolle
Hallo Franz,
vielen vielen Dank. So wie ich es auf die schnelle getestet habe, klappt es .
Jetzt werde ich das ganze in meine "richtige" Excelmappe einbauen, und dann werden wir sehen. Aber ich denke das sollte gehen.
Meine Exceltabelle entwickelt sich langsam zur Eierlegendenwollmichsau.
Eine Frage noch:
Wenn ein User nicht seine Zellen bearbeiten möchte, bekommt er ja eine Fehlermeldung bzw. eine Warnmeldung vom System. Kann man diese Meldung ändern? Ich denke so wie "Halt Stopp! Sie haben hier keine Berechtigung zu ändern. Melden Sie sich beim Teamleiter".
Danke für die super Hilfe.
Gruß Wolle aus Schleswig-Holstein
Anzeige
AW: Userbezogener Schreibschutz und vorauswahl und so
02.04.2009 09:33:16
fcs
Hallo Wolle,
die Systemmeldung kann man nicht ändern. Ich zumindest nicht ;-).
Ergänzende Lösungen, wie z.B. die Überwachung eines Doppelklicks in eine Zelle ohne Berechtigung, werden schon relativ kompliziert.
Ich würd an deiner Stelle in der Datei ein zusätzliches Tabellenblatt mit Infos zum Arbeiten mit der Datei einfügen.
z.B: Eingaben nur möglich bei Aktivieren der Makros beim Öffnen
Eingaben nur möglich in farbigen Zellen hinter dem Usernamen.
Wenn Username nicht gelistet, dann bitte beim teamleiter melden.
etc.
Gruß
Franz
AW: Userbezogener Schreibschutz und vorauswahl und so
02.04.2009 10:42:05
Wolle
Hallo Franz,
Zellen formatieren, Unter Schutz dann die Zellen "entsperrt", die ausgewählt werden dürfen (alle die der Teamleiter bearbeitetn darf bzw. kann).
Dann unter Extras, Schutz, Blatt schützen; alle Bearbeiter dieser Mappe dürfen : nicht gesperrte Zellen auswählen.
Resultat:
Jeder Benutzer kann nur "seine" Zellen überhaubt anklicken. Andere Zellen können erst gar nicht ausgewählt werden, so gibt es dann auch keine Systemmeldung.
Eigentlich ganz einfach....man muss es halt nur wissen.
Schönen Tag noch.
Gruß Wolle
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige