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

Laufzeitfehler 438

Forumthread: Laufzeitfehler 438

Laufzeitfehler 438
23.10.2022 16:20:42
RIchard
Hallo Zusammen
Ich hab folgenden Code in einem Forum gefunden, welcher mir die Spalten Ein/Ausblendet. Der Code ist für formatierte Tabellen geschrieben. Ich nehme an, dass dies der Grund ist, wesshalb der bei mir nicht läuft. Die ListenObjekte machen mir Probleme, weil ich meinem Code ohne formatierte Tabellen / Objekte verwenden möchte. Die Objekte "Auftraege" & "tblAuftraege" möchte ich über Bereiche definieren.
---Ursprünglicher Code----

Private Sub UserForm_Initialize()
Dim header As Variant
Dim i As Long
Dim Spaltenzahl As Long
EnableEvents = False
'Listbox mit Tabellenheader füllen
For Each header In Auftraege.ListObjects("tblAuftraege").HeaderRowRange
ListBox1.AddItem header
'Sichtbarkeit der Spalten in ListBox darstellen
Spaltenzahl = Auftraege.ListObjects("tblAuftraege").ListColumns(CStr(header)).Range.Column
If Columns(Spaltenzahl).EntireColumn.Hidden = False Then
ListBox1.Selected(i) = True
End If
i = i + 1
Next header
EnableEvents = True
End Sub
---Mein Code der leider nicht funktioniert-----

Private Sub UserForm_Initialize()
Dim header As Variant
Dim i As Long
Dim Spaltenzahl As Long
EnableEvents = False
'Listbox mit Tabellenheader füllen
For Each header In Range(Cells(14, 1), Cells(14, 74))
ListBox1.AddItem header
'Sichtbarkeit der Spalten in ListBox darstellen
Spaltenzahl = Overview.ListObjects(Range(Cells(14, 1), Cells(300, 74))).ListColumns(CStr(header)).Range.Column
If Columns(Spaltenzahl).EntireColumn.Hidden = False Then
ListBox1.Selected(i) = True
End If
i = i + 1
Next header
EnableEvents = True
End Sub
------------
Ich hoffe ihr könnt mir dabei helfen.
Liebe Gruess
Richi
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 438
23.10.2022 16:34:21
Nepumuk
Hallo Richi,
teste mal:

Private Sub UserForm_Initialize()
Dim objCell As Range
Dim lngIndex As Long
With ListBox1
'Listbox mit TabellenobjCell füllen
For Each objCell In Range(Cells(14, 1), Cells(14, 74))
.AddItem objCell.Text
.Selected(lngIndex) = Not objCell.EntireColumn.Hidden
lngIndex = lngIndex + 1
Next
End With
End Sub
Gruß
Nepumuk
Anzeige
AW: Laufzeitfehler 438
23.10.2022 17:53:59
RIchard
Hallo Nepumuk
Funktioniert einwandfrei. Besten Dank.
Ist mir etwas peinlich, hab mir erhofft daraus den zweiten Step ableiten zu können. Doch ich raffe nicht, wie ich den Range auch in diesen Code integrieren kann
--------------------------------------

Private Sub Sichtbarkeit_setzen()
Dim objCell As Range
Dim lngIndex As Long
Dim i As Long
Application.ScreenUpdating = False
With ListBox1
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
Columns(Range(Cells(14, 1), Cells(14, 74)).ListColumns(ListBox1.List(i)).Range.Column).EntireColumn.Hidden = False
Else
Columns(Range(Cells(14, 1), Cells(14, 74)).ListColumns(ListBox1.List(i)).Range.Column).EntireColumn.Hidden = True
End If
Next i
End With
Application.ScreenUpdating = True
End Sub
------------------------
Wenn du mir hierbei noch helfen könntest.
Liebe Gruess
Richi
Anzeige
AW: Laufzeitfehler 438
23.10.2022 18:45:35
Nepumuk
Hallo Richi,
teste mal:

Private Sub Sichtbarkeit_setzen()
Dim lngIndex As Long
Application.ScreenUpdating = False
With ListBox1
For lngIndex = 0 To .ListCount - 1
Columns(lngIndex + 1).Hidden = Not .Selected(lngIndex)
Next
End With
Application.ScreenUpdating = True
End Sub
Gruß
Nepumuk
Anzeige
;

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