Discussion:
Windows Anmeldename beim Start abfragen
(zu alt für eine Antwort)
Detlef
2009-09-17 10:03:08 UTC
Permalink
Hallo @ all

Ich habe in einer Datei ein Tabellenblatt "user".
Dort steht ein windowsanmeldename(Spalte A ) und case ( Spalte B )

Excel soll nun beim Start den Windowsanmeldename abfragen,mit der Tabelle
vergleichen und entspr. dem case einen Makro starten.

Case 1 : starte Makro1
case 2 : starte Makro2
Case else Starte Makro3

Beispiel : Müller hat bei Case eine 1, also soll Makro 1 gestartet werden
wenn müller die Datei öffnet.

Kann mir einer helfen wie die Abfrage aussehen muss und wo das hinkommt ?

Ich bekomm das einfach nicht hin.

Danke und Gruß

Detlef
Claus Busch
2009-09-17 10:15:04 UTC
Permalink
Hallo Detlef,
Post by Detlef
Ich habe in einer Datei ein Tabellenblatt "user".
Dort steht ein windowsanmeldename(Spalte A ) und case ( Spalte B )
Excel soll nun beim Start den Windowsanmeldename abfragen,mit der Tabelle
vergleichen und entspr. dem case einen Makro starten.
Case 1 : starte Makro1
case 2 : starte Makro2
Case else Starte Makro3
Beispiel : Müller hat bei Case eine 1, also soll Makro 1 gestartet werden
wenn müller die Datei öffnet.
du brauchst den Anmeldenamen nicht in die Tabelle zu schreiben. Probiere es
einfach mal so:
Private Sub Workbook_Open()

Select Case Environ("UserName")
Case "Müller"
makro1
Case "Meier"
makro2
Case Else
makro3
End Select

End Sub


Mit freundlichen Grüssen
Claus Busch
--
Win XP PRof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2
Detlef
2009-09-17 10:33:17 UTC
Permalink
Hallo Claus

Danke, klappt prima.

Ich rufe nun jeweils einen Makro auf, der jeweils einen Blattschutz setzt
oder aufhebt, jenachdem wer angemeldet ist. Gibt es dafür vielleicht einen
anderen Befehl ? Makro1 : voller Dateizugriff - Makro2 : nur gucken und
drucken aber sonst nix. Oder geht das eben nur über Blattschutz ?

Danke und Gruß
Post by Claus Busch
Hallo Detlef,
Post by Detlef
Ich habe in einer Datei ein Tabellenblatt "user".
Dort steht ein windowsanmeldename(Spalte A ) und case ( Spalte B )
Excel soll nun beim Start den Windowsanmeldename abfragen,mit der Tabelle
vergleichen und entspr. dem case einen Makro starten.
Case 1 : starte Makro1
case 2 : starte Makro2
Case else Starte Makro3
Beispiel : Müller hat bei Case eine 1, also soll Makro 1 gestartet werden
wenn müller die Datei öffnet.
du brauchst den Anmeldenamen nicht in die Tabelle zu schreiben. Probiere es
Private Sub Workbook_Open()
Select Case Environ("UserName")
Case "Müller"
makro1
Case "Meier"
makro2
Case Else
makro3
End Select
End Sub
Mit freundlichen Grüssen
Claus Busch
--
Win XP PRof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2
Thomas Ramel
2009-09-17 18:04:59 UTC
Permalink
Grüezi Detlef

Detlef schrieb am 17.09.2009
Post by Detlef
Ich rufe nun jeweils einen Makro auf, der jeweils einen Blattschutz setzt
oder aufhebt, jenachdem wer angemeldet ist. Gibt es dafür vielleicht einen
anderen Befehl ? Makro1 : voller Dateizugriff - Makro2 : nur gucken und
drucken aber sonst nix. Oder geht das eben nur über Blattschutz ?
Das kannst Du sogar ganz ohne VBA-Makros haben ;-)

Über Extras/Schutz/Benutzer dürfen Bereiche bearbeiten kannst Du jedem User
einen Bereich zuweisen, den er ohne Passwort bearbeiten darf. Die
Berechntigung erfolgt über den Anmeldenamen am Netzuwerk - fürs Einrichten
solltest Du also am Netzwerk angemeldet sein und Zugriff auf die Usernamen
der anderen User haben.
Aktviert wird das Ganze dann wenn Du den Blattschutz setzt.


