Dringend Hilfe von VBA-Profis benötigt............
25.01.2006 22:12:27
VBA-Profis
ich habe ein Problem bei dem ich nicht recht weiter komme.
Das folgende VBA-Projekt sollte zum Ziel haben, dass für die Mitarbeiter die sich mit einem der Windows-User von Mitarbeiter1 bis Mitarbeiter19 am PC anmelden, ausschliesslich nur die dem jeweiligen Mitarbeiter zugeordente Tabelle geöffnet wird und alle anderen Tabellenblätter verborgen bleiben.
Es sollen nur dann alle Tabellen angezeigt werden, falls sich der Mitarbeiter mit dem Windows-User Mitarbeiter500 , der Chef, anmeldet.
Falls die Excel-Datei ohne die Makros zu aktivieren geöffnet wird soll nur die leere "schlusstabelle" angezeigt werden.
Darüber hinaus soll auch dann nur die "schlusstabelle" und sonst nichts angezeigt werden, wenn die Tabelle von einer Person geöffnet wird, die sich mit einem nicht im VBA-Projekt, siehe unten, genannten Windows-User angemeldet hat.
Derzeit stellt es sich so dar, dass in der freigegeben Datei, ab und an doch manche Mitarbeiter alle Tabellenblätter sehen können. Ich habe noch nicht herausgefunden was der Grund dafür ist.
Schaut mal bitte mit eurem VBA-Profiblick über das unten aufgeführte Projekt und sagt mir, was ich zu ändern habe, damit es so funktioniert wie ich es oben beschrieben habe.
Vielen herzlichen dank schon mal für Eure Mühe!!!!!!!!!!!!!!
Ein verzweifelter Excel-User:-)
__________________________________________________________________________
Private Sub workbook_open()
Application.ScreenUpdating = False
uNam = Environ("Username")
If uNam = " mitarbeiter01" Then Sheets("mitarbeiter01").Visible = True
If uNam = " mitarbeiter02" Then Sheets("mitarbeiter02").Visible = True
If uNam = " mitarbeiter03" Then Sheets("mitarbeiter03").Visible = True
If uNam = " mitarbeiter04" Then Sheets("mitarbeiter04").Visible = True
If uNam = " mitarbeiter05" Then Sheets("mitarbeiter05").Visible = True
If uNam = " mitarbeiter06" Then Sheets("mitarbeiter06").Visible = True
If uNam = " mitarbeiter07" Then Sheets("mitarbeiter07").Visible = True
If uNam = " mitarbeiter08" Then Sheets("mitarbeiter08").Visible = True
If uNam = " mitarbeiter09" Then Sheets("mitarbeiter09").Visible = True
If uNam = " mitarbeiter10" Then Sheets("mitarbeiter10").Visible = True
If uNam = " mitarbeiter11" Then Sheets("mitarbeiter11").Visible = True
If uNam = " mitarbeiter12" Then Sheets("mitarbeiter12").Visible = True
If uNam = " mitarbeiter13" Then Sheets("mitarbeiter13").Visible = True
If uNam = " mitarbeiter14" Then Sheets("mitarbeiter14").Visible = True
If uNam = " mitarbeiter15" Then Sheets("mitarbeiter15").Visible = True
If uNam = " mitarbeiter16" Then Sheets("mitarbeiter16").Visible = True
If uNam = " mitarbeiter17" Then Sheets("mitarbeiter17").Visible = True
If uNam = " mitarbeiter18" Then Sheets("mitarbeiter18").Visible = True
If uNam = " mitarbeiter19" Then Sheets("mitarbeiter19").Visible = True
If uNam = "mitarbeiter500" Then Sheets("Tagesübersicht").Visible = True
If uNam = "mitarbeiter500" Then Sheets("Jahresübersicht").Visible = True
If uNam = "mitarbeiter500" Then Sheets("Produktübersicht").Visible = True
If uNam = "mitarbeiter500" Then Sheets("Januar").Visible = True
If uNam = "mitarbeiter500" Then Sheets("Februar").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter01").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter02").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter03").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter04").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter05").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter06").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter07").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter08").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter09").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter10").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter11").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter12").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter13").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter14").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter15").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter16").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter17").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter18").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter19").Visible = True
If uNam = "mitarbeiter500" Then Sheets("mitarbeiter500").Visible = True
Sheets("schlusstabelle").Visible = xlVeryHidden
Application.ScreenUpdating = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Sheets("schlusstabelle").Visible = True
Dim i As Byte
For i = 1 To Sheets.Count
If Sheets(i).Name <> "schlusstabelle" Then _
Sheets(i).Visible = xlVeryHidden
Next i
Application.ScreenUpdating = True
End Sub