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

Forumthread: nur bestimmte Spalten anzeigen per VBA

nur bestimmte Spalten anzeigen per VBA
21.11.2007 20:07:00
Matthias
Hallo zusammen,
ich habe eine Liste mit Zeichnungs- und Stücklistennummern sowie Gewichten einer bestimmten Maschine. Dabei stehen die Baugrößen der Maschine in den Spaltenköpfen.
Folgendes stelle ich mir vor:
- Die Spalten A bis N sollen immer stehen bleiben.
- Auf Knopfdruck sollen nur die Spalten einer bestimmten Baugröße eingeblendet sein, die anderen Baugrößen sollen ausgeblendet werden. Wenn man also z.B. Baugröße 200 auswählt, sollen nur die Spalten mit den Spaltenüberschriften 200, 200S und 200G stehenbleiben (abgesehen von Spalte A-N).
Hier wäre also ein Menü-Objekt schön, um die Auswahl der Baugröße vorzunehmen.
Die Datei: https://www.herber.de/bbs/user/47933.xls
Vielen Dank für die jegliche Hilfe schon mal,
Matthias

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nur bestimmte Spalten anzeigen per VBA
21.11.2007 20:28:22
Jens
Hi,
wie lautet denn nun deine Frage?
mfg Jens

AW: nur bestimmte Spalten anzeigen per VBA
21.11.2007 20:37:25
Matthias
Hi,
Die Frage ist einfach, wie man so etwas in VBA umsetzen kann, weil man ja in horizontaler Richtung keinen Filter o.ä. setzen kann. Zumindest ein Ansatz wäre nicht schlecht...
Matthias

AW: nur bestimmte Spalten anzeigen per VBA
21.11.2007 21:05:00
Jens
Hi,
Stichworte: Gruppierung, Benutzerdefinierte Ansichten beides ohne VBA.
mfg Jens

Anzeige
AW: nur bestimmte Spalten anzeigen per VBA
22.11.2007 00:43:00
Daniel
Hi
du könntest folgende Makros zum Filtern und wiedereinblenden verwenden:

Sub Filtern_Horizontal()
Dim Zelle As Range
Dim Bereich As Range
Dim Filtertext As String
Dim Einblenden As Range
Set Bereich = Range("N1:BF3")
Filtertext = InputBox("Hallo")
For Each Zelle In Bereich
If Zelle.Text Like Filtertext Then
If Einblenden Is Nothing Then
Set Einblenden = Zelle
Else
Set Einblenden = Union(Einblenden, Zelle)
End If
End If
Next
Bereich.EntireColumn.Hidden = True
Einblenden.EntireColumn.Hidden = False
End Sub


Um alle Spalten anzuzeigen, die mit 200 anfangen (also 200H, 200G) musst du 200* eingeben.
und um alles wieder einzublenden, dieses Makro


Sub Filter_Horizontal_aus()
Range("N1:BF3").EntireColumn.Hidden = False
End Sub


Gruß, Daniel

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Nur bestimmte Spalten anzeigen per VBA in Excel


Schritt-für-Schritt-Anleitung

Um in Excel nur bestimmte Spalten mit bestimmten Inhalten anzuzeigen, kannst du VBA verwenden. Folgen diese Schritte:

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke im Menü auf Einfügen > Modul.

  3. Kopiere folgenden Code in das Modul:

    Sub Filtern_Horizontal()
       Dim Zelle As Range
       Dim Bereich As Range
       Dim Filtertext As String
       Dim Einblenden As Range
       Set Bereich = Range("N1:BF3") ' Definiere den Bereich mit den Spalten
       Filtertext = InputBox("Gib die Baugröße ein (z.B. 200):")
    
       For Each Zelle In Bereich
           If Zelle.Text Like Filtertext Then
               If Einblenden Is Nothing Then
                   Set Einblenden = Zelle
               Else
                   Set Einblenden = Union(Einblenden, Zelle)
               End If
           End If
       Next
    
       Bereich.EntireColumn.Hidden = True
       If Not Einblenden Is Nothing Then
           Einblenden.EntireColumn.Hidden = False
       End If
    End Sub
  4. Erstelle ein zweites Makro, um alle Spalten wieder einzublenden:

    Sub Filter_Horizontal_aus()
       Range("N1:BF3").EntireColumn.Hidden = False
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Füge Schaltflächen hinzu, um die Makros auszuführen: Gehe zu Entwicklertools > Einfügen und wähle eine Schaltfläche aus.


Häufige Fehler und Lösungen

  • Fehler: "Der Bereich ist leer."

    • Stelle sicher, dass der definierte Bereich (Range("N1:BF3")) die korrekten Zellen enthält.
  • Fehler: Nichts passiert, wenn ich eine Baugröße eingebe.

    • Überprüfe, ob die eingegebene Baugröße korrekt ist und in den Spaltenüberschriften vorhanden ist.
  • Lösung: Spalten werden nicht angezeigt.

    • Stelle sicher, dass du den Filtertext richtig eingegeben hast, z.B. 200* für alle Spalten, die mit 200 beginnen.

Alternative Methoden

Wenn du ohne VBA arbeiten möchtest, kannst du auch benutzerdefinierte Ansichten oder Gruppierungen verwenden. Diese Methoden sind jedoch weniger flexibel, wenn es darum geht, nur bestimmte Spalten mit bestimmten Inhalten anzuzeigen.

  1. Gruppierung: Markiere die gewünschten Spalten, klicke mit der rechten Maustaste und wähle Gruppieren.
  2. Benutzerdefinierte Ansichten: Gehe zu Ansicht > Arbeitsmappenansichten > Benutzerdefinierte Ansichten, um verschiedene Ansichten zu speichern.

Praktische Beispiele

  • Beispiel 1: Wenn du nur Spalten mit der Baugröße 200 anzeigen möchtest, gib 200* in das Input-Feld ein.
  • Beispiel 2: Um alle Spalten mit einem bestimmten Inhalt anzuzeigen, könntest du auch 200G eingeben, um nur diese Spalte zu sehen.

Tipps für Profis

  • Nutze die Tastenkombinationen in Excel, um schneller zu navigieren und zu arbeiten.
  • Überlege, ein Dropdown-Menü zu erstellen, um die Auswahl der Baugröße zu vereinfachen.
  • Experimentiere mit Bedingten Formatierungen, um die Sichtbarkeit von Zellen zu verbessern, die du möglicherweise einblenden oder ausblenden möchtest.

FAQ: Häufige Fragen

1. Wie kann ich nur bestimmte Zellen anzeigen?
Du kannst die gleiche Logik im VBA-Code verwenden, um spezifische Zellen anzuzeigen, indem du die Range anpasst.

2. Funktioniert das in allen Excel-Versionen?
Ja, die oben genannten VBA-Methoden funktionieren in den meisten modernen Excel-Versionen. Achte darauf, dass du die Makros aktiviert hast.

3. Kann ich das auch ohne VBA machen?
Ja, du kannst Gruppierungen oder Filter verwenden, aber diese Methoden sind weniger flexibel als VBA.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige