ich möchte mir gerne ein Excel-Haushaltsbuch erstellen. Dieses besteht aus einer Userform, in der die Daten (Ein- und Ausgaben, Datum, Wert...) erfasst werden könne und in eine Datenbank (Tabellenblatt) geschrieben werden. Die Userform besteht dabei auch aus drei Dropdown-Listen.
1. Kontenklasse (Ein- o. Ausnahme)
2. Kontengruppe (z.B. Versicherungen)
3. Konto (Huk, TK, DAK...)
Die Comboboxen greifen jeweils auf Tabellen in einem Tabellenblatt zu und zeigen in Abhängigkeit von der Auswahl in der vorherigen Combobox die Möglichkeiten. Damit möchte ich sicherstellen, dass zB. bei Auswahl von Einnahmen, keine Ausgaben verbucht werden können...
Die Problematik ist nun, dass jede neue angelegte Tabelle (bspw. Konto) neu in den VBA-Code geschrieben werden muss. Gibt es eine Möglichkeit, dass die dritte Combobox "Konto" selbst nach einer Tabelle mit dem Namen aus der Combobox 2 sucht und den Inhalt zur Auswahl bereitstellt?
Folgenden VBA-Code habe ich geschrieben:
Private Sub cmd_Ende_Click()
'schließen des Formular
Unload frm_Maske
End Sub
Private Sub cmd_Hinzufügen_Click()
'Fügt eingetragene Werte ins Tabellenblatt
Dim intErsteLeereZeile As Integer
intErsteLeereZeile = Worksheets("Datenbank").Cells(Rows.Count, 2).End(xlUp).Row + 1
Worksheets("Datenbank").Cells(intErsteLeereZeile, 2).Value = CDate(Me.txt_Datum.Value)
Worksheets("Datenbank").Cells(intErsteLeereZeile, 3).Value = Me.CB_KK
Worksheets("Datenbank").Cells(intErsteLeereZeile, 4).Value = Me.CB_KG
Worksheets("Datenbank").Cells(intErsteLeereZeile, 5).Value = Me.CB_KT
Worksheets("Datenbank").Cells(intErsteLeereZeile, 6).Value = CCur(Me.txt_Wert)
Worksheets("Datenbank").Cells(intErsteLeereZeile, 7).Value = Me.TextBox1
Worksheets("Datenbank").Cells(intErsteLeereZeile, 8).Value = Me.txt_Notiz
End Sub
Private Sub CB_KK_Change()
Select Case CB_KK.Value
Case Is = "A(f)"
CB_KG.RowSource = "CB_KK_Ausgaben_f"
Case Is = "A(v)"
CB_KG.RowSource = "CB_KK_Ausgaben_v"
Case Is = "E(f)"
CB_KG.RowSource = "CB_KK_Einnahmen_f"
Case Is = "E(v)"
CB_KG.RowSource = "CB_KK_Einnahmen_v"
End Select
End Sub
Private Sub CB_KG_Change()
Select Case CB_KG.Value
Case Is = "Gehalt"
CB_KT.RowSource = "KTGehalt"
Case Is = "Versicherungen"
CB_KT.RowSource = "KTVersicherung"
Case Is = "Auto"
CB_KT.RowSource = "KTAuto"
Case Is = "Verträge & Abos"
CB_KT.RowSource = "KTVerträge"
Case Is = "Av_Sonstiges"
CB_KT.RowSource = "KTGeschenke"
Case Is = "Ef_Sonstiges"
CB_KT.RowSource = "KTEvSonstiges"
Case Is = "Nebenjob"
CB_KT.RowSource = "KTNebenjob"
Case Is = "Af_Sonstiges"
CB_KT.RowSource = "KTAfSonstiges"
End Select
End Sub
Leider funktioniert der Upload eines Screenshots der Userform nicht, obwohl dieser nur 12 KB groß ist und ein JPG ist. Vielen Dank für eure Hilfe und viele Grüße
Marc