Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Nur bestimmte Blätter anzeigen

Forumthread: Nur bestimmte Blätter anzeigen

Nur bestimmte Blätter anzeigen
20.03.2025 01:24:27
Luna
Hola ins Forum,
bin wieder am spielen und komme mal wieder ohne eure Hilfe nicht weiter :lol:
Ich habe mir eine Tabelle erstellt wo ich über dynamische Pfade (DynamicPath) Daten aus anderen Tabellen abrufe. Ja nachdem welcher Benutzer mit welchem Laptop die Tabelle öffnet, er kann immer alles aktualisieren.
Wie stelle ich es jetzt an das je nach Benutzer nur bestimmte Tabellenblätter angezeigt werden. Das muss nichts kompliziertes mit Anmeldung oder ähnlichem sein. Beim öffnen der Mappe wird immer automatisch "Tabelle3 (TecnoMetales) angewählt. Dort kann aus einem Dropdown der Benutzer seinen Namen auswählen und danach möchte ich bestimmen welche Blätter er sehen kann.
Ich hoffe ich konnte es verständlich erklären
Wie immer vielen Dank für eure Hilfe und Geduld mit mir :lol: :lol:
Saludos Luna
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur bestimmte Blätter anzeigen
20.03.2025 05:29:55
Onur
Wenn der Benutzer seinen Namen selber auswählen darf, bestimmst du nicht allzu viel...
AW: Nur bestimmte Blätter anzeigen
20.03.2025 11:29:18
daniel
Hi
lege ein weiteres Tabellenblatt an (im folgenden Tabelle X genannt.
schreibe dort in Spalte A ab Zeile 3 die Namen und in die daneben stehenden Spalten die Tabellenblätter, die beim jeweiligen Namen angezeigt werden sollen
in die Zelle B1 von TabelleX kommt dann die Formel (Zellebereich an die Tabelle anpassen):

=Filter(B3:X99;A3:A99=Zelle mit DropDown;"")


Die Formel sollte in Zeile1 jetzt die zum gewählten Namen passenden Tabellenblätter anzeigen.

ins Change-Event des Tabellenblatts mit dem DropDown kommt dann folgender Code:

dim sh as worksheet

for each sh in thisworkbook.worksheets
if sh.name > me.Name then
if Worksheetfunction.Countif(Sheets("TabelleX").Rows(1) then
sh.visible = xlsheetvisible
else
sh.visible = xlsheethidden
end if
end if
next


Gruß Daniel
Anzeige
AW: Nur bestimmte Blätter anzeigen
20.03.2025 14:42:41
Luna
Hola ins Forum,
erstmal vielen Dank für die viele Hilfe. Ich werde mich das Wochenende mit all euren Vorschlägen befassen und schnellst möglich eine Rückmeldung gebe.
Jetzt versuche ich eure Fragen zu beantworten.
@Onur
Ja ich weiß das es kein Schutz ist, den brauche ich in diesem Fall auch nicht unbedingt. Ich möchte nur wissen wie man es macht. Muchas gracias für den Hinweis.
@MCO
Perdon für die fehlenden Angaben. Meine Tabellen haben verschiedene Anzahlen von Sheets. Die kleinste hat 5 und die größte um die 60. Die Zelle mit dem Namen steht aber immer in "Tabelle3 (TecnoMetales)" in B5. Aber mit ein wenig bastelei bekomme ich das schon hin. Muchas gracias
@Daniel
Ja stimmt mir geht es um das Prinzip. Aber ohne eure Vorlagen wäre ich nicht im der Lage das umzusetzen. Muchas gracias
@Gerd
Muchas gracias
Vielen Dank euch allen
Saludos Luna
Anzeige
AW: Nur bestimmte Blätter anzeigen
21.03.2025 16:17:48
Luna
Hola,
vielen Dank für die Hilfe. Das Programm von Daniel und Dank der Hilfe von Onur funktioniert super. Für mich völlig ausreichend. Werde aber trotzdem aber auch die anderen Ideen noch ausprobieren
Saludos
Luna
AW: Nur bestimmte Blätter anzeigen
20.03.2025 12:10:33
GerdL
Moin
Private Sub Worksheet_Change(ByVal Target As Range)


Const cstrDropdownadresse As String = "$A$2" 'anpassen

Dim Sh As Worksheet

If Target.Address > cstrDropdownadresse Then Exit Sub

For Each Sh In ThisWorkbook.Worksheets
If Sh.Name > Me.Name Then
If WorksheetFunction.CountIf(Sheets("TabelleX").Rows(1), Sh.Name) Then
Sh.Visible = xlSheetVisible
Else
Sh.Visible = xlSheetVeryHidden
End If
End If
Next

End Sub

Gruß Gerd
Anzeige
AW: Nur bestimmte Blätter anzeigen
21.03.2025 01:42:07
Luna
Hola Daniel,
habe glaube ich alles so gemacht wie beschrieben. Die Tabelle heißt TabelleX und die Namen und die Formel sind da wie beschrieben. Das funktioniert einwandfrei. Aber ich bekomme eine Fehlermeldung in diese Zeile im Code:
if Worksheetfunction.Countif(Sheets("TabelleX").Rows(1)then


Fehler beim Kompilieren: Erwartet: Listenzeichen oder )
Was mache ich falsch?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)


Dim sh As Worksheet
For Each sh In ThisWorkbook.Worksheets
If sh.Name > Me.Name Then
if Worksheetfunction.Countif(Sheets("TabelleX").Rows(1) then
sh.Visible = xlSheetVisible
Else
sh.Visible = xlSheetHidden
End If
End If
End Sub
Next

Muchas gracias
Luna



Anzeige
AW: Nur bestimmte Blätter anzeigen
21.03.2025 01:45:54
Onur
if Worksheetfunction.Countif(Sheets("TabelleX").Rows(1)then

Wieviel "(" hast du und wieviel ")" ?
Sollte die Anzahl nicht gleich sein?
AW: Nur bestimmte Blätter anzeigen
21.03.2025 01:55:37
Luna
Hola Onur,
verstehe leider deine Frage nicht. In der Mappe wo ich probiere habe ich 4 Sheets.
Saludos y gracias
Anzeige
AW: Nur bestimmte Blätter anzeigen
21.03.2025 01:57:50
Onur
Zähle einfach mal die Klammern in deiner Codezeile, die ich gepostet habe - Sollten nicht JEDE "Klammer auf" eine "Klammer zu" haben ???
AW: Nur bestimmte Blätter anzeigen
21.03.2025 02:10:58
Luna
Jetzt habe ich es kapiert.
Muchas gracias Onur
Aber es klappt nicht. Wie gesagt ich bin ein Laie in diesen Sachen. Jetzt hinterlegt mir der Code ".countif" in blau und sagt mir:
Fehler beim Kompilieren: Argument ist nicht optional
Anzeige
AW: Nur bestimmte Blätter anzeigen
21.03.2025 02:33:27
Onur
Du hast angegeben, WO was gezählt werden soll, aber nicht WAS.
AW: Nur bestimmte Blätter anzeigen
21.03.2025 14:02:23
Luna
Hola Onur,
wie schon häufiger beschrieben bin ich ein Laie und habe keine Ahnung was ich ergänzen oder ändern muss. Es ist ja auch nicht mein Programm sondern es ist netterweise von Daniel erstellt worden. Wenn Infos fehlen sagt mir was ihr braucht.
Muchas gracias
Luna
Anzeige
AW: Nur bestimmte Blätter anzeigen
21.03.2025 14:39:14
Onur
If WorksheetFunction.CountIf(Sheets("TabelleX").Rows(1), Sh.Name) Then
AW: Nur bestimmte Blätter anzeigen
20.03.2025 08:00:24
MCO
Moin!

Du solltest im Tabellenmodul von Tabelle 3 diesen Code hinterlegen:
Außerdem hab ich vorrausgesetzt, dass deine Arbeitsmappe mindestens 5 Sheets hat.

Private Sub Worksheet_Change(ByVal Target As Range)


If Target = Range("C8") Then
For i = 2 To Sheets.Count
Sheets(i).Visible = xlVeryHidden
Next i

Select Case Target.Value
Case "a": einbl_arr = Array(2, 4)
Case "b": einbl_arr = Array(3, 5)
Case "c": einbl_arr = Array(4, 5)
Case "d": einbl_arr = Array(2, 3)
End Select
End If

For i = 0 To UBound(einbl_arr)
Sheets(einbl_arr(i)).Visible = True
Next i
End Sub


Du hast nicht gesagt, wo der Dropdown ist, also hab ich ihn mal auf C8 festgelegt.
Zum spielen einrichten übrigens hiermit:
Sub test()

Range("c8").Validation.Delete
Range("c8").Validation.Add xlValidateList, Formula1:="a,b,c,d"
End Sub


Durch das Attribut "veryhidden" kann der Benutzer die Blätter zwar nicht manuell einblenden, aber jederzeit durch die Auswahl im Dropdown.

Denkbar halt ich eine Auswahl die nicht über dropdown ist sondern über Benutzername (application.UserName), das direkt nach dem öffnen abgefragt wird.
Ebenso möglich halte ich dann noch die Abfrage eines Passwortes im VBA-Modul, dass passend zum Benutzer hinterlegt sein muss. Dazu muss dann natürlich das VBA-Projekt passwortgeschützt werden.

Aber all das sind Überlegungen, zu denen du noch kommen wirst.

Gruß, MCO

Anzeige
AW: Nur bestimmte Blätter anzeigen
20.03.2025 11:18:01
daniel
muss ja auch nicht.
es geht ja erstmal ums Prinzip, wie man zu einem bestimmten Namen Blätter ein- und ausblendet.

Forumthreads zu verwandten Themen

Anzeige
Anzeige