Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1764to1768
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

Makro Spalten ausblenden

Makro Spalten ausblenden
10.06.2020 13:59:49
Lukas
Hallo,
im Moment habe ich dieses Makro zur Filterung und Ausblenden von Spalten
Sub Filtern_Spalten_Ausblenden()
Dim loLetzteS As Long, i As Long, raAusblenden As Range
With Worksheets("Sammeländerung 2")
If .Range("L16") = "" Then
If .Range("D21").AutoFilter Then .AutoFilterMode = False
.Columns.Hidden = False
Exit Sub
End If
Application.ScreenUpdating = False
If IsNumeric(.Range("L16")) Then
If WorksheetFunction.CountIf(.Columns("D"), .Range("L16")) > 0 Then
.Columns.Hidden = False
.Range("D21").Select
.ListObjects("Tabelle10").Range.AutoFilter Field:=1, Criteria1:=.Range("L16")
loLetzteS = .Cells(21, .Columns.Count).End(xlToLeft).Column
For i = 23 To loLetzteS
If WorksheetFunction.Aggregate(9, 7, .Columns(i)) = 0 Then
If raAusblenden Is Nothing Then
Set raAusblenden = .Cells(1, i)
Else
Set raAusblenden = Union(raAusblenden, .Cells(1, i))
End If
End If
Next i
If Not raAusblenden Is Nothing Then
Set raAusblenden = Union(raAusblenden, .Range(.Cells(1, "B"), .Cells(1, "F")))
raAusblenden.EntireColumn.Hidden = True
End If
Else
MsgBox "Fehler: Den Filterbegriff " & .Range("L16") & " gibt es in Spalte C nicht."
End If
Else
MsgBox "Fehler: Der Filterbegriff ist nicht numerisch."
End If
End With
Set raAusblenden = Nothing
End Sub

