in einem älteren Beitrag habe ich die folgende Datei gefunden.
https://www.herber.de/bbs/user/50357.xls
Sie enthält eine UF, mit der man bequem Spalten ein- und ausblenden kann. Hier ist der Code dazu:
Option Explicit
Private Sub CommandButton1_Click()
Dim oCntrl As MSForms.Control
On Error Resume Next
Application.ScreenUpdating = False
For Each oCntrl In Me.Controls
If TypeOf oCntrl Is MSForms.CheckBox Then
Sheets("Gesamtliste").Columns(CInt(Mid(oCntrl.Name, 3))).Hidden = Not oCntrl.Value
'Sheets("Gesamtliste").Columns(CInt(Mid(oCntrl.Name, 3)) + 50).Hidden = Not oCntrl.Value
End If
Next
ActiveWindow.ScrollColumn = 3
Application.ScreenUpdating = True
Unload Me
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub CommandButton3_Click()
Dim oCntrl As MSForms.Control
For Each oCntrl In Me.Controls
If TypeOf oCntrl Is MSForms.CheckBox Then
oCntrl.Value = True
End If
Next
End Sub
Private Sub CommandButton4_Click()
Dim oCntrl As MSForms.Control
For Each oCntrl In Me.Controls
If TypeOf oCntrl Is MSForms.CheckBox Then
oCntrl.Value = False
End If
Next
End Sub
Private Sub CommandButton5_Click()
Dim oCntrl As MSForms.Control
For Each oCntrl In Me.Controls
If TypeOf oCntrl Is MSForms.CheckBox Then
oCntrl.Value = Not oCntrl.Value
End If
Next
End Sub
Private Sub UserForm_Activate()
Dim oCB As MSForms.CheckBox
Dim rng As Range
Dim intT As Integer, intL As Integer
intL = 18
For Each rng In Sheets("Gesamtliste").Range("C3:AX3")
Set oCB = Me.Controls.Add("Forms.CheckBox.1")
intT = intT + 20
If intT > 320 Then
intT = 20
intL = intL + 80
End If
With oCB
.Caption = rng.Text
.Top = intT
.Left = intL
.Height = 18
.Width = 60
.Value = Not rng.EntireColumn.Hidden
.Name = "CB" & rng.Column
End With
Next
End Sub
Ich bräuchte jetzt Hilfe, um den Code nach meinen Vorstellungen abzuändern:
1. In der UF sollten alle Spalten angezeigt werden, jeweils 26 Kästchen pro senkrechter Reihe
2. Die Kästchen sollten die normale Spaltenbezeichnung haben, also A dann B dann C usw. bis IV
3. Es sollte noch eine vierte Schaltfläche (zu Alle auswählen; Alle Abwählen; Auswahl umkehren) dazukommen, nämlich Originalauswahl wiederherstellen. Diese Originalauswahl sollte man direkt im Makro definieren können, zB: im Original immer die folgenden Spalten anzeigen: A:A; C:H; K:K; Z:BZ usw.
Besten Dank im voraus,
Servus, Walter