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

Spalten ausblenden, wenn ...

Forumthread: Spalten ausblenden, wenn ...

Spalten ausblenden, wenn ...
05.08.2002 10:53:55
amb_mr
Gibt es eine Möglichkeit, eine (oder mehrere) Spalten automatisch auszublenden, wenn eine oder mehrere Zellen bestimmte Werte enthalten?
z.B.: Wenn in bestimmten Zellen von Spalte X nur Nullen enthalten sind, dann blende Spalte X (und Y) aus.

Danke im voraus.

Marco

Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Spalten ausblenden, wenn ...
05.08.2002 10:58:43
Frederik Fuhrmann
Hallo!

Versuchs mal so:


Sub Test2()

If Range("x1") = "" Then
If Range("x2") = "" Then
Columns("X:X").EntireColumn.Hidden = True
End If
End If

End Sub


Gruß
F.

Geht leider nicht ...
05.08.2002 11:12:20
amb_mr
Habe folgendes probiert:

Sub Test2()

If Range(D1) = "" Then
If Range(D9) = "" Then
Columns("D:D").EntireColumn.Hidden = True
End If
End If

End Sub

Funktioniert aber leider nicht. Zu alte XL-Version (97) ???

Anzeige
Re: Geht leider nicht ...
05.08.2002 11:16:22
Frederik Fuhrmann

Sub Test2()

...
If Range("D1") = "" Then
If Range("D9") = "" Then
...

Du musst die Zellen in Klammern setzen!

Das klappt jetzt, aber ...
05.08.2002 11:29:37
amb_mr
Vielen Dank, Frederik, jetzt funktioniert es!

Kann ich mit dem RANGE-Befehl auch einen ganzen Bereich definieren, also wenn Zellen D1 bis D22 leer, dann ...

Und wie kann ich erreichen, dass das Makro automatisch ausgeführt wird, ohne dass es extra angestoßen wird?
Ich habe die VBA-Syntax jatzt unter Tabelle 1 gespeichert.

Nochmals danke für die Anfänger-Nachhilfe!

Marco

Anzeige
Re: Das klappt jetzt, aber ...
05.08.2002 11:33:52
Frederik Fuhrmann
Klar, dann musst du einfach schreiben:

If Range("D1:D22")...


Das mit dem automatischen anstoßen;
Dann musst du in das Tabellenblatt(VBA) reinschreiben:


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

(dein Code)

End Sub


Laufzeitfehler
05.08.2002 11:44:00
amb_mr
Ich erhalte jetzt einen Laufzeitfehler 13 (Typen unverträglich) bei folgendem VBA-Code:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("D1:D45") = "" Then
Columns("D:D").EntireColumn.Hidden = True
End If

End Sub


Was mache ich falsch?

Anzeige
Re: Laufzeitfehler
05.08.2002 11:59:40
Frederik Fuhrmann
Hallo!


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Bereich

Bereich = 1

For Bereich = 1 To 45

If Range("D" & Bereich) <> "" Then
...
End If

Next Bereich

End Sub

Re: Laufzeitfehler
05.08.2002 12:12:06
JürgenR
Hallo Zusammen,

ich würde umgekehrt vorgehen, um zu vermeiden dass der Hidden-Befehl ggfs. 45 Mal ausgeführt wird:

Gruß
Jürgen

Anzeige
Ich nerve ...
05.08.2002 12:24:11
amb_mr
Sorry, Frederik,

zwar kein Laufzeitfehler mehr, aber bei der Lösung wird Spalte D auf jeden Fall ausgeblendet, egal ob irgendwo im Bereich D1:D45 ein Wert 0 oder größer 0 steht. Dabei habe ich mit dem gleichen Ergebnis die Varianten RANGE(...) ="" und <>"" probiert.

Das Problem ist, dass Spalte D Formeln enthält. Wenn das Ergebnis dieser Formlen 0 ist, dann sollen Spalten D und E ausgeblendet werden. Tut mir leid, wenn ich das nicht klar genug geschildert habe.

Gruß, Marco

Anzeige
Re:
05.08.2002 12:35:12
amb_mr
Hallo Jürgen,
danke für Deinen Ansatz.
Meine Schuld, das Problem nicht richtig geschildert zu haben:

Das Problem ist, dass Spalte D von Zelle 1 bis 45 Formeln enthält. Wenn das Ergebnis dieser Formeln durchgängig 0 ist, dann sollen Spalten D und E ausgeblendet werden.
Wenn sich nun aufgrund der Formeln in einer der Zellen ein Wert > 0 ergibt, sollen die Spalten wieder eingeblendet werden.

Gruß, Marco

Anzeige
Re:
05.08.2002 12:40:39
JürgenR
Hi,

dann so:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim i As Long
Columns("D:E").EntireColumn.Hidden = True
For i = 1 To 45
If Cells(i, 4) <> 0 Then
Columns("D:E").EntireColumn.Hidden = False
Exit Sub
End If
Next i
End Sub

Gruß
Jürgen

Anzeige
Re:
05.08.2002 12:48:40
Yeah!!!
Das ist es, Jürgen. VIELEN DANK!!!

Frage im Nachgang:
Wofür steht eigentlich in "If Cells(i, 4)" die 4?

Danke im voraus,
MArco

Für D = 4. Buchstabe im ABC o.T.
05.08.2002 12:53:28
JürgenR
.
Weiteres Problem
05.08.2002 13:46:53
amb_mr
Wenn die Formeln in Spalte D auf ein anderes Tabellenblatt verweisen, funktioniert der Code nicht mehr.

Was muss ich tun?

Anzeige
Re: Weiteres Problem
05.08.2002 13:53:06
JürgenR
Hi,

dann zusätzlich:

Private Sub Worksheet_Activate()
Dim i As Long
Columns("D:E").EntireColumn.Hidden = True
For i = 1 To 45
If Cells(i, 4) <> 0 Then
Columns("D:E").EntireColumn.Hidden = False
Exit Sub
End If
Next i
End Sub

Gruß
Jürgen

Re: Weiteres Problem
05.08.2002 14:04:17
amb_mr
Jau, klappt!
Aber wieso "zusätzlich"?
Ich kann mir doch den vorhergehenden Sub "Worksheet_change" jetzt sparen, oder?

Danke nochmal für Deine super Hilfe!

Gruß, Marco

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Spalten automatisch ausblenden in Excel


Schritt-für-Schritt-Anleitung

Um Spalten ausblenden zu können, wenn bestimmte Bedingungen erfüllt sind, kannst du VBA (Visual Basic for Applications) in Excel verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" -> Einfügen -> Modul.

  3. Füge den folgenden Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim i As Long
       Columns("D:E").EntireColumn.Hidden = True
       For i = 1 To 45
           If Cells(i, 4) <> 0 Then
               Columns("D:E").EntireColumn.Hidden = False
               Exit Sub
           End If
       Next i
    End Sub
  4. Schließe den VBA-Editor und kehre zu deinem Arbeitsblatt zurück.

  5. Teste die Funktion: Ändere die Werte in den Zellen D1 bis D45 und beobachte, wie die Spalten automatisch ausgeblendet werden.


Häufige Fehler und Lösungen

  • Laufzeitfehler 13 (Typen unverträglich): Achte darauf, dass die Zellen in Klammern gesetzt sind, z.B. If Range("D1") = "" Then.
  • Spalten blenden sich nicht aus: Stelle sicher, dass der Bereich korrekt definiert ist und dass die Formeln in den Zellen tatsächlich 0 zurückgeben.
  • VBA funktioniert nicht in älteren Excel-Versionen: Einige VBA-Funktionen können in Excel-Versionen vor 2007 nicht unterstützt werden. Aktualisiere ggf. dein Excel.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du auch bedingte Formatierungen nutzen, um Spalten visuell zu kennzeichnen, anstatt sie auszublenden. Dazu:

  1. Markiere die Spalten, die du überwachen möchtest.
  2. Gehe zu Start -> Bedingte Formatierung.
  3. Wähle Neue Regel -> Formel zur Ermittlung der zu formatierenden Zellen verwenden.
  4. Gib eine Formel ein, z.B. =D1=0, um die Zellen zu formatieren, wenn der Wert 0 ist.

Praktische Beispiele

  1. Spalte ausblenden, wenn alle Werte 0 sind:

    If Application.WorksheetFunction.CountIf(Range("D1:D45"), "<>0") = 0 Then
       Columns("D").Hidden = True
    End If
  2. Mehrere Spalten basierend auf einer Bedingung ausblenden:

    If Application.WorksheetFunction.CountIf(Range("D1:D45"), "<>0") = 0 Then
       Columns("D:E").Hidden = True
    End If

Tipps für Profis

  • Automatisches Ausblenden: Um Excel spalten automatisch auszublenden, kannst du den Code im Worksheet_Activate-Ereignis verwenden, damit die Spalten beim Öffnen des Arbeitsblattes sofort überprüft werden.
  • Optimierung des Codes: Verwende Application.ScreenUpdating = False, um das Flackern beim Ausblenden von Spalten zu reduzieren.

    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True

FAQ: Häufige Fragen

1. Wie kann ich eine Spalte ausblenden, wenn ein bestimmter Wert vorhanden ist? Du kannst den VBA-Code anpassen, um die Bedingung entsprechend zu ändern. Beispiel: If Cells(i, 4) = 1 Then.

2. Was mache ich, wenn die Formeln auf ein anderes Blatt verweisen? Du musst sicherstellen, dass der VBA-Code sowohl auf das aktuelle Blatt als auch auf die entsprechenden Zellen auf dem anderen Blatt zugreift. Verwende Worksheets("Blattname").Cells(i, 4).

3. Kann ich auch Zeilen basierend auf bestimmten Bedingungen ausblenden? Ja, du kannst einen ähnlichen Ansatz verwenden, um Excel zeilen auszublenden, indem du den Code für die Zeilen anpasst.

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