Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zellen bei bestimmten Inhalt ein/ausblenden

Zellen bei bestimmten Inhalt ein/ausblenden
28.12.2004 14:46:16
Jan
Hallo,
habe folgendes Problem:
1. Habe angeblich Excel 2002 - gibt es das überhaupt? Oben in der Auswahl zumindest nicht...
2. Habe einen Dienstplan für eine kleine (20 Mitarbeiter) Firma entworfen mit mehreren Tabellen, die ineinander/untereinander zugreifen, abgleichen, etc. Per Dialogbox lege ich neue User an, die landen in Tabelle3, wenn Beginn/Ende des Arbeitsverhältnisses mit dem aktuellen Datum "übereinstimmen", wird der Mitarbeiter aktiv gesetzt. In Tabelle1 befindet sich der eigentliche Dienstplan, in dem ich über Shortcuts (Strg+e bzw. +a) und Makro alle Mitarbeiter oder nur die aktuell aktiven einblenden möchte, sprich die entsprechende Spalte. Wenn ich nicht ganz falsch liege, muss ich doch eine WENN-DANN-Funktion benutzen, die immer ein Feld (aktiv/inaktiv) mit einer Spalte verknüpft, die dann im jeweiligen Fall aus/eingeblendet wird. ABER WIE?
Bin um jede Hilfe dankbar...
Jan
Anzeige
AW: Zellen bei bestimmten Inhalt ein/ausblenden
28.12.2004 14:55:59
Josef
Hallo Jan!
Wie und in welcher Zeile sind den die aktiven bzw. nicht aktiven Mitarbeiter gekennzeicnet?
Bei "inaktiv" soll die ganze Spalte ausgeblendet werden?
In welcher Spalte beginnen die Eintrageungen?
Gruß Sepp
AW: Zellen bei bestimmten Inhalt ein/ausblenden
JAn
Hi Sepp,
1. Tabelle3, Mitarbeiter (also ihre Namen) von A6 bis momentan A21, aber da kommen ja immer mehr dazu, weil Ex-Mitarbeiter nicht gelöscht, sondern einfach im System belassen werden. In H6 bis H21 befindet sich die Aktiv-Abfrage, die mit "ja" oder "nein" in der jeweiligen Zelle beantwortet wird.
2. In Tabelle1 werden die Spalten A, B und C für Kalenderwoche, Wochentag und Datum verwendet, dann kommen in den Spalten D-T die momentanen Mitarbeiter.
3. Bei inaktiv sollte die ganze Spalte verschwinden, ja.
Sorry, denke das ist an sich ein altes Problem, aber ich habe im Archiv und bei den aktuellen Einträgen nix gefunden.
Jan
Anzeige
AW: Zellen bei bestimmten Inhalt ein/ausblenden
28.12.2004 15:17:04
Josef
Hallo Jan!
Wenn die Zeilen mit den Spalten korrespondieren ("H6" = Spalte "D", "H7" = Spalte "E", usw.), dann sollte der Code funzen!

Sub inaktivAusEin()
Dim wks1 As Worksheet
Dim wks3 As Worksheet
Dim iCol As Integer
Set wks1 = Sheets("Tabelle1")
Set wks3 = Sheets("Tabelle3")
If wks1.Rows(1).SpecialCells(xlCellTypeVisible).Count = 256 Then
For iCol = 6 To wks3.Range("H65536").End(xlUp).Row
wks1.Columns(iCol - 2).Hidden = UCase(wks3.Cells(iCol, 8)) = "NEIN"
Next
Else
wks1.Columns.Hidden = False
End If
End Sub

