Hallo Michael,
hier noch einmal der komplette Code der UF mit einigen Verbesserungen und der Textersetzung per SVERWEIS(
Application.VLookup) im Tabellenblatt Zuordnungen(Codename
LookupTable). Wird da nichts gefunden, wird die erste Zeile der jeweiligen Liste genommen.
Solllten es mehr als 8 Abschnitte geben, musst Du entsprechend mehr Register hinzufügen. Überschüssige werden ja dann ausgeblendet.
Dialog ufRegisterkartenOption Explicit
Private Sub CommandButton1_Click()
'ausgewählte Zeilen werden gelöscht
Dim i As Long
Dim varKategorie As Variant
With ListBox1
varKategorie = Range(.Tag).Cells(1).Offset(, -1).Value
For i = .ListCount - 1 To 0 Step -1
If .Selected(i) Then
Range(.Tag).Rows(i + 1).EntireRow.Delete
.RemoveItem i
If i = 0 Then
If .ListCount = 0 Then
Range(.Tag).Cells(1).EntireRow.Delete
Else
Range(.Tag).Cells(1).Offset(, -1).Value = varKategorie
End If
End If
End If
Next i
End With
TabStrip1_Change
End Sub
Private Sub CommandButton2_Click()
'TabOrientation ändern
TabStrip1.TabOrientation = (TabStrip1.TabOrientation + 1) Mod 4
End Sub
Private Sub CommandButton3_Click()
'TabStrip-Style ändern
TabStrip1.Style = (TabStrip1.Style + 1) Mod 3
End Sub
Private Sub TabStrip1_Change()
Dim i As Long, j As Long
Dim rngB As Range, rngL As Range
Set rngL = Range(Cells(10, 1), Cells(Rows.Count, 2).End(xlUp))
If rngL.Row < 10 Then
MsgBox "Keine Zellen gefunden.", vbInformation
Exit Sub
End If
If rngL.Columns(2).Cells.Count > 1 Then
Set rngB = rngL.Columns(2).SpecialCells(xlCellTypeConstants)
Else
Set rngB = rngL.Columns(2)
End If
If TabStrip1.Value < rngB.Areas.Count Then
If rngB.Areas(TabStrip1.Value + 1).Rows.Count > 1 Then
ListBox1.List = rngB.Areas(TabStrip1.Value + 1).Value
Else
ListBox1.Clear
ListBox1.AddItem rngB.Areas(TabStrip1.Value + 1).Cells(1).Value
End If
ListBox1.Tag = rngB.Areas(TabStrip1.Value + 1).Address
End If
For i = 1 To rngB.Areas.Count
If i <= TabStrip1.Tabs.Count Then
TabStrip1.Tabs(i - 1).Caption = MyLookup(rngB.Areas(i).Cells(1).Offset(0, -1).Value)
If TabStrip1.Tabs(i - 1).Caption = "" Then
TabStrip1.Tabs(i - 1).Caption = rngB.Areas(i).Cells(1).Value
End If
End If
Next i
For j = TabStrip1.Tabs.Count - 1 To i - 1 Step -1
TabStrip1.Tabs(j).Visible = False
Next j
End Sub
Private Sub UserForm_Initialize()
ActiveSheet.Copy After:=ActiveSheet
TabStrip1_Change
End Sub
Private Function MyLookup(Suchwert As Variant) As Variant
MyLookup = Application.VLookup(Suchwert, LookupTable.Range("A1").CurrentRegion, 2, 0)
If IsError(MyLookup) Then MyLookup = Suchwert
End Function
VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media
Code erstellt und getestet in Office 14 - mit VBAHTML 12.6.0
Zuordnungen | A | B |
1 | Suchspalte | Ergebnisspalte |
2 | Elektrik | el |
3 | Hydraulik | hy |
4 | Kühlwasser | kü |
5 | Mechanik | me |
6 | Pneumatik | pn |
7 | Sicherer Einsatz von Hydraulikschlauchleitungen nach DGUV-Regeln 113-015 Jährliche Schlauchkontrolle durch befähigte Person | DGUV-Regeln |
8 | Sicherheit | si2 |
Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Userform mit Register_Kuwer_2.xlsm (Größe: 53,18 KB / Downloads: 12)
Gruß Uwe