Ich habe in einer Tabelle verschieden Ansichten erstellt.
Ist es möglich, dass ich jede einzelne Ansicht mit einem Passwort schütze?
Ich möchte den verschiedenen Benutzern (alle auf einen PC) nur gewisse
Bereiche der Tabelle anvertrauen.
lg Kurt.
"kurt bauer" <kurt....@aon.at> schrieb im Newsbeitrag
news:uXnUjN#DDHA...@TK2MSFTNGP11.phx.gbl...
> Ist diese Frage zu simpel oder zu unverständlich?
zu simpel bestimmt nicht, zu unverständlich? ... vielleicht
> Habe ich gegen irgend welche "Nettiketten" verstoßen?
nicht dass ich wüsste ;-)
> Soll ich diese Frage noch einmal posten?
lieber nicht, das könnte man durchaus als Verstoß gegen
die Netikette deuten...
> Seid ihr noch da?
wir sind noch da, bedenke aber z.B., dass jetzt gerade ein
verlängertes Wochenende ist und demzufolge die Beteiligung
logischerweise nicht so hoch wie an einem normalen Werktag
ist
> > Ich habe in einer Tabelle verschieden Ansichten erstellt.
Damit meinst Du, ein und dasselbe Tabellenblatt darf User A
nur im Bereich A1:C70 sehen, User B im Bereich A5:D10
(oder so ähnlich)?
> > Ist es möglich, dass ich jede einzelne Ansicht mit einem Passwort
schütze?
so etwas könnte man wohl in VBA basteln, wenn das nötig ist, aber...
> > Ich möchte den verschiedenen Benutzern (alle auf einen PC) nur gewisse
> > Bereiche der Tabelle anvertrauen.
...wenn ich das bei ExcelXP richtig interpretiere (Menü Extras -> Schutz ->
Benutzer dürfen Bereiche bearbeiten...), bietet XP das von Hause aus an.
Kann aber nichts dazu sagen, da ich mit diesen Schutzmöglichkeiten bisher
noch nicht gearbeitet habe.
Diese erweiterten Schutzfunktionen gibt es meines Wissens aber nicht in
vorherigen Excel-Versionen, kommt also darauf an, welche Version Du
hast.
Vielleicht hilfts
Viele Grüße aus dem stürmischen hohen Norden Deutschlands
Susanne
"Susanne Wenzel" <nnue...@onlinehome.de> schrieb im Newsbeitrag
news:#mUPOGZE...@TK2MSFTNGP12.phx.gbl...
ich habe dir ein Makro dazu programmiert.
Die Werte der Konstanten, welche oberhalb der ersten Prozedur deklariert sind
musst du noch anpassen. BenutzerA hat das Passwort "A".
Es sind 3 Benutzer angedacht, mit ihrem jeweiligen Passwort.
Die jeweiligen Ansichten tragen alle den Namen der Benutzer.
Für weitere Benutzer muss du lediglich die Konstantenpaarung und die
Select Case-Anweisung erweitern.
Kopiere nachstehenden Code im VBA-Editor in ein allgemeines Modul.
Weise die Prozedur zum Aufruf auf dem Tabellenblatt einer Schaltfläche zu.
Option Explicit
Private strUser As String
Private strPw As String
Const strUserA As String = "BenutzerA"
Const strPwA As String = "A"
Const strUserB As String = "BenutzerB"
Const strPwB As String = "B"
Const strUserC As String = "BenutzerC"
Const strPwC As String = "C"
Sub MyCustomViews()
strUser = Application.InputBox( _
"Geben Sie einen Benutzernamen ein:" & _
vbNewLine & _
strUserA & vbNewLine & _
strUserB & vbNewLine & _
strUserC, _
"Ansichten", "Benutzer", Type:=2)
If strUser = "Falsch" Or strUser = "" Then Exit Sub
If strUser <> strUserA And _
strUser <> strUserB And _
strUser <> strUserC Then
MsgBox "Für " & strUser & " liegt keine Ansicht vor.", _
vbExclamation
Exit Sub
End If
strPw = Application.InputBox( _
strUser & ", geben Sie Ihr Passwort ein:", _
"Passwortabfrage", "Passwort", Type:=2)
If strPw = "Falsch" Or strUser = "" Then Exit Sub
Select Case strUser
Case strUserA
CheckPassword strPwA
Case strUserB
CheckPassword strPwB
Case strUserC
CheckPassword strPwC
End Select
End Sub
Sub CheckPassword(strP As String)
If strPw <> strP Then
MsgBox strUser & ", das Passwort ist falsch!", _
vbExclamation
Exit Sub
Else
' benutzerdefinierte Ansichten nach Benutzernamen benannt
ActiveWorkbook.CustomViews(strUser).Show
End If
End Sub
Kommst du damit weiter?
--
Mit freundlichen Grüßen
Melanie Breden
_____________________
[Microsoft MVP für Excel]
> Eigentlich möchte ich nicht immer den Benutzer wechseln wenn ich in einer
> Tabelle arbeite, deswegen wäre mir eine Lösung mit "Spaltenschutz" lieber
> gewesen.
heißt das, Deine Arbeitsmappe mit dieser Tabelle ist nur auf einem PC
vorhanden; an diesem einen PC sitzt mal der eine, mal der andere User?
Oder befindet sich Deine Arbeitsmappe in einem Netzwerk und die
jeweiligen User greifen von ihren PCs auf diese Arbeitsmappe zu?
> Benutzer A darf Spalte A und Spalte E sehen. Benutzer B Spalte A, D und E,
> und Benutzer C darf alle Spalten sehen.
Wenn ich das jetzt richtig verstehe, noch eine kleine Anregung:
Ich würde per VBA die Spalten in Abhängigkeit vom User ein/ausblenden und
das Blatt schützen, damit die Spalten nicht vom User eingeblendet werden
können.
Viele Grüße aus dem hohen Norden Deutschlands
Susanne
Nachtrag:
Das Wichtigste hätte ich beinahe vergessen :-)
Damit die Benutzer den Ansichten-Dialog nicht aufrufen kann,
muss er in der Mappe deaktiviert werden.
Füge folgende Prozeduren im VBA-Editor in das Codemodul "DieseArbeitsmappe" ein:
Private Sub Workbook_Activate()
Application.CommandBars("View") _
.Controls("Benutzerdefinierte Ansichten...") _
.Enabled = False
End Sub
Private Sub Workbook_Deactivate()
Application.CommandBars("View") _
.Controls("Benutzerdefinierte Ansichten...") _
.Enabled = True
End Sub
--
Mit freundlichen Grüßen
Melanie Breden
_____________________
[Microsoft MVP für Excel]
"Melanie Breden" <Melanie...@mvps.org> schrieb im Newsbeitrag news:Ovw1uqa...@TK2MSFTNGP12.phx.gbl...
"Melanie Breden" <Melanie...@mvps.org> schrieb im Newsbeitrag
news:Ovw1uqa...@TK2MSFTNGP12.phx.gbl...
"Susanne Wenzel" <nnue...@onlinehome.de> schrieb im Newsbeitrag
news:#r3ZjwaE...@TK2MSFTNGP11.phx.gbl...
"kurt bauer" <kurt....@aon.at> schrieb im Newsbeitrag
news:OkUqkRbE...@TK2MSFTNGP11.phx.gbl...
"kurt bauer"schrieb:
> Danke!
> Du hast den Nagel auf dem Kopf getroffen.
Hatte das Hämmerchen gerade zur Hand:-)
> Genau so etwas habe ich gesucht.
> Zu meinem Glück fehlt nur noch, die Tabelle schützen zu können.
> Jetzt funkioniert mit eingeschaltenem Blattschutz dein Makro leider nicht.
> Außerdem ist es relativ einfach die ausgeblendeten Spalten wieder
> einzublenden bzw. über Ansichten einfach eine andere Ansicht zu wählen.
> Wenn du das noch hinbringen würdest, wäre mein Problem zur Gänze gelöst.
> In der Hoffnung, ein 'rüberkommendes' Dankeschön zu schicken schließe ich
ist mit Freude angekommen :-)
Das mit dem Schutz ist mir auch aufgefallen.
So ein Projekt entwickelt sich oft Häppchenweise :-)
Du musst nur die zweite Prozedur ergänzen.
Sub CheckPassword(strP As String)
If strPw <> strP Then
MsgBox strUser & ", das Passwort ist falsch!", _
vbExclamation
Exit Sub
Else
' benutzerdefinierte Ansichten nach Benutzernamen benannt
With ActiveSheet
.Unprotect "PassWort"
ActiveWorkbook.CustomViews(strUser).Show
.Protect "PassWort"
End With
End If
End Sub