Gruß Sepp
Anzeige
AW: Zellen bei bestimmten Inhalt ein/ausblenden
28.12.2004 15:26:34
Jan
Hallo Sepp,
Vielen Dank vorne weg. Hab das Ding ein wenig angepasst. Hoffe mal, ich hab dabei nix kaputt gemacht, weil es funktioniert nicht. :-( Denke mal, die wks stehen für die einzelnen Blätter, hab die Namen Tabelle1 und 3 durch die wirklichen ersetzt und die Abfrage der Spalte H auf Zeile 50 reduziert, mehr Mitarbeiter werden wir eh nie haben... Woran kann es liegen, das nichts passiert?

Sub inaktivAusEin()
Dim wks2 As Worksheet
Dim wks4 As Worksheet
Dim iCol As Integer
Set wks2 = Sheets("Kalender")
Set wks4 = Sheets("Liste")
If wks2.Rows(1).SpecialCells(xlCellTypeVisible).Count = 256 Then
For iCol = 6 To wks4.Range("H50").End(xlUp).Row
wks2.Columns(iCol - 2).Hidden = UCase(wks4.Cells(iCol, 8)) = "nein"
Next
Else
wks2.Columns.Hidden = False
End If
End Sub

Anzeige
AW: Zellen bei bestimmten Inhalt ein/ausblenden
Martin
Hallo Jan,
schreibe statt "H50" mal "H65536".
Gruß
Martin Beck
AW: Zellen bei bestimmten Inhalt ein/ausblenden
28.12.2004 16:09:50
Jan
Das ändert leider auch nix. Frage am Rande: Wieso schreibt Sepp von Columns, Du in Deiner Lösung von Rows? Ich will doch Spalten (also Columns) verstecken, oder?
Unten stehend ein VBA-Teil, dass ich aus einer uralten Version des Dienstplan gezogen habe. Hilft Euch das irgendwas?

Sub Spalten_AusblendenEinblenden()
Dim c As Range
Range("A1:T1").Select
For Each c In Selection
If c.Value = "nein" Then _
Columns(c.Column).EntireColumn.Hidden = True
If c.Value = "ja" Then Columns(c.Column). _
EntireColumn.Hidden = False
Next c
End Sub

Anzeige
AW: Zellen bei bestimmten Inhalt ein/ausblenden
Martin
Hallo Jan,
ich fürchte, ich verstehe nicht, was Du ausblenden willst. Du prüfst innerhalb einer Spalte (H) für die Zeilen 6 bis 21, ob dort nein steht. Dann willst Du Spalten ausblenden. Meine Frage ist: Wirklich Spalten? Und wenn ja welche? "Logischer" wäre es, die Zeilen auszublenden, in denen in H ein "Nein" steht.
Der von Dir gepostete Code prüft in Zeile 1 auf "Nein" und blendet dann die Spalten aus. Auch das wäre in meinem Sinne "logisch".
Lange Rede kurzer Sinn, wenn Sepps Code nicht funktioniert, lade mal die Datei hoch, dann werden wir schon eine Lösung finden
Gruß
Martin Beck
Anzeige
AW: Zellen bei bestimmten Inhalt ein/ausblenden
28.12.2004 16:28:29
Jan
Hallo Martin,
also in dem Sheet namens Liste wird in Spalte H für jeden Mitarbeiter (momentan Zeile 6-21) ermittelt, ob er aktiv ist. Wenn nein, steht da ein nein. Dann will ich diesen Mitarbeiter im Dienstplan (Sheet: Kalender) ausblenden - das ist eine Spalte, weil in jeder Zeile ein neues Datum steht. Aber das Problem haben wir offenbar behoben, siehe den Thread weiter unten. Würde die Datei gerne hochladen, aber der Dienstplan besteht seit
2002 und hat satte 4,2 MB...
Verzweifelte Grüße
Jan
Anzeige
AW: Zellen bei bestimmten Inhalt ein/ausblenden
28.12.2004 16:12:27
Josef
Hallo Jan!
Erstens kannst du "H65536" ruhig lassen, weil End(xlup) so schnell ist,
dass du keinen Unterschie bemerkst!
Zweitens muss es "UCase(wks4.Cells(iCol, 8)) = "NEIN" " lauten, weil
UCase() die Umwandlung in Großbuchstaben vornimmt! Das deshalb, weil
es dann egal ist, ob "nein", "Nein" oder "NEIN" in der zelle steht!
Gruß Sepp
Anzeige
AW: Zellen bei bestimmten Inhalt ein/ausblenden
28.12.2004 16:18:32
Jan
Hallo zusammen,
ich glaube, wir kommen der Sache näher. Vielen Dank! Er, also es ;-), blendet jetzt aus, dummerweise habe ich hinter den einzelnen Spalten für die Mitarbeiter Additions-Spalten wie "Anwesende" oder Kommentare wie "Spätschicht fehlt!" etc. Nachdem der die ganze Reihe runterrattert und einfach eins zu eins auf den Kalender übeträgt und dann ausblendet, verschwinden diese Spalten auch. Gibt es nicht eine Möglichkeit, je eine Zelle direkt einer Spalte zuzuweisen, oder macht das das Ganze zu kompliziert?
Jan
Anzeige
AW: Zellen bei bestimmten Inhalt ein/ausblenden
28.12.2004 16:30:10
Josef
Hallo Jan!
Deshalb hab' ich ja gesagt "wenn die Zeilen mit den Spalten korrespondieren" ! ;-)
Ist aber nicht schlimm, sag mir wieviele Spalten zwischen den Mitarbeitern stehen.
Beispiel: "D" -Mitarbeiter, "E, F und G" zusatzspalten zu Mitarbeiter von "D".
"H" nächster Mitargbeiter, "L" nächster .....!
Und ich nehme an das die Zusatzspalten des jeweiligen Mitarbeiters auch
ausgeblendet werden sollen, oder?
Gruß Sepp
Anzeige
AW: Zellen bei bestimmten Inhalt ein/ausblenden
28.12.2004 16:37:55
Jan
Mein Fehler, sorry. Pro Mitarbeiter gibt es nur eine Spalte, aber ganz am Schluss kommen diese allgemeinen Spalten, in den die anwesenden Mitarbeiter addiert werden. Momentan sind die Spalten D bis T mit Mitarbeitern belegt, in U und V folgen diese allgemeinen Dinge. Aber was ist eigentlich, wenn ich einen neuen Mitarbeiter hinzufüge? Ich merke gerade, dass das .xls offenbar noch andere Macken hat...
Jan
Anzeige
AW: Zellen bei bestimmten Inhalt ein/ausblenden
28.12.2004 16:45:38
Josef
Hallo Jan!
Ich glaube nicht, dass es an den Macken von Excel liegt, sondern
eher am unglücklichen Tabellenaufbau!
Ich würde die Spalten zur Auswertung an den Anfang legen, dann ist es egal
ob du am Ende der Tabelle weitere Spalten für neue Mitarbeiter brauchst.
Wenn auch die Spalten zur Auswertung ausgeblendet werden, dann müssen
in "Liste" in Spalte "H" in den zellen "nein" stehen, obwohl gar kein
Mitarbeiter vorhhanden ist!
Gruß Sepp
Anzeige
AW: Zellen bei bestimmten Inhalt ein/ausblenden
28.12.2004 17:09:36
Jan
Hallo Sepp,
da ist was dran. ;-) Ich denke, die Arbeit werde ich mir mal machen müssen, obwohl da leider - wohl auch weil ich aufgrund meines Un- bzw. Halbwissens viel zu viel für viel zu wenig gemacht habe - einiges dahinter steckt. Falls es Dich interessiert, hab ich das ganze Dinge mal hierhin (http://www.juliusmk.de/files/ext/dp_v0_8b.xls) geschoben. Vorerst danke, ich werd mich mal an die Umräum-Arbeiten machen. ;-)
Jan
Anzeige
AW: Zellen bei bestimmten Inhalt ein/ausblenden
Martin
Hallo Jan,
ich nehme an, "Nein" bedeutet inaktiv und Du willst Zeilen ausblenden.
Nimm hierzu folgende Makros:

Sub ausblenden()
For i = 6 To 21
If Cells(i, 8) = "Nein" Then
Rows(i).EntireRow.Hidden = True
End If
Next i
End Sub


Sub einblenden()
Range("H6:H21").Rows.Hidden = False
End Sub


Sub ausblenden2()
z = Range("H65536").End(xlUp).Row
For i = 6 To z
If Cells(i, 8) = "Nein" Then
Rows(i).EntireRow.Hidden = True
End If
Next i
End Sub


Sub einblenden2()
z = Range("H65536").End(xlUp).Row
Range("H6:H" & z).Rows.Hidden = False
End Sub

Gruß
Martin Beck
Anzeige
AW: Zellen bei bestimmten Inhalt ein/ausblenden
Franz
Als Kassenwart habe ich eine Vereinsverwaltung mittels VBA-Makros entwickelt und optimiert.Ich stand auch vor dem Problem des Ausblendens/Einblendens von Zeilen und Spalten bei der Mitglierderliste in Verbindung mit J/N Abfragen, scheinbar wie bei dir. Dein(e) Problem(e) habe ich trotzdem nicht ganz verstanden. Vorschlag: lade von meiner privat Homepage unter http://www.vereinsmayer.de mein "VEREINSMAYER.XLS" und teste einmal die Funktionalität der Mitgliederliste vor allem der Button "Kurzfassung".
Vielleicht reicht es aber auch dass du mit Sortierungsfunktionen weiter kommst?
Franz
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellen bei bestimmten Inhalten ein- oder ausblenden


Schritt-für-Schritt-Anleitung

Um Zellen in Excel bei bestimmten Inhalten ein- oder auszublenden, kannst Du VBA-Makros verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke Alt + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:
    • Rechtsklick auf "VBAProject (deinDateiname)" > Einfügen > Modul.
  3. Kopiere und füge den folgenden Code ein:
Sub inaktivAusEin()
    Dim wks1 As Worksheet
    Dim wks3 As Worksheet
    Dim iCol As Integer
    Set wks1 = Sheets("Tabelle1")
    Set wks3 = Sheets("Tabelle3")

    If wks1.Rows(1).SpecialCells(xlCellTypeVisible).Count = 256 Then
        For iCol = 6 To wks3.Range("H65536").End(xlUp).Row
            wks1.Columns(iCol - 2).Hidden = UCase(wks3.Cells(iCol, 8)) = "NEIN"
        Next
    Else
        wks1.Columns.Hidden = False
    End If
End Sub
  1. Ändere die Tabellennamen im Code, falls notwendig, um sie an Deine Daten anzupassen.
  2. Schließe den VBA-Editor und gehe zurück zu Excel.
  3. Führe das Makro aus, indem Du Alt + F8 drückst, das Makro auswählst und auf "Ausführen" klickst.

Häufige Fehler und Lösungen

  1. Fehler: Nichts passiert beim Ausführen des Makros.

    • Lösung: Stelle sicher, dass die Tabellennamen im Code korrekt sind.
  2. Fehler: Die Zeilen werden nicht richtig ausgeblendet.

    • Lösung: Überprüfe, ob die Werte in Spalte H tatsächlich "NEIN" oder "JA" sind. Achte auf die Groß- und Kleinschreibung.
  3. Fehler: Falsche Spalten werden ausgeblendet.

    • Lösung: Stelle sicher, dass die Spalten zu den richtigen Mitarbeitern korrespondieren.

Alternative Methoden

Wenn Du VBA nicht verwenden möchtest, kannst Du auch die Bedingte Formatierung einsetzen:

  1. Markiere die Zellen, die Du ausblenden möchtest.
  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.
  3. Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden.
  4. Gib eine Formel ein, die den Zelleninhalt prüft, z.B. =H6="NEIN".
  5. Wähle eine Formatierung, die die Zellen unsichtbar macht (z.B. Schriftfarbe = Hintergrundfarbe).

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du bestimmte Werte in Excel ausblenden kannst:

  • Excel Zahlen ausblenden:

    If Cells(i, 1).Value < 0 Then
      Cells(i, 1).EntireColumn.Hidden = True
    End If
  • Excel Zelleninhalt verbergen:

    Cells(i, 1).Value = ""
  • Excel alle Felder mit bestimmten Inhalt markieren:

    If Cells(i, 1).Value = "inaktiv" Then
      Cells(i, 1).Interior.Color = RGB(255, 0, 0) ' Rot markieren
    End If

Tipps für Profis

  • Verwende die Funktion UCase(), um sicherzustellen, dass die Groß- und Kleinschreibung bei der Prüfung von Zellinhalten keine Rolle spielt.
  • Halte Deinen Code modular, indem Du separate Subroutinen für Ein- und Ausblenden erstellst.
  • Nutze die SpecialCells-Funktion, um nur sichtbare Zellen zu bearbeiten, was bei großen Datenmengen hilfreich ist.

FAQ: Häufige Fragen

1. Frage Wie kann ich nur bestimmte Zeilen ausblenden?

Antwort: Verwende Rows(i).EntireRow.Hidden = True innerhalb einer Schleife, die über die Zeilen iteriert.

2. Frage Was mache ich, wenn ich neue Mitarbeiter hinzufüge?

Antwort: Stelle sicher, dass der Code dynamisch auf die Anzahl der Zeilen in Spalte H reagiert, indem Du End(xlUp).Row verwendest, um die letzte Zeile zu ermitteln.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige