Hallo Zusammen,
ich bin ganz neu im Forum und neu in VBA :)! Ich möchte gerne für mich ein Haushaltsbuch erstellen. Die Idee ist über eine Eingabemaske Daten zu erfassen, in eine ,Datenbank-Tablle' zu schreiben und diese anschließend in Pivot-Tabellen aufzubereiten. Diese Datenbank ist der einzige Ort an dem die Daten geschrieben werden, die restlichen Tabellenblätter dienen nur zur Auswertung.
Bisher bin ich soweit gekommen und Code:
-------------------------------------------------------------------
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 Long
intErsteLeereZeile = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row + 1
ActiveSheet.Cells(intErsteLeereZeile, 2).Value = CDate(Me.txt_Datum.Value)
ActiveSheet.Cells(intErsteLeereZeile, 3).Value = Me.ComB_Typ
ActiveSheet.Cells(intErsteLeereZeile, 4).Value = Me.ComB_Konto
ActiveSheet.Cells(intErsteLeereZeile, 5).Value = Me.ComB_Kategorie
ActiveSheet.Cells(intErsteLeereZeile, 6).Value = CCur(Me.txt_Wert.Value)
ActiveSheet.Cells(intErsteLeereZeile, 7).Value = Me.txt_Notiz
End Sub
Private Sub UserForm_Initialize()
'Werte beim Aufruf initialisieren
Dim rngTyp As Range
Dim rngKonto As Range
Dim rngKategorie As Range
With Me
.txt_Datum.Value = Date
End With
For Each rngTyp In Range("Typ")
With Me.ComB_Typ
.AddItem rngTyp.Value
.List(.ListCount - 1, 1) = rngTyp.Offset(0, 1).Value
End With
Next rngTyp
For Each rngKonto In Range("Konto")
With Me.ComB_Konto
.AddItem rngKonto.Value
.List(.ListCount - 1, 1) = rngKonto.Offset(0, 1).Value
End With
Next rngKonto
For Each rngKategorie In Range("Kategorie")
With Me.ComB_Kategorie
.AddItem rngKategorie.Value
.List(.ListCount - 1, 1) = rngKategorie.Offset(0, 1).Value
End With
Next rngKategorie
End Sub
-------------------------------------------------------------------
Es funktioniert auch bisher ganz gut jedoch möchte ich nun die Comboboxen miteinander verknüpfen und die Auswahl in der nächsten Combobox begrenzen. Dazu habe ich je extra Tabellen angelegt, die entsprechende Werte enthalten, als Beispiel:
Tabelle Typ: Einnahmen, Ausgaben...
Tabelle Einnahmen: Gehalt, Nebenjob, Zinsen...
Tabelle Gehalt: Unternehmen 1, Unternehmen 2...
Tabelle Zinsen: Bank 1, Bank 2...
Zwei Beispiele:
1. Auswahl Typ: Einnahmen -> Auswahl Konto: Gehalt -> Kategorie: Unternehmen A
2. Auswahl Typ: Einnahmen -> Auswahl Konto: Zinsen -> Kategorie: Bank 1
Und hier bin ich mit meinem Latein bzw. VBA am Ende und komme auch nicht weiter mit youtube... Wie verknüpfe ich die Boxen, dass ich jeweils auf unterschiedliche Tabellen zugreifen kann, deren Inhalt beliebig erweitern/reduzieren kann und es trotzdem dynamisch in die Datenbank fortschreiben kann?
Vielen Dank im Voraus für eure Hilfe.
Viele Grüße
Marc
*Topic verschoben*
ich bin ganz neu im Forum und neu in VBA :)! Ich möchte gerne für mich ein Haushaltsbuch erstellen. Die Idee ist über eine Eingabemaske Daten zu erfassen, in eine ,Datenbank-Tablle' zu schreiben und diese anschließend in Pivot-Tabellen aufzubereiten. Diese Datenbank ist der einzige Ort an dem die Daten geschrieben werden, die restlichen Tabellenblätter dienen nur zur Auswertung.
Bisher bin ich soweit gekommen und Code:
-------------------------------------------------------------------
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 Long
intErsteLeereZeile = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row + 1
ActiveSheet.Cells(intErsteLeereZeile, 2).Value = CDate(Me.txt_Datum.Value)
ActiveSheet.Cells(intErsteLeereZeile, 3).Value = Me.ComB_Typ
ActiveSheet.Cells(intErsteLeereZeile, 4).Value = Me.ComB_Konto
ActiveSheet.Cells(intErsteLeereZeile, 5).Value = Me.ComB_Kategorie
ActiveSheet.Cells(intErsteLeereZeile, 6).Value = CCur(Me.txt_Wert.Value)
ActiveSheet.Cells(intErsteLeereZeile, 7).Value = Me.txt_Notiz
End Sub
Private Sub UserForm_Initialize()
'Werte beim Aufruf initialisieren
Dim rngTyp As Range
Dim rngKonto As Range
Dim rngKategorie As Range
With Me
.txt_Datum.Value = Date
End With
For Each rngTyp In Range("Typ")
With Me.ComB_Typ
.AddItem rngTyp.Value
.List(.ListCount - 1, 1) = rngTyp.Offset(0, 1).Value
End With
Next rngTyp
For Each rngKonto In Range("Konto")
With Me.ComB_Konto
.AddItem rngKonto.Value
.List(.ListCount - 1, 1) = rngKonto.Offset(0, 1).Value
End With
Next rngKonto
For Each rngKategorie In Range("Kategorie")
With Me.ComB_Kategorie
.AddItem rngKategorie.Value
.List(.ListCount - 1, 1) = rngKategorie.Offset(0, 1).Value
End With
Next rngKategorie
End Sub
-------------------------------------------------------------------
Es funktioniert auch bisher ganz gut jedoch möchte ich nun die Comboboxen miteinander verknüpfen und die Auswahl in der nächsten Combobox begrenzen. Dazu habe ich je extra Tabellen angelegt, die entsprechende Werte enthalten, als Beispiel:
Tabelle Typ: Einnahmen, Ausgaben...
Tabelle Einnahmen: Gehalt, Nebenjob, Zinsen...
Tabelle Gehalt: Unternehmen 1, Unternehmen 2...
Tabelle Zinsen: Bank 1, Bank 2...
Zwei Beispiele:
1. Auswahl Typ: Einnahmen -> Auswahl Konto: Gehalt -> Kategorie: Unternehmen A
2. Auswahl Typ: Einnahmen -> Auswahl Konto: Zinsen -> Kategorie: Bank 1
Und hier bin ich mit meinem Latein bzw. VBA am Ende und komme auch nicht weiter mit youtube... Wie verknüpfe ich die Boxen, dass ich jeweils auf unterschiedliche Tabellen zugreifen kann, deren Inhalt beliebig erweitern/reduzieren kann und es trotzdem dynamisch in die Datenbank fortschreiben kann?
Vielen Dank im Voraus für eure Hilfe.
Viele Grüße
Marc
*Topic verschoben*
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()