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

Registerblatt frei geben ??

Registerblatt frei geben ?
26.01.2009 10:08:58
Denise
Habe für die Anwesenheitskontrolle ein Excell mit einer Registerkarte pro Person.
Ist es möglich für einzelne Personen nur deren spezifische Registerkasrte frei zu geben ?

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Registerblatt frei geben ?
26.01.2009 10:20:00
Tino
Hallo,
schau mal unter
Extras -> Schutz -> Benutzer dürfen Bereich Bearbeiten.
Userbild
Vielleicht ist da was für Dich dabei.
Gruß Tino
AW: Registerblatt frei geben ?
26.01.2009 10:44:34
Denise
Hi Tino,
danke für die Antwort, das ist schon mal eine gute Idee, den Bereich festzulegen, worin der jeweilige Mitarbeiter Einträge machen kann.
Aber was ich eigentlich möchte ist, dass jeweils nur das EIGENE Registerblatt eingesehen werden kann, ist da möglich ?
Danke !!!!
AW: Registerblatt frei geben ?
26.01.2009 11:37:41
Tino
Hallo,
nur über VBA
Gruß Tino
AW: Registerblatt frei geben ?
26.01.2009 11:58:00
Denise
okay, habe nochmal nachgeschaut, VBA ist ok
Anzeige
AW: Registerblatt frei geben ?
26.01.2009 13:26:44
Tino
Hallo,
hier mal ein Beispiel.
Die Liste mit der if musst Du anpassen,
Username und die Tabelle die er verwenden darf.
Der Username ist der, mit der er sich am PC anmeldet.
Wenn es ein Blatt gibt, dass immer eingeblendet sein kann,
kann man es auch einfacher machen.
kommt als Code in DieseArbeitsmappe
Option Explicit 
 
Private Sub Workbook_Open() 
Dim A As Integer, myTabs As Worksheet 
Dim sUserName As String 
With Application 
 .ScreenUpdating = False 
     
'    Ist der Username der am PC angemeldet ist 
    sUserName = Environ$("USERNAME") 
     
    With ThisWorkbook 
        For A = 1 To .Worksheets.Count 
         Worksheets(A).Visible = True 
        Next A 
         
        For A = 1 To .Worksheets.Count 
        'If Abfrage entsprechend erweitern 
        'Username und Tabelle die er benutzen darf 
         With Worksheets(A) 
                If sUserName = "Franz" And .Name = "Tabelle1" Then 
                    .Visible = True 
                ElseIf sUserName = "Paul" And .Name = "Tabelle2" Then 
                    .Visible = True 
                ElseIf sUserName = "Mayer" And .Name = "Tabelle3" Then 
                    .Visible = True 
                ElseIf sUserName = "Lisa" And .Name = "Tabelle4" Then: 
                    .Visible = True 
                ElseIf sUserName = "Fritz" And .Name = "Tabelle5" Then 
                    .Visible = True 
                Else:  .Visible = xlVeryHidden 
                End If 
          End With 
        Next A 
    End With 
 
.ScreenUpdating = True 
End With 
End Sub 


Gruß Tino

Anzeige
AW: Registerblatt frei geben ?
26.01.2009 14:19:56
Denise
Hallo Tino,
wau, das sieht nicht soooo einfach aus und mein Excell ist (als Schweizerin..) in Deutsch :-)
Folgendes, im Fall ich mich nicht genau ausgedrückt habe:
Anwesenheitskontrolle für 6 Mitarbeiter, jeder ist in einem eigenen Registerblatt erfasst.
Jeder einzelne kann sehen, dass die anderen auch erfasst sind, aber soll nur das eigene Registerblatt
öffnen können.
- also ich muss auf jedem einzelnen Rechner den Zugriff einrichten, korrekt ?
- sollte es eine einfachere Lösung geben, wär auch nicht schlecht
Auf jeden Fall vielen Dank für die Hilfe.
AW: Registerblatt frei geben ?
26.01.2009 14:42:25
Tino
Hallo,
kann man mit zwei Eventmakros machen, ist aber nicht gerade dass gelbe vom Ei.
Sobald die Datei ohne Makros gestartet wird ist es schon vorbei.
kommt als Code in DieseArbeitsmappe
Option Explicit 
 
Private Sub Workbook_Open() 
Dim sUser As String 
sUser = Environ$("USERNAME") 
    
Application.ScreenUpdating = False 
Application.EnableEvents = False 
  
 With ThisWorkbook 
    If sUser = "Administrator" Then 
     .Sheets("Tabelle1").Select 
    ElseIf sUser = "Hans" Then 
     .Sheets("Tabelle2").Select 
    ElseIf sUser = "Mayer" Then 
     .Sheets("Tabelle3").Select 
    End If 
 End With 
  
Application.EnableEvents = True 
Application.ScreenUpdating = True 
End Sub 
 
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) 
Dim sUser As String 
sUser = Environ$("USERNAME") 
 
Application.ScreenUpdating = False 
Application.EnableEvents = False 
     
With ThisWorkbook 
    If sUser = "Administrator" Then 
     .Sheets("Tabelle1").Select 
    ElseIf sUser = "Hans" Then 
     .Sheets("Tabelle2").Select 
    ElseIf sUser = "Mayer" Then 
     .Sheets("Tabelle3").Select 
    End If 
End With 
 
Application.EnableEvents = True 
Application.ScreenUpdating = True 
End Sub 


Ich würde es eher so machen wie im ersten Beitrag beschrieben und alle Zellen einer Tabelle für einen bestimmten User Freigeben, dann können andere zwar reinschauen aber nichts ändern.
Gruß Tino

Anzeige
AW: Registerblatt frei geben ?
26.01.2009 14:53:00
Denise
Hallo Tino,
eigentlich sollten die anderen gar nicht reinschauen können.
Wenn das nicht zu machen ist, muss ich wohl für jeden ein einzelnes Excel machen.
AW: Registerblatt frei geben ?
26.01.2009 17:48:23
Tino
Hallo,
ist wohl das einfachste.
Gruß Tino
AW: Kinderstube ?
26.01.2009 10:27:38
Erich
Hallo Denise,
(fast) unabhängig davon, was genau du mit "frei zu geben" meinst: Die Antwort auf deine Frage ist vermutlich:
Ja, das ist wohl möglich.
Das hier könnte weiterhelfen: https://www.herber.de/bbs/user/42137.jpg
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige