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

Forumthread: Tabellenblätter ausblenden wenn Wert in Zelle..

Tabellenblätter ausblenden wenn Wert in Zelle..
23.03.2016 11:38:23
Björn
(ExcelforMac Version 15.9.1)
Hallo,
ich arbeite gerade an einem Abrechnungstool für unsere Firma. es geht um eine Tabelle mit einer Eingabeseite sowie 5 Abrechnungsheets.
Eingabesheet: hier wird eine Zahl von 1 - 5 angegeben (Zelle C3), je nachdem wie viele Abrechnungstage zu betrachten sind. Wenn ich nur 1 oder 2 Abrechnungstage wähle, sollen das "Abrechnungssheet C", "Abrechnungssheet D" und "Abrechnungssheet E" ausgeblendet werden, wobei die "Abrechnungssheet A" und "Abrechnungssheet B" eingeblendet bleiben.
Trage ich 3 ein sollen "Abrechnungssheet D" und "Abrechnungssheet E" ausgeblendet werden usw.
Bei 5 bleiben demzufolge alle Tabellenblätter eingeblendet.
Ich habe zwar gute Excel, aber leider gar keine Programmier-Kentnisse.
Ist das Problem einfach zu lösen, so dass mir jemand hierzu helfen könnte?
Vielen Dank!!

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter ausblenden
23.03.2016 12:31:53
Bernd
Hi,
ich bin kein VBA profi und wird sicherlich nicht die beste Lösung sein, aber als Ansatz tut es so auch:
https://www.herber.de/bbs/user/104557.xlsm
mfg Bernd

AW: Tabellenblätter ausblenden
23.03.2016 12:44:55
Bernd
Hi,
für Dein Beispiel diesen Code verwenden:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$3" Then
If Target = 1 Then
Sheets("B").Visible = xlHidden
Sheets("C").Visible = xlHidden
Sheets("D").Visible = xlHidden
Sheets("E").Visible = xlHidden
Else
Sheets("B").Visible = True
Sheets("C").Visible = True
Sheets("D").Visible = True
Sheets("E").Visible = True
If Target.Address = "$C$3" Then
If Target = 2 Then
Sheets("C").Visible = xlHidden
Sheets("D").Visible = xlHidden
Sheets("E").Visible = xlHidden
Else
Sheets("C").Visible = True
Sheets("D").Visible = True
Sheets("E").Visible = True
If Target.Address = "$C$3" Then
If Target = 3 Then
Sheets("D").Visible = xlHidden
Sheets("E").Visible = xlHidden
Else
Sheets("D").Visible = True
Sheets("E").Visible = True
If Target.Address = "$C$3" Then
If Target = 4 Then
Sheets("E").Visible = xlHidden
Else
Sheets("E").Visible = True
End If
End If
End If
End If
End If
End If
End If
End If
End Sub

mfg Bernd

Anzeige
AW: Tabellenblätter ausblenden
23.03.2016 19:33:45
Björn
Hallo Bernd,
danke dir für die mühe. habe das gerade mal ausprobiert. funktioniert aber nicht so wie gedacht. wenn ich hier zu anfang 5 eingebe blendet er alle berechnungsblätter aus. eigentlich sollte er dann alle komplett einblenden. und danach ist eine änderung nicht mehr möglich. sprich auch wenn ich dann 3 eingebe bleibt der zustand bestehen. eigentlich war angedacht:
Wenn ich
1 eingebe: A und B bleiben stehen; C, D, E werden ausgeblendet
2 eingebe: A und B bleiben stehen; C, D, E werden ausgeblendet (das gleiche wie bei 1)
3 eingebe: A, B und C bleiben stehen; D, E werden ausgeblendet
4 eingebe: A, B, C und D bleiben stehen; E wird ausgeblendet
5 eingebe: alle werden eingeblendet
bin schon am versichen das zu editieren, komme aber nicht zu einer lösung. habe da noch zu wenig ahnung von.

Anzeige
AW: Tabellenblätter ausblenden
24.03.2016 05:44:47
Bernd
Hi,
ja deswegen hatte ich Dir auch den zweiten Code gegeben, den hättest gegen den anderen austauschen sollen.
Aber Uwe hat Dir ja ohnehin den um Welten besseren Code bereit gestellt.
lg Bernd

AW: Tabellenblätter ausblenden wenn Wert in Zelle..
23.03.2016 12:49:39
UweD
Hallo
Vorgabe: Das Eingabeblatt ist das Erste
- Rechtsclick auf den Tabellenblattreiter
- Code anzeigen
- Code dort reinkopieren

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i%
If Not Intersect(Range("C3"), Target) Is Nothing _
And Target >= 1 And Target 

Gruß UweD

Anzeige
AW: Tabellenblätter ausblenden wenn Wert in Zelle..
23.03.2016 19:34:56
Björn
danke. probiere ich gleich mal aus!!

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Tabellenblätter ausblenden basierend auf Zellenwerten in Excel