Mit freundlichen Grüssen
Thomas Ramel
--
- MVP für Microsoft-Excel -
[Vista Ultimate SP-1 / xl2007 SP-1]
Detlef
2009-09-18 04:59:01 UTC
Permalink
Hallo Thomas

Hab mir das mal angesehen. Soweit ich das sehe, geht das aber jeweils nur
für 1 Blatt. Wenn ich also die gesamte Mappe so schützen will, muss ich die
gesamte Prozedur bei allen 14 Blättern wiederholen. Oder hab ich was
übersehen, und das geht das auch für die gesamte Mappe ?

Gruß

Detlef
Post by Thomas Ramel
Grüezi Detlef
Detlef schrieb am 17.09.2009
Post by Detlef
Ich rufe nun jeweils einen Makro auf, der jeweils einen Blattschutz setzt
oder aufhebt, jenachdem wer angemeldet ist. Gibt es dafür vielleicht einen
anderen Befehl ? Makro1 : voller Dateizugriff - Makro2 : nur gucken und
drucken aber sonst nix. Oder geht das eben nur über Blattschutz ?
Das kannst Du sogar ganz ohne VBA-Makros haben ;-)
Über Extras/Schutz/Benutzer dürfen Bereiche bearbeiten kannst Du jedem User
einen Bereich zuweisen, den er ohne Passwort bearbeiten darf. Die
Berechntigung erfolgt über den Anmeldenamen am Netzuwerk - fürs Einrichten
solltest Du also am Netzwerk angemeldet sein und Zugriff auf die Usernamen
der anderen User haben.
Aktviert wird das Ganze dann wenn Du den Blattschutz setzt.
Mit freundlichen Grüssen
Thomas Ramel
--
- MVP für Microsoft-Excel -
[Vista Ultimate SP-1 / xl2007 SP-1]
Thomas Ramel
2009-09-19 06:30:04 UTC
Permalink
Grüezi Detlef

Detlef schrieb am 18.09.2009
Post by Detlef
Hab mir das mal angesehen. Soweit ich das sehe, geht das aber jeweils nur
für 1 Blatt. Wenn ich also die gesamte Mappe so schützen will, muss ich die
gesamte Prozedur bei allen 14 Blättern wiederholen. Oder hab ich was
übersehen, und das geht das auch für die gesamte Mappe ?
IMO ist das blattweise angedacht, das ist korrekt - so aber können einzelne
User auch einzelne Blätter gar nicht bearbeiten, wäherend sie auf andere
kompletten Zugriff haben.
Das macht daher durchaus viel Sinn.

Die Vergabe und Einrichtung der Berechtigungen kannst Du auch per VBA
automatisieren, dann spielt es auch keine Rolle mehr wenn es mehrere
Blätter sind.
Es kommt halt ganz auf deine Vorstellungen und Wünsche an.

Des weiteren musst Du das nur einmal pro Mappe einrichten und hast
anschliessend kein VBA in der Mappe (welches nicht klappt wenn die Makros
beim öffnen deaktiviert werden).


Mit freundlichen Grüssen
Thomas Ramel
--
- MVP für Microsoft-Excel -
[Vista Ultimate SP-1 / xl2007 SP-1]
Andreas Killer
2009-09-17 10:25:42 UTC
Permalink
Post by Detlef
Ich habe in einer Datei ein Tabellenblatt "user".
Dort steht ein windowsanmeldename(Spalte A ) und case ( Spalte B )
Excel soll nun beim Start den Windowsanmeldename abfragen,mit der Tabelle
vergleichen und entspr. dem case einen Makro starten.
Case 1 : starte Makro1
case 2 : starte Makro2
Case else Starte Makro3
Sub test()
Dim C As Range, S As String
With Sheets("User")
'Logon-Name holen
S = Environ$("username")
'Danach in Spalte A suchen
Set C = .Range("A:A").Find(S, LookIn:=xlValues, LookAt:=xlWhole)
'Gefunden?
If C Is Nothing Then Exit Sub
'Makro starten
Select Case .Cells(C.Row, "B")
Case 1: Makro1
Case 2: Makro2
Case Else: Makro3
End Select
End With
End Sub
Loading...