Spalten einer Tabelle ein-/ausblenden
Inhalt
- Spalten einer intelligenten Tabelle mithilfe einer UserForm ein- und ausblenden
- Intelligente Tabelle initialisieren
- UserForm designen: Hintergrundfarbe festlegen, Überschrift entfernen
- Eigenschaftenfenster aktivieren
- Toolsammlung/Werkzeugsammlung aktivieren
- Label/Beschriftungsfeld einfügen: Schriftart und -farbe verändern
- ListBox/Listenfeld einfügen und designen
- Überschriften einer intelligenten Tabelle in ListBox einfügen
- Obejekte und Events/Ereignisse in UserForms: UserForm_Initialize, ListBox1_Click, Image1_MouseDown
- Intelligente Tabelle umbenennen
- For Each Schleife
- ListBox/Listenfeld Kontrollkästchen einfügen und MultiSelect aktivieren
- Spalten-Sichtbarkeit in ListBox darstellen
- Spaltenzahl eines ListBox-Elements in einer intelligenten Tabelle auslesen
- If-Anweisung
- Sichtbarkeit einer Spalte auslesen und verändern
- ListBox-Element selektieren/auswählen
- Laufvariable
- Objekte (Bilder, Icons, Textfelder) nicht mehr verschieben beim Ausblenden von Spalten/Zeilen
- Schleife über alle Elemente einer ListBox
- CStr(): Variant zu einem String machen
- ListBox-Element auslesen
- UserForm Code optimieren
- Modulweite Variable dimensionieren und nutzen
- UserForm aus Excel heraus mit einem Button öffnen
- Alle Spalten einer intelligenten Tabelle ein- und ausblenden
- Eigene UserForm-Buttons designen
- Screenshots machen mit dem Snipping Tool
- Bild in eine UserForm einfügen
- Bildrahmen in UserForm entfernen
- Cursor über Bild in einer UserForm verändern
- Subroutine entwickeln
- Code optimieren 2: Application.Screenupdating = False
Code UserForm
Public EnableEvents As Boolean
Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Dim i As Long
Application.ScreenUpdating = False
EnableEvents = False
'ListBox alle Elemente selektieren
For i = 0 To ListBox1.ListCount - 1
ListBox1.Selected(i) = True
Next i
Call Sichtbarkeit_setzen
Application.ScreenUpdating = True
EnableEvents = True
End Sub
Private Sub Image2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Application.ScreenUpdating = False
EnableEvents = False
Dim i As Long
'ListBox alle Elemente deselektieren
For i = 0 To ListBox1.ListCount - 1
ListBox1.Selected(i) = False
Next i
Call Sichtbarkeit_setzen
Application.ScreenUpdating = True
EnableEvents = True
End Sub
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("Auftraege").HeaderRowRange
ListBox1.AddItem header
'Sichtbarkeit der Spalten in ListBox darstellen
Spaltenzahl = Auftraege.ListObjects("Auftraege").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
Private Sub ListBox1_Change()
If EnableEvents = True Then
Call Sichtbarkeit_setzen
End If
End Sub
Private Sub Sichtbarkeit_setzen()
Dim i As Long
Application.ScreenUpdating = False
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
Columns(Auftraege.ListObjects("Auftraege").ListColumns(ListBox1.List(i)).Range.Column).EntireColumn.Hidden = False
Else
Columns(Auftraege.ListObjects("Auftraege").ListColumns(ListBox1.List(i)).Range.Column).EntireColumn.Hidden = True
End If
Next i
Application.ScreenUpdating = True
'Bereitgestellt von VBATrainer: www.vbatrainer.de
End Sub
Code Modul
Sub UfHideUnhideLaden()
ufHideUnhide.Show
End Sub
Um VBA zu lernen und besser zu verstehen, empfehle ich dir mein kostenloses Grundlagentraining, in dem ich dir die ersten Schritt in Excel-VBA zeige.