Schritt-für-Schritt-Anleitung

Um Tabellenblätter in Excel basierend auf dem Wert einer Zelle auszublenden, kannst Du den folgenden VBA-Code verwenden. Dieser Code blendet bestimmte Arbeitsblätter aus, abhängig von der Zahl, die Du in Zelle C3 eingibst.

  1. Öffne Deine Excel-Datei.
  2. Rechtsklicke auf den Reiter des Arbeitsblatts, das die Eingabe enthält (z. B. das "Eingabesheet").
  3. Wähle „Code anzeigen“ aus dem Kontextmenü.
  4. Füge den folgenden VBA-Code in das Fenster ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C3")) Is Nothing Then
        Dim i As Integer
        For i = 1 To 5
            Sheets("Abrechnungssheet " & Chr(64 + i)).Visible = xlHidden
        Next i
        If Target.Value >= 1 And Target.Value <= 5 Then
            For i = 1 To Target.Value
                Sheets("Abrechnungssheet " & Chr(64 + i)).Visible = True
            Next i
        End If
    End If
End Sub
  1. Schließe den VBA-Editor und teste die Funktion, indem Du verschiedene Zahlen in Zelle C3 eingibst.

Häufige Fehler und Lösungen

  • Fehler: Alle Blätter werden ausgeblendet, wenn 5 eingegeben wird.

    • Lösung: Achte darauf, dass im Code die Sichtbarkeit der Blätter korrekt gesetzt ist. Stelle sicher, dass der Code für die Sichtbarkeit der Blätter bei 5 richtig implementiert ist.
  • Fehler: Änderungen werden nicht mehr erkannt.

    • Lösung: Überprüfe, ob Du den Code im richtigen Blatt eingefügt hast. Der Code muss im Codefenster des Eingabeblatts sein.
  • Fehler: #WERT!-Fehler in Zelle C3.

    • Lösung: Stelle sicher, dass nur Zahlen zwischen 1 und 5 in Zelle C3 eingegeben werden.

Alternative Methoden

  1. Verwenden von Excel-Formeln: Du könntest auch eine Formel verwenden, um Inhalte in Zelle C3 auszublenden, anstatt die Blätter auszublenden. Diese Methode ist einfacher, benötigt jedoch manuelles Eingreifen, um die Sichtbarkeit der Blätter zu ändern.

  2. Hyperlinks: Erstelle Hyperlinks, die zu den verschiedenen Abrechnungssheets führen, und lasse die Blätter sichtbar. Dies könnte eine benutzerfreundlichere Lösung sein, wenn Du häufig zwischen den Blättern wechseln musst.


Praktische Beispiele

  • Beispiel 1: Wenn Du 1 in C3 eingibst, bleiben "Abrechnungssheet A" und "Abrechnungssheet B" sichtbar, während "Abrechnungssheet C", "D" und "E" ausgeblendet werden.
  • Beispiel 2: Bei der Eingabe von 3 in C3 siehst Du "Abrechnungssheet A", "B" und "C", während "D" und "E" ausgeblendet sind.

Du kannst den VBA-Code leicht anpassen, um mehr oder weniger Blätter auszublenden, je nach Bedarf.


Tipps für Profis

  • Code optimieren: Du kannst den Code optimieren, indem Du Schleifen verwendest, um redundante Codezeilen zu vermeiden. Dies erleichtert die Wartung und das Verständnis des Codes.
  • Kommentare hinzufügen: Schreibe Kommentare im Code, um den Zweck jeder Zeile zu erläutern. Dies hilft Dir und anderen, die den Code später lesen, besser zu verstehen, was passiert.
  • Testen: Teste den Code gründlich, um sicherzustellen, dass er unter verschiedenen Bedingungen funktioniert und keine unerwarteten Fehler auftritt.

FAQ: Häufige Fragen

1. Wie kann ich ein ausgeblendetes Arbeitsblatt wieder einblenden? Du kannst ein ausgeblendetes Arbeitsblatt wieder einblenden, indem Du im VBA-Editor den folgenden Code verwendest:

Sheets("Abrechnungssheet C").Visible = True

2. Was passiert, wenn ich einen anderen Wert als 1-5 eingebe? Wenn Du einen Wert außerhalb des Bereichs 1-5 eingibst, wird der Code nicht ausgeführt, und die Blätter bleiben in ihrem aktuellen Zustand.

3. Wie kann ich den VBA-Code rückgängig machen? Um den VBA-Code rückgängig zu machen, öffne den VBA-Editor und lösche den Code aus dem entsprechenden Arbeitsblatt. Du kannst auch die Datei speichern, bevor Du Änderungen vornimmst, um im Notfall zu einer früheren Version zurückzugreifen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige