ich habe erst vor kurzem angefangen, mich mit Excel VBA zu beschäftigen.
***************************************************************************************************************
Zu beginn schon mal meine Frage:
>>>Wie kann ich Daten von einer Userform in ein Tabellenblatt nach Datum sortiert einfügen lassen?
********************************************************************************************************************
Folgende Daten werden in Userform erfasst: Datum, Beschreibung, Betrag, Beleg-/Rechn.-Nr.
Diese sollen nach drücken des "Eingabe Buchen"-Button in das Tabellenblatt "Datentabelle" eingefügt werden. NACH DATUM SORTIERT
Vorab. Ich suche jetzt schon seit Wochen in allen Foren... Habe einige Lösungsansätze gefunden. Leider bin ich bis jetzt nicht auf die Lösung gekommen und hoffe, dass mir jemand von euch Profis weiterhelfen kann. Hab mir auch viele Videos angesehen. Sogar auf Englischen Foren. Ich bekomme es nicht so hin, wie ich es haben will.
Ich bin gerade dabei, mir ein für mich individuelles Haushaltsbuch selber zu programmieren.
Hier werden sämtliche Einnahmen und Ausgaben erfasst von:
Ich
Frau
Kind1
Kind2
Auto1
Auto2
Haus
zusätzlich möchte ich auch sämtliche Zählerstände erfassen. (Strom, Wasser, PV.....)
IST-Situation
Ich habe mir diverse Userform erstellt für die Erfassung der oben genannten Einnahmen, Ausgaben, Zählerstände....
Die eingegebenen Daten werden aktuell autom. in eine Tabelle eingefügt.
Momentan wird die neue Eingabe über Userform durch drücken des "Eingabe Buchen"-Button in die erste leere Zeile der "Datentabelle" eingetragen. Das funktioniert wunderbar.
Aufbau der Tabelle: ("Datentabelle")
Spalte A: Datum
Spalte B: Beschreibung
Spalte C: Beleg-/ Rechn.-Nr.:
Egal ob Einnahmen, Ausgaben oder sonstiges. Die ersten 3 Spalten werden somit immer befüllt mit Datum, Beschreibung, Beleg-/Rechn.-Nr... ..
Die Spalte für Betrag ist individuell. Je nach dem, welche Einnahmen oder Ausgaben erfasst werden.
Vereinfacht gesagt: Für jede Ausgabenart, Einnahmenart, usw. gibt es eine eigene Spalte, wo der Betrag autom. eingefügt wird.
Im u.g. Beispiel für "Ausgaben Nahrung Ich" wird der Betrag in Spalte BL eingetragen. Ich bezeichne diese Spalte im VBA mit 64. d.h. die 64e Spalte
Inhalt/Aufbau der Userform:
# Eingabefeld für Datum,
# Beschreibung (d.h. z.B. Ausgaben für Nahrung...),
# Betrag und Beleg-/Rechn.-Nummer,
# "Eingabe Buchen"-Button
Die Daten werden in der Userform in folgende TextBoxen eingegeben:
Datum: TextBox2
Beschreibung: TextBox1
Beleg-/Rechn.-Nr.: TextBox3
Betrag: TextBox4
"Eingabe Buchen"-Button: CommandButton1
Mithilfe von Initialize lasse ich je nach Kostenart einen vordefinierten Text in die Eingabefelder der Userform schreiben.
siehe Beispiel für meine Ausgaben Nahrung:
"Ich Ausgaben Nahrung" wird nach dem Buchen autom. in "Datentabelle" übertragen
Datum wird immer das aktuelle Datum übertragen,
Natürlich kann ich so trotzdem in der Userform ein anderes Datum, eine andere Beschreibung eingeben
Hier der Code, mit dem ich einen vordefinierten Text je nach Kostenart in die TextBoxen der Userform schreiben lasse:
Über dem Code Fenster ist ausgewählt: *Userform *Initialize
Private Sub UserForm_Initialize()
'Einträge für die Schaltflächen
'Box Datum
UFAusIchNahrungEssenX.TextBox2.Value = Date
'Box Beschreibung
UFAusIchNahrungEssenX.TextBox1.Value = "Ich Ausgaben Nahrung"
'Belegnummer
UFAusIchNahrungEssenX.TextBox3.Value = "eingeben"
'Betrag
UFAusIchNahrungEssenX.TextBox4.Value = "0,00"
End Sub
------------------------------------------------------------------------------------------------------
Datenbereich: Der Datenbereich von dem Tabellenblatt "Datentabelle" ist dynamisch. Das habe ich hinterlegt.
---------------------------------------------------------------------------------------------------------------------
Anbei mein aktueller Code der Userform, mit dessen Hilfe die in der Userform erfassten Daten autom. in die erste leere Zeile des Tabellenblatts "Datentabelle" einfügt werden:
###################################################################################
Über dem Code Fenster ist ausgewählt: *CommandButton1 *Click
'Eingaben der Schaltflächen in die Datentabelle übernehmen
Dim last As Integer
last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
'Datum
ActiveSheet.Cells(last, 1).Value = CDate(UFAusIchNahrungEssenX.TextBox2.Value)
''Beschreibung
ActiveSheet.Cells(last, 2).Value = UFAusIchNahrungEssenX.TextBox1.Text
''Betrag
ActiveSheet.Cells(last, 64).Value = CCur(UFAusIchNahrungEssenX.TextBox4.Value)
'Belegnummer
ActiveSheet.Cells(last, 3).Value = UFAusIchNahrungEssenX.TextBox3.Text
'Fenster Schließen
Unload UFAusIchNahrungEssenX
Unload UFAusIchNahrung
Unload UFAusgabenIch
Unload UserFormAusgaben
End Sub
#################################################################################
>>Wie ändere ich diesen Code ab, dass meine Userform Eingaben nach Datum sortiert in die Tabelle "Datentabelle" eingefügt werden.
Ich hoffe, dass irgendjemand dies liest und die Lösung hat.
Wäre Super
Danke
Gruß
Thomas