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

Forumthread: Spalten ausblenden wenn Bedingung erfüll

Spalten ausblenden wenn Bedingung erfüll
24.02.2020 13:40:59
Bernd
Hallo zusammen,
ich habe eine Frage zum einem Code welche ich gefunden habe.
Sub Spalte_ausb()
Dim intSpalte As Integer
Application.ScreenUpdating = False
For intSpalte = 1 To 256
If Cells(1, intSpalte) = "" Then
Columns(intSpalte).EntireColumn.Hidden = True
End If
Next
Application.ScreenUpdating = True
End Sub
Wenn ich das richtig verstanden habe, dann gebe ich im Bereich "For intSpalte = 1 To 256" den Abfrage Bereich ein.
und im Bereich "If Cells(3, intSpalte) = "z" Then" gebe ich die Spalte an welche zu durchsuchen ist, in meinem Fall die 3 Spalte und nach was er suchen soll, in meinem Fall ein z.
Ist das so richtig?
Und wie bekomme ich das hin wenn ich das "z" in eine verbunden Zelle habe welche über 4 Spalten zusammenhängt?
Danke und Gruß
Bernd
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Spalten ausblenden wenn Bedingung erfüll
24.02.2020 14:17:09
Bernd
Servus Namensvetter,
nein, das hast du nicht vollständig richtig interpretiert. Ersetze in deinem Text "Spalte" durch "Zeile", dann passt es wieder halbwegs :-)
Der von dir gezeigte Code geht von Spalte 1 (=A) bis Spalte 256 (=IV) die erste Zeile (also von A1 bis IV1) durch und prüft ob diese Zelle leer ist. Wenn leer, dann die ganze Spalte ausblenden, falls nicht leer zur nächsten Spalte weitergehen. Wenn du die 1 durch eine 3 ersetzt, dann prüft er A3-IV3.
Die Sntax lautet "Cells(Zeilenindex, Spaltenindex)".
Verbundene Zellen sollten im Idealfall ohnehin vermieden werden und sind es i.d.R. auch zu 99,9%.
Sind die Abstände/auszublendenden Bereiche immer 4 Spalten breit, oder variieren sie?
Experimentiere vielleicht mal mit sowas hier:

Sub Verbunden()
Dim Zelle As Range
For Each Zelle In Worksheets("Tabelle1").UsedRange
If Zelle.CurrentRegion.Count > 1 Then
MsgBox "Die Zelle " & Zelle.Address & " ist mit " & Zelle.CurrentRegion.Count & _
" verbunden", , "Hinweis"
End If
Next Zelle
End Sub
Grüße, Bernd
Anzeige
AW: Spalten ausblenden wenn Bedingung erfüll
24.02.2020 14:42:43
Bernd
Hallo Bernd :)
Habe den Code jetzt abegändert :
Sub Spalte_ausb()
Dim intZelle As Integer
Application.ScreenUpdating = False
For intZelle = 1 To 100
If Cells(3, intZelle) = "z" Then
Columns(intZelle).EntireColumn.Hidden = True
End If
Next
Application.ScreenUpdating = True
End Sub
Aber leider funktioniert es immer noch nicht.
Die Ausgangssituation ist mein Dynamischer Prüfplan.
Die Anforderungen Ändern sich je nach dem welches Teil ich grade auswähle.
Es gibt natürlich Funktionen welche dann nicht geprüft werden brauchen und mit einem z mangezeigt werden.
Die Spalten will ich dann ausblenden. Problem ist sicherlich das die Spalte eine Verbundene Spalte ist über 4 Zeilen. Es müssen dann also auch 4 Spalten ausgeblendet werden.
Hast du eine Idee wie ich das lösen kann?
Das z steht immer in Spalte 3 (=C)
Danke und Gruß
Der Bernd :)
Anzeige
AW: Spalten ausblenden wenn Bedingung erfüll
24.02.2020 15:27:58
Bernd
Servus Namensvetter,
ich verstehe gerade nur Bahnhof bei der Beschreibung.
Es gibt natürlich Funktionen welche dann nicht geprüft werden brauchen und mit einem z mangezeigt werden. Wo angezeigt? in der Zeile 3 von Spalte A bis IV?
Die Spalten will ich dann ausblenden. Problem ist sicherlich das die Spalte eine Verbundene Spalte ist über 4 Zeilen. Es müssen dann also auch 4 Spalten ausgeblendet werden... Das z steht immer in Spalte 3 (=C) Was denn nun? Spalten, oder Zeilen?
Lade im Idealfall mal eine Beispieldatei mit vereinfachten/verfälschten Daten hoch und erkläre in diesem konkreten Beispiel/der Datei deine Vorstellungen. Ich kann mir aktuell die Struktur nur bedingt vorstellen...
Grüße, Bernd
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Spalten ausblenden in Excel bei erfüllten Bedingungen


Schritt-für-Schritt-Anleitung

Um in Excel Spalten auszublenden, wenn eine bestimmte Bedingung erfüllt ist, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache 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:

    • Klicke mit der rechten Maustaste auf VBAProject (dein Arbeitsbuch) und wähle Einfügen > Modul.
  3. Kopiere und füge den folgenden Code ein:

    Sub Spalte_ausb()
        Dim intSpalte As Integer
        Application.ScreenUpdating = False
        For intSpalte = 1 To 256
            If Cells(3, intSpalte) = "z" Then
                Columns(intSpalte).EntireColumn.Hidden = True
            End If
        Next
        Application.ScreenUpdating = True
    End Sub
  4. Ändere den Bereich in For intSpalte = 1 To 256, um die Anzahl der zu prüfenden Spalten anzupassen.

  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Führe das Makro aus:

    • Drücke ALT + F8, wähle Spalte_ausb und klicke auf Ausführen.

Du kannst den Code anpassen, um andere Bedingungen zu prüfen oder unterschiedliche Zellen zu verwenden.


Häufige Fehler und Lösungen

  • Fehler: Das Makro funktioniert nicht.

    • Lösung: Stelle sicher, dass die Zelle mit der Bedingung (in diesem Fall Cells(3, intSpalte)) die richtige ist. Überprüfe auch, ob der Wert in der Zelle tatsächlich "z" ist.
  • Fehler: Spalten werden nicht korrekt ausgeblendet.

    • Lösung: Achte darauf, dass du den richtigen Bereich in der Schleife angibst. Wenn du verbundene Zellen hast, müssen diese möglicherweise anders behandelt werden.

Alternative Methoden

Falls du Excel ohne VBA verwenden möchtest, kannst du auch die Filterfunktion nutzen:

  1. Markiere die Datenreihe.
  2. Gehe zu Daten > Filter.
  3. Nutze die Dropdown-Menüs, um nur die Daten anzuzeigen, die du benötigst. Dies blendet zwar nicht die Spalten aus, aber du siehst nur die relevanten Informationen.

Eine weitere Möglichkeit ist die Verwendung von bedingter Formatierung, um die Zellen farblich hervorzuheben, anstatt sie auszublenden.


Praktische Beispiele

  1. Beispiel für das Ausblenden von Spalten bei einer bestimmten Bedingung: Wenn in der dritten Zeile ein "z" steht, wird die gesamte Spalte ausgeblendet.

    Sub Spalte_ausb()
        Dim intSpalte As Integer
        Application.ScreenUpdating = False
        For intSpalte = 1 To 100
            If Cells(3, intSpalte) = "z" Then
                Columns(intSpalte).EntireColumn.Hidden = True
            End If
        Next
        Application.ScreenUpdating = True
    End Sub
  2. Beispiel für das Ausblenden mehrerer Spalten: Wenn Spalte 3 "z" enthält, und du auch die nächsten 4 Spalten ausblenden möchtest.

    Sub AusblendenMehrereSpalten()
        Dim intSpalte As Integer
        Application.ScreenUpdating = False
        For intSpalte = 1 To 100
            If Cells(3, intSpalte) = "z" Then
                Columns(intSpalte & ":" & intSpalte + 3).EntireColumn.Hidden = True
            End If
        Next
        Application.ScreenUpdating = True
    End Sub

Tipps für Profis

  • Verwende Option Explicit: Füge am Anfang deines Codes Option Explicit hinzu, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
  • Teste deinen Code in einer Kopie deiner Datei, um Datenverluste zu vermeiden.
  • Nutze Kommentare im Code, um dir und anderen zu helfen, die Logik zu verstehen.

FAQ: Häufige Fragen

1. Kann ich Spalten ohne VBA ausblenden?
Ja, du kannst die Filterfunktion oder bedingte Formatierung verwenden, um Daten zu verstecken.

2. Wie kann ich mehrere Bedingungen überprüfen?
Du kannst zusätzliche If-Bedingungen im VBA-Code hinzufügen, um verschiedene Bedingungen zu prüfen, bevor du die Spalte ausblendest.

3. Was ist, wenn die Spalte leer ist?
Wenn du leere Spalten ebenfalls ausblenden möchtest, kannst du den Code entsprechend anpassen, indem du eine weitere Bedingung hinzufügst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige