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

Forumthread: VBA nur bestimmte Spalten ein- und ausblenden

VBA nur bestimmte Spalten ein- und ausblenden
05.10.2015 12:15:51
Marcel
Guten Tag,
ich moechte mit Hilfe von Check-Boxen (ActiveX) und einem Makro bestimmte Spalten ein- und ausblenden lassen.
Die Check-Boxen befinden sich im Sheet("Tabelle1"), die Spalten, welche ausgeblendet werden sollen im Sheet("Tabelle2").
Wenn die Check_Box ausgewaehlt ist, soll die Spalte eingeblendet sein, wenn die _
Check-Box nicht ausgewaehlt ist, soll die Spalte ausgeblendet sein. Wichtig ist _ dabei, dass nicht alle Spalten auf einmal mit einem Befehl wieder eingeblendet werden.

Private Sub EinAusblenden()
If Q1_2015.Value = True Then
Worksheets("Tabelle2").Activate
Worksheets("Tabelle2").Columns(5).Resize
Else
Worksheets("Tabelle2").Activate
Worksheets("Tabelle2").Columns(5).Select
Selection.EntireColumn.Hidden = True
End If
If Q2_2015.Value = True Then
Worksheets("Tabelle2").Activate
Worksheets("Tabelle2").Columns(6).Resize
Else
Worksheets("Tabelle2").Activate
Worksheets("Tabelle2").Columns(6).Select
Selection.EntireColumn.Hidden = True
End If
If Q3_2015.Value = True Then
Worksheets("Tabelle2").Activate
Worksheets("Tabelle2").Columns(7).Resize
Else
Worksheets("Tabelle2").Activate
Worksheets("Tabelle2").Columns(7).Select
Selection.EntireColumn.Hidden = True
End If
If Q4_2015.Value = True Then
Worksheets("Tabelle2").Activate
Worksheets("Tabelle2").Columns(8).Resize
Else
Worksheets("Tabelle2").Activate
Worksheets("Tabelle2").Columns(8).Select
Selection.EntireColumn.Hidden = True
End If
End Sub

Das Ausblenden funktioniert schonmal, allerdings nicht das einblenden. Waere super, wenn mir jemand weiterhelfen konnte. Bisher habe ich nur Loesungen zum einblenden aller ausgeblendeten Spalten gefunden.

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA nur bestimmte Spalten ein- und ausblenden
05.10.2015 12:27:15
ede
Hallo Marcel,
das geht beispielweise so..

Worksheets("Tabelle2").Activate
spalte = 5
If Q1_2015.Value then
Tabelle2.Columns(spalte).EntireColumn.Hidden = Not Tabelle2.Columns(spalte).EntireColumn. _
Hidden
end if
spalte = 6
If Q2_2015.Value then
Tabelle2.Columns(spalte).EntireColumn.Hidden = Not Tabelle2.Columns(spalte).EntireColumn. _
Hidden
end if

Gruss

Anzeige
AW: VBA nur bestimmte Spalten ein- und ausblenden
05.10.2015 14:22:13
Marcel
Hallo ede,
vielen Dank fuer die schnelle Antwort und den Tipp.
So funktionert es bei mir:

Private Sub Q1_2015_Click()
Worksheets("tabelle2").Activate
spalte = 5
If Q1_2015.Value Then
Sheets("tabelle2").Columns(spalte).EntireColumn.Hidden = Not Sheets("tabelle2").Columns( _
spalte).EntireColumn.Hidden
Else
Sheets("tabelle2").Columns(spalte).EntireColumn.Hidden = Not Sheets("tabelle2").Columns( _
spalte).EntireColumn.Hidden
End If
End Sub
Keine Ahnung warum, aber davor musste ich die Check-Box zwei Mal "ticken", bevor VBA den Befehlt ausgefuehrt hat, obwohl der Code im Debug-Modus korrekt durchlief.
Vielen Dank fuer die Hilfe.

Anzeige
AW: VBA nur bestimmte Spalten ein- und ausblenden
05.10.2015 14:27:21
ede
Hallo noch mal,
das sollte auch so funktionieren:

Private Sub Q1_2015_Click()
Worksheets("tabelle2").Activate
spalte = 5
Sheets("tabelle2").Columns(spalte).EntireColumn.Hidden = Q1_2015.Value
End Sub

gruss

AW: VBA nur bestimmte Spalten ein- und ausblenden
06.10.2015 08:18:50
Marcel
Hallo ede,
funktioniert ebenso wunderbar. Gibt es noch eine Moeglichkeit, das ganze etwas smarter zu gestalten, indem man nicht staendig "tabelle2" aktivieren muss, sondern auf "tabelle1" bleibt?
Danke im Voraus.

Anzeige
AW: VBA nur bestimmte Spalten ein- und ausblenden
06.10.2015 12:36:19
ede
Hallo noch mal,
dann lass doch einfach weg:
Worksheets("tabelle2").Activate

gruss
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Spalten in Excel mit VBA ein- und ausblenden


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA bestimmte Spalten ein- und auszublenden, brauchst du zunächst einige Check-Boxen (ActiveX) in deinem Arbeitsblatt. In diesem Beispiel verwenden wir zwei Blätter: „Tabelle1“ für die Check-Boxen und „Tabelle2“ für die Spalten, die ein- oder ausgeblendet werden sollen.

  1. Füge ActiveX-Check-Boxen hinzu:

    • Gehe zu „Entwicklertools“ -> „Einfügen“ -> wähle die Check-Box (ActiveX-Steuerelement) aus und füge sie in „Tabelle1“ ein.
  2. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge den folgenden VBA-Code in das Modul von „Tabelle1“ ein:

    Private Sub Q1_2015_Click()
       spalte = 5
       Sheets("Tabelle2").Columns(spalte).EntireColumn.Hidden = Not Q1_2015.Value
    End Sub
    
    Private Sub Q2_2015_Click()
       spalte = 6
       Sheets("Tabelle2").Columns(spalte).EntireColumn.Hidden = Not Q2_2015.Value
    End Sub
    
    ' Füge weitere Subroutinen für die anderen Check-Boxen hinzu

    Dieser Code blendet die Spalte 5 ein oder aus, abhängig vom Status der Check-Box Q1_2015.

  4. Teste die Funktionalität:

    • Klicke auf die Check-Boxen in „Tabelle1“ und beobachte, wie die entsprechenden Spalten in „Tabelle2“ ein- und ausgeblendet werden.

Häufige Fehler und Lösungen

  • Problem: Die Spalten werden nicht ein- oder ausgeblendet, obwohl der Code korrekt aussieht.

    • Lösung: Überprüfe, ob die Check-Boxen korrekt mit den entsprechenden Subroutinen verknüpft sind. Manchmal muss man die Check-Box zweimal aktivieren, bevor die Änderung wirksam wird.
  • Problem: Das Arbeitsblatt „Tabelle2“ wird ständig aktiviert.

    • Lösung: Du kannst die Zeile Worksheets("Tabelle2").Activate weglassen, um die Aktivierung zu vermeiden. Das macht den Code effizienter.

Alternative Methoden

Eine Alternative zur Verwendung von Check-Boxen ist die Verwendung von Schaltflächen oder einfachen Dropdown-Listen. Du kannst ein Excel-Makro erstellen, das auf einen Button klickt, um die Spalten ein- oder auszublenden, oder mit einer Auswahl in einer Dropdown-Liste arbeiten.

Hier ist ein einfaches Beispiel für einen Button, der eine Spalte ausblendet:

Sub Ausblenden()
    Sheets("Tabelle2").Columns(5).EntireColumn.Hidden = True
End Sub

Praktische Beispiele

  • Beispiel 1: Einblenden einer bestimmten Spalte, wenn die Check-Box aktiviert ist:

    Private Sub Q1_2015_Click()
       Sheets("Tabelle2").Columns(5).EntireColumn.Hidden = Not Q1_2015.Value
    End Sub
  • Beispiel 2: Ein Makro zum Einblenden mehrerer Spalten:

    Sub EinblendenMehrereSpalten()
       Dim i As Integer
       For i = 5 To 8
           Sheets("Tabelle2").Columns(i).EntireColumn.Hidden = False
       Next i
    End Sub

Tipps für Profis

  • Nutze die With-Anweisung, um den Code zu vereinfachen:

    With Sheets("Tabelle2")
       .Columns(5).EntireColumn.Hidden = Not Q1_2015.Value
    End With
  • Erstelle eine Funktion, um den Status der Spalten zu speichern und später wiederherzustellen. So kannst du leicht zwischen verschiedenen Ansichten wechseln.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Spalten gleichzeitig ausblenden? Du kannst eine Schleife verwenden, um mehrere Spalten zu bearbeiten. Beispiel:

For i = 5 To 8
    Sheets("Tabelle2").Columns(i).EntireColumn.Hidden = True
Next i

2. Was mache ich, wenn die Check-Box nicht funktioniert? Überprüfe, ob die Check-Box korrekt mit der Subroutine verknüpft ist und dass der VBA-Code aktiv ist. Manchmal kann es helfen, die Check-Box zu löschen und neu hinzuzufügen.

3. Gibt es eine Möglichkeit, einzelne Zellen auszublenden? In Excel kannst du keine Zellen direkt ausblenden, aber du kannst den Text in eine Zelle schreiben und die Schriftfarbe auf die Hintergrundfarbe setzen, um den Inhalt unsichtbar zu machen.

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