https://www.herber.de/bbs/user/138188.xlsm
Mein Problem ist allerdings noch, dass zwar bei der Filterung von Zahlen(1-4) in der Zelle L16 die Spalten B-F ausgeblendet werden. Wenn aber keine Zahl in der Zelle L16 drin steht, werden die Spalten B-F angezeigt, wenn eine Filterung durchgenommen wird. Ich filter nach nichts, da ich wieder eine ganze Übersicht haben möchte.
Viele Grüße
Lukas

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro Spalten ausblenden
10.06.2020 14:16:04
Martin
Hallo Lukas,
mit folgendem Makro werden die Spalten B bis F prinzipiell ausgeblendet:
Sub Filtern_Spalten_Ausblenden()
Dim loLetzteS As Long, i As Long, raAusblenden As Range
With Worksheets("Sammeländerung 2")
If .Range("L16") = "" Then
If .Range("D21").AutoFilter Then .AutoFilterMode = False
.Columns.Hidden = False
Exit Sub
End If
Application.ScreenUpdating = False
If IsNumeric(.Range("L16")) Then
If WorksheetFunction.CountIf(.Columns("D"), .Range("L16")) > 0 Then
.Columns.Hidden = False
.Range("D21").Select
.ListObjects("Tabelle10").Range.AutoFilter Field:=1, Criteria1:=.Range("L16")
loLetzteS = .Cells(21, .Columns.Count).End(xlToLeft).Column
For i = 23 To loLetzteS
If WorksheetFunction.Aggregate(9, 7, .Columns(i)) = 0 Then
If raAusblenden Is Nothing Then
Set raAusblenden = .Cells(1, i)
Else
Set raAusblenden = Union(raAusblenden, .Cells(1, i))
End If
End If
Next i
If Not raAusblenden Is Nothing Then
raAusblenden.EntireColumn.Hidden = True
End If
Else
MsgBox "Fehler: Den Filterbegriff " & .Range("L16") & " gibt es in Spalte C nicht."
End If
Else
MsgBox "Fehler: Der Filterbegriff ist nicht numerisch."
End If
.Columns(2).Resize(, 5).Hidden = True
End With
Set raAusblenden = Nothing
End Sub
Viele Grüße
Martin
Anzeige
AW: Makro Spalten ausblenden
10.06.2020 14:18:38
Lukas
Das ist perfekt!!!!
Lieben Dank!!
AW: Makro Spalten ausblenden
10.06.2020 14:47:11
Lukas
Hallo Martin,
eben hatte es noch geklappt, aber irgendwie jetzt nicht mehr. Er blendet sie nicht direkt komplett aus. Kannst du mir da nochmal helfen? Es ist wie am Anfang.
https://www.herber.de/bbs/user/138191.xlsm
Viele Grüße,
Lukas
AW: Makro Spalten ausblenden
10.06.2020 16:27:28
Martin
Hallo Lukas,
also ich habe es getestet und konnte jetzt keinen Fehler feststellen. Wenn du mit "Er blendet sie nicht direkt komplett aus." meinst, dass bei Eingabe eines nicht vorhandenen Suchbegriffs die Spalten B bis F bereits vor Erscheinen der MsgBox ausgeblenet werden sollen, dann musst du den Code so abändern:
Sub Filtern_Spalten_Ausblenden()
Dim loLetzteS As Long, i As Long, raAusblenden As Range
With Worksheets("Sammeländerung 2")
If .Range("L16") = "" Then
If .Range("D21").AutoFilter Then .AutoFilterMode = False
.Columns.Hidden = False
Exit Sub
End If
If IsNumeric(.Range("L16")) Then
If WorksheetFunction.CountIf(.Columns("D"), .Range("L16")) > 0 Then
.Columns.Hidden = False
.Range("D21").Select
.ListObjects("Tabelle10").Range.AutoFilter Field:=1, Criteria1:=.Range("L16")
loLetzteS = .Cells(21, .Columns.Count).End(xlToLeft).Column
For i = 23 To loLetzteS
If WorksheetFunction.Aggregate(9, 7, .Columns(i)) = 0 Then
If raAusblenden Is Nothing Then
Set raAusblenden = .Columns(i)
Else
Set raAusblenden = Union(raAusblenden, .Columns(i))
End If
End If
Next i
If Not raAusblenden Is Nothing Then
Union(raAusblenden, .Columns(2).Resize(, 5)).Hidden = True
End If
Else
.Columns(2).Resize(, 5).Hidden = True
MsgBox "Fehler: Den Filterbegriff " & .Range("L16") & " gibt es in Spalte C  _
nicht."
End If
Else
.Columns(2).Resize(, 5).Hidden = True
MsgBox "Fehler: Der Filterbegriff ist nicht numerisch."
End If
End With
Set raAusblenden = Nothing
End Sub
Oder sollen die Spalten auch ausgeblendet werden, wenn die Zelle L16 leer ist?
Viele Grüße
Martin
Anzeige
AW: Makro Spalten ausblenden
11.06.2020 13:09:12
Lukas
Hallo Martin,
ja die Spalten sollten auch ausgeblendet werden, wenn die Zelle L16 leer ist.
Könntest du das schaffen?
Viele Grüße,
Lukas
AW: Makro Spalten ausblenden
11.06.2020 14:04:12
Martin
Hallo Lukas,
im Prinzip der der Code recht einfach und dein Anliegen nicht kompliziert. Das Problem besteht häufig in der Kommunikation zwischen Fragesteller und Helfer. Fragesteller neigen dazu ihr Anliegen nicht verständlich genug darzustellen und Helfer (zumindest ich) neigen gerne mal dazu die Aufgabenstellung schnell zu überfliegen und dabei Details zu überlesen ;-)
Jetzt sollten wir es hoffentlich geschafft haben ;-)
Sub Filtern_Spalten_Ausblenden()
Dim loLetzteS As Long, i As Long, raAusblenden As Range
With Worksheets("Sammeländerung 2")
If .Range("L16") = "" Then
If .Range("D21").AutoFilter Then .AutoFilterMode = False
.Columns.Hidden = False
.Columns(2).Resize(, 5).Hidden = True
ElseIf IsNumeric(.Range("L16")) Then
If WorksheetFunction.CountIf(.Columns("D"), .Range("L16")) > 0 Then
.Columns.Hidden = False
.Range("D21").Select
.ListObjects("Tabelle10").Range.AutoFilter Field:=1, Criteria1:=.Range("L16")
loLetzteS = .Cells(21, .Columns.Count).End(xlToLeft).Column
For i = 23 To loLetzteS
If WorksheetFunction.Aggregate(9, 7, .Columns(i)) = 0 Then
If raAusblenden Is Nothing Then
Set raAusblenden = .Columns(i)
Else
Set raAusblenden = Union(raAusblenden, .Columns(i))
End If
End If
Next i
If Not raAusblenden Is Nothing Then
Union(raAusblenden, .Columns(2).Resize(, 5)).Hidden = True
Set raAusblenden = Nothing
End If
Else
.Columns(2).Resize(, 5).Hidden = True
MsgBox "Fehler: Den Filterbegriff " & .Range("L16") & " gibt es in Spalte C  _
nicht."
End If
Else
.Columns(2).Resize(, 5).Hidden = True
MsgBox "Fehler: Der Filterbegriff ist nicht numerisch."
End If
End With
End Sub
Viele Grüße
Martin
Anzeige
AW: Makro Spalten ausblenden
11.06.2020 14:46:35
Lukas
Hallo Martin,
ja das stimmt, aber dafür kann man ja alles klären ;)
Übrigens habe ich dein Makro eingefügt, was allerdings bei Union(raAusblenden, .Columns(2).Resize(, 5)).Hidden = True einen Fehler eingetreten ist.
Ich habe es dadurch ersetzt:
If Not raAusblenden Is Nothing Then
Set raAusblenden = Union(raAusblenden, .Range(.Cells(1, "B"), .Cells(1, "F")))
raAusblenden.EntireColumn.Hidden = True
End If
Jetzt funktioniert es einwandfrei!! Vielen lieben Dank!!!!
Wünsche dir noch einen schönen Feiertag!!
Lukas
AW: Makro Spalten ausblenden
10.06.2020 15:13:32
Lukas
Funktioniert leider doch nicht.
Schau mal meinen Post von 14:47 Uhr.
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige