Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1492to1496
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Spalten ausblenden mit Bedingung

Spalten ausblenden mit Bedingung
28.05.2016 22:59:16
Denny
Hallo zusammen,
möchte mich kurz vorstellen. Mein Name ist Denny und komme aus dem schönen Bayern, ich benutze Excel hauptsächlich beruflich als kleines (großes) Helferlein und zur Arbeitserleichterung. Bisher bin ich durch lesen und recherchieren immer zum Ziel gekommen, aber an diesem Problem beiß ich mir die Zähne aus.
Ich möchte über VBA alle Spalten ausblenden die nicht eine bestimmte Bedingung erfüllen.
Die Bedingung steht in Zelle B4
Die zu überprüfenden Werte stehen im Bereich K2:AA2 (AA2 evtl. flexibel bzw. ermitteln der weitesten rechts stehenden befüllten Spalte)
Es sollen nur Spalten des zu überprüfenden Bereich ausgeblendet werden.
Keine davor, keine dahinter.
Die Spalten sollen ausgeblendet werden wenn der Wert in Zeile 2 nicht mit B4 übereinstimmt.
Ich hoffe ich konnte einigermaßen rüber bringen was mir so den Kopf zerbricht.
Kann mir bitte von euch jemand helfen?
Vielen Dank für eure Bemühungen.
Gruß Denny

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten ausblenden mit Bedingung
28.05.2016 23:26:38
Piet
Hallo Denny
probier mal das folgende Makro aus. Es sind zwei Makros. Eins zum Wiedereinblenden.
mfg Piet
Sub Spalten_K_bis_AA_ausblenden()
Dim k As Integer
'Columns = Spalte von 11 bis 27
For k = 11 To 27  'Spalte k bis AA
If Cells(2, k) = Range("B4") Then
Columns(k).EntireColumn.Hidden = True
End If
Next k
End Sub
Sub Spalten_wieder_einblenden()
Columns("K:AA").EntireColumn.Hidden = False
End Sub

AW: Spalten ausblenden mit Bedingung
29.05.2016 03:12:21
Werner
Hallo Danny,
meine Version als Ereignis-Makro. Das Makro wird ausgeführt sobald der Wert in B4 geändert wird. Der Code gehört in das Code-Modul des Tabellenblattes, auf dem er sich auswirken soll.
Rechtsklick auf Tabellenreiter - Code anzeigen - Code rechts ins Code-Fenster kopieren.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim k As Long
Dim i As Long
Application.ScreenUpdating = False
If Target.Row = 4 And Target.Column = 2 Then
i = Cells(2, Columns.Count).End(xlToLeft).Column
Range(Cells(11, 1), Cells(1, i)).EntireColumn.Hidden = False
'von Spalte K bis letzte Spalte
For k = 11 To i
'Spalte K bis Letzte Spalte
If Cells(2, k) = Range("B4") Then
Columns(k).EntireColumn.Hidden = True
End If
Next k
End If
Application.ScreenUpdating = True
End Sub
Gruß Werner

Anzeige
AW: Spalten ausblenden mit Bedingung
29.05.2016 03:29:07
Werner
Hallo Danny,
was ich noch vergessen habe, die letzte Spalte ist bei jetzt nicht fix sondern es wird jeweils in Zeile 2 die letzte beschriebene Spalte ermittelt.
Gruß Werner

AW: Spalten ausblenden mit Bedingung
29.05.2016 03:53:16
Werner
Hallo Danny,
um die Zeit vielleicht nicht mehr so gut.
Nimm besser die Version. Bei der anderen stimmt die Ermittlung der letzten beschriebenen Spalte nicht, wenn die letzte beschriebene Spalte ausgeblendet ist.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim k As Long
Dim i As Long
'Bildschirmaktualisierung ausschalten
Application.ScreenUpdating = False
'Bei Änderung in Zeile 4 und Spalte 2 (B4)
If Target.Row = 4 And Target.Column = 2 Then
'erst alle wieder einblenden
Range(Cells(11, 1), Cells(1, Columns.Count)).EntireColumn.Hidden = False
'Ermitteln der letzten beschriebenen Spalte in Zeile 2
i = Cells(2, Columns.Count).End(xlToLeft).Column
'von Spalte K bis letzte Spalte
For k = 11 To i
'Wenn Spalte K bis Letzte Spalte = Wert in B4
If Cells(2, k) = Range("B4") Then
'entsprechende Spalte ausblenden
Columns(k).EntireColumn.Hidden = True
End If
'nächste Spalte
Next k
End If
'Bildschirmaktualisierung wieder einschalten
Application.ScreenUpdating = True
End Sub
Gruß Werner

Anzeige
AW: Spalten ausblenden mit Bedingung
30.05.2016 12:20:49
Denny
Hallo zusammen,
vielen Dank Piet und Werner für die schnelle Bearbeitung, das ging ja echt flott.
Grundsätzlich funktioniert der Lösungsansatz von Werner schon ganz gut für mich, nur werden jetzt die Spalten ausgeblendet die ich eigentlich sehen möchte und alle anderen bleiben erhalten.
Die Spalten sollen ausgeblendet werden wenn der Wert in Zeile 2 nicht mit B4 übereinstimmt.
Gruß Denny

AW: Spalten ausblenden mit Bedingung
30.05.2016 12:22:12
Denny
Hab das Häkchen bei nicht beantwortet vergessen. Sorry.

AW: Spalten ausblenden mit Bedingung
30.05.2016 12:40:23
Werner
Hallo Denny,
dann mach doch einfach im Code beim Vergleich mit B4 aus dem = ein
Gruß Werner

Anzeige
AW: Spalten ausblenden mit Bedingung
30.05.2016 16:52:28
Denny
Hallo Werner,
vielen Dank nochmal für deine Unterstützung. Habe jetzt die Änderung mit durchgeführt und getestet. Die Tabelle wird super träge und geht gefühlt in eine Schleife. Ich muss Excel immer mit dem Taskmanager beenden.
Meine Tabelle ist ca. 600 Zeilen und 1000 Spalten groß.
Zudem sind hier drei formatierte Tabellen enthalten.
Muss ich hier etwas beachten?
Gibt es NoGo´s beim Filtern von Spalten?
Beim Autofilter geht das in Millisekunden auch bei mehr als 1000 Zeilen.
Wie lange sollte das Ausblenden bei 1000 Spalten denn ungefähr dauern?
Gruß Denny

Anzeige
AW: Spalten ausblenden mit Bedingung
30.05.2016 17:23:29
Werner
Hallo Denny,
versuch mal ob es was bringt die automatische Berechnung auszuschalten.
Im Code nach
Application.Screenupdating = False
Application.Calculation = xlCalculationManual (Berechnung aus)
und am Ende dann
Application.Calculation = xlAutomatic (Berechnung an)
Application.Screenupdating = True
Gruß Werner

AW: Spalten ausblenden mit Bedingung
30.05.2016 18:04:23
Denny
Hallo Werner,
hab den Fehler gefunden, das Makro mag keine Gruppierungen lässt sich das auch irgendwie abschalten beim Ablauf?
Außerdem wenn ich den Wert in B4 lösche dann werden alle Spalten ausgeblendet, anstatt alle wieder ein, irgenwie logisch bei 0.
Gruß Denny
PS: Ich glaube wir sind nach dran. Danke :-)

Anzeige
AW: Spalten ausblenden mit Bedingung
30.05.2016 19:58:04
Werner
Hallo Denny,
kannst du mal ne Beispieltabelle hochladen? Bin jetzt zwar nicht der VBA-Profi und kann dir nicht versprechen ob ich es hinbekommen, werde es aber versuchen.
Kann dir aber auch nicht sagen wann ich mir die Geschichte ansehen kann - derzeit I-Net augrund eines Unwetters gestern tot. Keine Ahnung wann das wieder läuft.
Also auf alle Fälle auf offen stellen, vielleicht schaut ja mal einer von den Profis noch rein.
Gruß Werner

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige