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

Tabellenblatt ausblenden in Abhängigkeit

Tabellenblatt ausblenden in Abhängigkeit
26.10.2022 01:33:12
curliem
Hallo zusammen,
ich habe mittlere Kenntnisse in Excell und bescheidene Kenntnisse in VBA und stehe nun vor einem "großen Problem" Meine Arbeitsmappe soll ca. 100 Tabellenblätter groß werden. Für drei Monat je ein Blatt/Tag und ein paar zusätzliche Blätter.
Ich würde gerne ein Makro bauen, das abhängig von dem Wert einer Zelle, in meinem Fall der Zelle D2-D3 (verbundene Zelle), alle Tabellenblätter ausblendet, die nicht an diesem Tag gebraucht werden. Das heißt z.B am 24 Oktober habe ich in meiner Arbeitsmappe drei Tabellenblätter die ich gerne angezeigt haben möchte. Alle anderen sollen mit "xlveryhidden" ausgeblendet werden. Die Zelle D2-D3 ist drei mal über die Tabellenblätter von 1 - 31 durchnummeriert.
Ich würde mich freuen wenn ihr mir helfen könntet.
Danke

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt ausblenden in Abhängigkeit
26.10.2022 07:40:52
MCO
Moin, curliem!
Das Alles ist gerade noch etwas schwammig: du hast eine Zelle von 1-31 durchnummeriert?! Was bedeutet das?
Ich nehme an, du hast 1 "Mastersheet". Hier soll in D2 (führend) ein Datum rein und der Tag bestimmt, das 3 Blätter (benannt nach Tag 1-31?!) eingeblendet werden, alle anderen ausgeblendet.
Ist das so richtig?
Beachte bitte das alle nachfolgenden Sheets ausgeblendet werden, es sei denn, sie heißen wie Zellinhalt. (Praktisch kann da nur 1 sein, da 2 Sheets nie gleich heißen). Aber die Suche hast du nicht besonders beschrieben: wenn ich nach 24 filtere, kommen nur 3 Sheets raus, weil 24 eindeutig im Monat ist. Aber wenn ich nach 2 auswähle, dann kann der 2te, 12te, 20-29te rauskommen. Das muss auf jeden Fall noch überdacht werden!
Ach ja: ist die Zelle leer, werden ALLE nachfolgenden Blätter ausgeblendet. Das wäre sicher andersherum besser.
Das Prinzip bleibt aber erhalten:
Das muss in das Modul zum Sheet

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.AddressLocal = "D2" And Target  "" Then
Blätter_ein_ausblenden Target.text
End If
End Sub
Das muss in ein normales Modul

Sub Blätter_ein_ausblenden(Tag As String)
For sh = ActiveSheet.Index + 1 To Sheets.Count
If Sheets(sh).Name = Tag Then
Sheets(sh).Visible = True
Else
Sheets(sh).Visible = xlVeryHidden
End If
Next sh
End Sub
Viel Erfolg!
Gruß, MCO
Anzeige
AW: Tabellenblatt ausblenden in Abhängigkeit
26.10.2022 21:34:53
curliem
Hallo MCO lieben Dank schon mal.
Ich glaub das wurde falsch verstanden. Ich habe 100 Tabellenblätter folgendermassen durchnummeriert
1,2,3....29,30,31,1A,2A,3A.....29A,30A,31A,1B,2B,3B.....29B,30B,31B, Verwaltung1, Verwaltung2....... (Screenshot1)
Von den ersten 93 Blättern (=3Monate) steht immer in der Zelle C2-C3 (verbundene Zelle) durchnummeriert das Datum des jeweiligen Tages.
Bei den 3 Monaten handelt es sich immer um dasselbe laufende Monate allerdings dreimal hintereinander.
Damit man bei der täglichen Bearbeitung nicht immer 100 Blätter geöffnet hat, wollte ich, dass sich nur der aktuelle Tag öffnet, sprich die anderen ausgeblendet werden. Der heutige Tag ist ja insgesamt dreimal vorhanden ist. Am 18. des Monats wäre dann Tabellenblatt 18,18A und 18B geöffnet und zusätzlich ein Verwaltungsblatt1, das würd ich aber in die Abfrage irgendwie hinzufügen.
Das heißt der Output nach Makro sollte dann so aussehen wie im Screenshot2
Ich hoffe das kommt jetzt nicht so schwammig wie oben.
Vielleicht kannst du nochmal helfen.
Userbild
Userbild
Anzeige
AW: Tabellenblatt ausblenden in Abhängigkeit
27.10.2022 06:35:48
MCO
Guten Morgen!
Dann rufe den folgenden Code via Button auf:

Sub Blätter_ein_ausblenden()
Dim Tag As String
Tag = Application.InputBox("Welchen Tag möchtest du sehen?", "Tag auswählen")
If Tag = False Then Exit Sub
For sh = 1 To Sheets.Count
With Sheets(sh)
If .Name = Tag Or .Name = Tag & "A" Or .Name = Tag & "B" Or InStr(.Name, "Verwaltung") > 0 Then
.Visible = True
Else
.Visible = xlVeryHidden
End If
End With
Next sh
End Sub
Das sollte es tun....
Viel Erfolg!
Gruß, MCO
AW: Tabellenblatt ausblenden in Abhängigkeit
27.10.2022 12:07:39
curliem
Nun kommen wir der Sache schon näher und ich bedanke mich gleich nochmal für deine Hilfe, deinen Vorschlag. Eine Sache, die scheinbar nicht klar rüberkommt.
Das ein/ausblenden der Tabelle, sollte sich nicht nach dem Namen des Tabellenblattes richten, sondern nach dem Wert, der in der Zelle D2-D3 steht.
Sozusagen:
Wenn
Zellinhalt von Zelle (D2-D3) = heutiger Tag
dann visible
Sonst hidden
Alle Tabellenblätter werden gecheckt, und übrig bleiben automatisch die 3 Blätter des heutigen Tages. Z.b. am 27.10 würden beim öffnen der Datei automatisch die Tabellenblätter 27,27A und 27 B, sowie Verwaltung 1 erscheinen. Eine Abfrage in einer Inbox ist somit gar nicht nötig.
Vielleicht gibts hierzu ne Lösung. Und vielen Dank für deine Bemühungen. Ich weiß das wirklich sehr zu schätzen.
Danke
Anzeige
Dann so:
28.10.2022 08:52:26
MCO

Sub Blätter_ein_ausblenden()
For sh = 1 To Sheets.Count
With Sheets(sh)
If .Range("D2") = Date Or InStr(.Name, "Verwaltung") > 0 Then
.Visible = True
Else
.Visible = xlVeryHidden
End If
End With
Next sh
End Sub
Gruß. MCO
AW: Dann so:
29.10.2022 10:22:08
curliem
Hallo MCO,
jetzt funktionierts. Ich danke dir für deine Hilfe und Geduld. :-)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige