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

Forumthread: Makro: Wenn Zelle Wert dann Spalten ausblenden

Makro: Wenn Zelle Wert dann Spalten ausblenden
20.01.2016 11:12:14
Herr
Hallo Zusammen,
ich habe folgendes Makro zum bedingten Ein-/Ausblenden von Spalten, bereits durch das Forum erhalten:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Address(0, 0) = "C7" Then
Range("H:S").EntireColumn.Hidden = False
Select Case .Value
Case "", 1: Range("H:S").EntireColumn.Hidden = True
Case 2: Range("K:S").EntireColumn.Hidden = True
Case 3: Range("N:S").EntireColumn.Hidden = True
Case 4: Range("Q:S").EntireColumn.Hidden = True
Case Else
End Select
End If
End With
End Sub

Nun muss dieses noch erweitert werden. Hier dazu die Bedingungen.
Bedingung 1: das o.g. Makro muss weiterhin genauso wie jetzt funktionieren
zusätzlich
Bedingung 2: In F6 soll auch ein Wert eingetragen werden, der das ein-/ausblenden von Spalten beeinflusst
Bedingung 3: Wenn F6="" dann soll Spalte T bis AB ausgeblendet sein
Bedingung 4: Wenn F6=1 dann soll lediglich Spalte W bis AB ausgeblendet sein
Bedingung 5: Wenn F6=2 dann soll lediglich Spalte Z bis AB ausgeblendet sein
Bedingung 6: Wenn F6=3 dann soll nichts von T:AB ausgeblendet sein
zusätzliche Bedingung: F6 ist ein Dropdown(sprich Daten, Datenüberprüfung, Liste). Es sollte dann wennmöglich bei Änderung der Zahl ("" oder 1-3) in Feld F6 automatisch aus- bzw. wieder einblenden, abhängig von den Bedingungen.
Und weiter soll das gleiche auch für F7 möglich sein, mit folgenden Bedingungen:
Bedingung 1: die vorherigen Funktionen (siehe oben) müssen immernoch funktionieren
Bedingung 2: In F7 soll auch ein Wert eingetragen werden, der das ein-/ausblenden von Spalten beeinflusst
Bedingung 3: Wenn F7="" dann soll Spalte AC bis AH ausgeblendet sein
Bedingung 4: Wenn F6=1 dann soll lediglich Spalte AF bis AH ausgeblendet sein
Bedingung 5: Wenn F6=2 dann soll nichts von AC:AH ausgeblendet sein
Bedingung 6: Auch hier ist F6 ein Dropdown und sollte abhängig vom Eintrag das Ein-/Ausblenden beeinflussen.
Ich hoffe ich konnte es verständlich machen und mir kann jmd helfen.
Besten Dank im Voraus!
Grüße
Herr Koch

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro: Wenn Zelle Wert dann Spalten ausblenden
20.01.2016 12:44:10
Rudi
Hallo,
ist doch das gleiche in grün.
Mach noch 2 weitere If-Blöcke auf.
If .Address(0, 0) = "F6" Then
Select Case....
End if
If .Address(0, 0) = "F7" Then
Select Case....
End if
Gruß
Rudi

AW: Makro: Wenn Zelle Wert dann Spalten ausblenden
20.01.2016 13:17:25
Herr
Also muss es so aussehen?:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Address(0, 0) = "C7" Then
Range("H:S").EntireColumn.Hidden = False
Select Case .Value
Case "", 1: Range("H:S").EntireColumn.Hidden = True
Case 2: Range("K:S").EntireColumn.Hidden = True
Case 3: Range("N:S").EntireColumn.Hidden = True
Case 4: Range("Q:S").EntireColumn.Hidden = True
Case Else
End Select
End If
If .Address(0, 0) = "F6" Then
Range("T:AB").EntireColumn.Hidden = False
Select Case .Value
Case "": Range ("T:AB").EntireColumn.Hidden = True
Case 1: Range("W:AB").EntireColumn.Hidden = True
Case 2: Range("Z:AB").EntireColumn.Hidden = True
Case Else
End Select
End If
If .Address(0, 0) = "F7" Then
Range("AC:AH").EntireColumn.Hidden = False
Select Case .Value
Case "": Range("AC:AH").EntireColumn.Hidden = True
Case 1: Range("AF:AH").EntireColumn.Hidden = True
Case Else
End Select
End if
End With
End Sub

Anzeige
AW: Makro: Wenn Zelle Wert dann Spalten ausblenden
20.01.2016 14:03:01
Herr
Scheint zu passen, besten Dank
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makro zum bedingten Ein- und Ausblenden von Spalten in Excel


Schritt-für-Schritt-Anleitung

Um ein Makro zum bedingten Ein- und Ausblenden von Spalten in Excel zu erstellen, folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle das Arbeitsblatt aus, in dem du das Makro anwenden möchtest.
  3. Füge den folgenden Code in das Codefenster ein:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    With Target
        ' Bedingung für C7
        If .Address(0, 0) = "C7" Then
            Range("H:S").EntireColumn.Hidden = False
            Select Case .Value
                Case "", 1: Range("H:S").EntireColumn.Hidden = True
                Case 2: Range("K:S").EntireColumn.Hidden = True
                Case 3: Range("N:S").EntireColumn.Hidden = True
                Case 4: Range("Q:S").EntireColumn.Hidden = True
                Case Else
            End Select
        End If

        ' Bedingung für F6
        If .Address(0, 0) = "F6" Then
            Range("T:AB").EntireColumn.Hidden = False
            Select Case .Value
                Case "": Range("T:AB").EntireColumn.Hidden = True
                Case 1: Range("W:AB").EntireColumn.Hidden = True
                Case 2: Range("Z:AB").EntireColumn.Hidden = True
                Case 3: ' Nichts ausblenden
            End Select
        End If

        ' Bedingung für F7
        If .Address(0, 0) = "F7" Then
            Range("AC:AH").EntireColumn.Hidden = False
            Select Case .Value
                Case "": Range("AC:AH").EntireColumn.Hidden = True
                Case 1: Range("AF:AH").EntireColumn.Hidden = True
                Case 2: ' Nichts ausblenden
            End Select
        End If
    End With
End Sub
  1. Schließe den VBA-Editor und teste das Makro, indem du in die Zellen C7, F6 oder F7 Werte einträgst.

Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass die Makros in den Excel-Optionen aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen.
  • Fehler: Die Spalten blenden sich nicht wie erwartet ein oder aus.

    • Lösung: Überprüfe die Zellreferenzen in deinem Code und stelle sicher, dass die Dropdown-Listen in F6 und F7 korrekt eingerichtet sind.

Alternative Methoden

Anstelle eines Makros kannst du auch die bedingte Formatierung verwenden, um Spalten basierend auf Zellwerten auszublenden. Diese Methode ist jedoch weniger flexibel und kann bei komplexeren Anforderungen schnell an ihre Grenzen stoßen.


Praktische Beispiele

Eine praktische Anwendung wäre beispielsweise die Verwendung des obigen Makros in einem Verkaufsbericht, wo du je nach Produktkategorie bestimmte Spalten ausblenden möchtest, um die Übersichtlichkeit zu erhöhen.


Tipps für Profis

  • Nutze die Möglichkeit, Benutzerfehler zu minimieren, indem du Dropdown-Listen erstellst. Das erleichtert die Eingabe und reduziert Fehlerquellen.
  • Teste das Makro in einer Kopie deiner Excel-Datei, um ungewollte Änderungen zu vermeiden.
  • Dokumentiere deinen Code mit Kommentaren, damit du und andere Benutzer die Logik später leichter nachvollziehen können.

FAQ: Häufige Fragen

1. Kann ich das Makro auch in Excel Online verwenden? Nein, VBA-Makros sind nur in der Desktop-Version von Excel verfügbar.

2. Wie kann ich das Makro anpassen, um mehr Bedingungen hinzuzufügen? Füge einfach weitere If-Blöcke und Select Case-Anweisungen für die gewünschten Zellen und Bedingungen hinzu.

3. Was ist, wenn ich die Spalten anpassen möchte, die ein- oder ausgeblendet werden? Ändere die Bereichsangaben in den Range()-Funktionen des Codes entsprechend deinen Anforderungen.

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