Microsoft Excel

Herbers Excel/VBA-Archiv

nur eine Tabelle sichtbar lassen

Betrifft: nur eine Tabelle sichtbar lassen von: Ralf
Geschrieben am: 17.07.2008 14:50:31

Hallo Excel - Experten,

ich habe einen ganz tollen Code, der es ermöglicht, daß wenn
andere auf meine Datei zugreifen, nur eine Tabelle sehen: Pivots_2
Das funktionierte in einer kleinen Testdatei auch ganz toll ( mit 5 Tabellen)
Nun wollte ich es auf eine größere Datei übertragen ( 23 Tabellen ), und ...
wenn ein anderer Username sie öffnet, sieht er immer alle Tabellen :-(
Woran kann das liegen ???

Private Sub Workbook_Open()
Dim i As Integer
If Application.UserName <> "Hollmann" Then
For i = 1 To Worksheets.Count
If Worksheets(i).Name <> "Pivots_2" Then
Worksheets(i).Visible = 2
End If
Next
Else
For i = 1 To Worksheets.Count
Worksheets(i).Visible = 1
Next
End If
End Sub



Viele Grüße
Ralf

  

Betrifft: AW: nur eine Tabelle sichtbar lassen von: ede
Geschrieben am: 17.07.2008 15:07:03

Hallo Ralf,
hier mal ein verkürzter Code, ohne Ihn getestet zu haben:


Dim i As Integer
For i = 1 To Worksheets.Count
If Application.UserName = "Hollmann" Then
Worksheets(i).Visible = True
Else
Worksheets(i).Visible = Worksheets(i).Name = "Pivots_2"
End If
Next

funkts?
gruss


  

Betrifft: AW: nur eine Tabelle sichtbar lassen von: Ralf
Geschrieben am: 17.07.2008 16:12:21

Hallo Ede,

ging leider nicht, aber trotzdem
vielen Dank für Deine Mühe
Gruß
Ralf


  

Betrifft: AW: nur eine Tabelle sichtbar lassen von: Rudi Maintaire
Geschrieben am: 17.07.2008 15:26:31

Hallo,
1. Application.Username ist ungeeignet, da jederzeit änderbar.
2. Was ist, wenn Makros deaktiviert sind? Du musst beim Schließen des WB auf jeden Fall immer alle sheets außer Pivot ausblenden und speichern.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Dim wks As Worksheet
  For Each wks In Worksheets
    If wks.Name <> "Pivots_2" Then wks.Visible = xlSheetVeryHidden
  End If
  ThisWorkbook.Save
End Sub



Private Sub Workbook_Open()
Dim wks As Worksheet
  For Each wks In Worksheets
    If LCase(Environ("username")) = "hollmann" Then
      wks.Visible = xlSheetVisible
    ElseIf wks.Name <> "Pivots_2" Then
      wks.Visible = xlSheetVeryHidden
    End If
  Next
End Sub


Gruß
Rudi


  

Betrifft: Danke Rudi klappt super :-) von: Ralf
Geschrieben am: 17.07.2008 16:11:32

Hallo Rudi,

es funktioniert :-) Super !!!

Viele :-) Grüße
Ralf


  

Betrifft: Rudi : noch eine kurze Frage :-) von: Ralf
Geschrieben am: 17.07.2008 16:36:32

Hallo Rudi,

ich wollte die Datei gerade schließen, da sagte mir
Excel : Fehler beim Kompilieren End If ohne If Block ???

Hast Du eine Idee, was das bedeutet ?
Viele Grüße
Ralf


  

Betrifft: AW: Rudi : noch eine kurze Frage :-) von: Rudi Maintaire
Geschrieben am: 17.07.2008 17:21:24

Hallo,

Hast Du eine Idee, was das bedeutet ?


dass ich schlampig bin!

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Dim wks As Worksheet
  For Each wks In Worksheets
    If wks.Name <> "Pivots_2" Then wks.Visible = xlSheetVeryHidden
  Next wks
  ThisWorkbook.Save
End Sub


Gruß
Rudi


  

Betrifft: Danke Rudi jetzt klappts aber :-) von: Ralf
Geschrieben am: 17.07.2008 17:30:15

.........vielen großen Dank und
viele :-) Grüße
Ralf


 

Beiträge aus den Excel-Beispielen zum Thema "nur eine Tabelle sichtbar lassen"