AW: Userform / intelligente Tabelle
22.04.2022 14:22:50
Ruben
Hallo Gerd - das habe ich jetzt versucht - irgendwie komme ich leider nicht weiter
Leider kann ich das Excel nicht hochladen, da es zu Groß ist.
hier nochmals der gesamte Code:
Private Sub ButtonSpeichern_Click()
'Daten ins Tabellenblatt eintragen
Dim tbl As ListObject
Set tbl = Tabelle3.ListObjects(1)
Dim neueZeile As Long
'Zeile ins Tabellchen einfügen.
tbl.ListRows.Add
'Zeile in Variabler speichern
Zeile = tbl.DataBodyRange.Rows.Count
'Daten befüllen
With Tabelle3
tbl.DataBodyRange(Zeile, 1).Value = TextBoxID.Value
tbl.DataBodyRange(Zeile, 2).Value = ComboBoxBetrieb.Value
tbl.DataBodyRange(Zeile, 3).Value = TextBoxSuffix.Value
tbl.DataBodyRange(Zeile, 4).Value = ComboBoxAnrede.Value
tbl.DataBodyRange(Zeile, 5).Value = TextBoxTitel.Value
tbl.DataBodyRange(Zeile, 6).Value = TextBoxFamilienname.Value
tbl.DataBodyRange(Zeile, 7).Value = TextBoxVorname.Value
tbl.DataBodyRange(Zeile, 8).Value = TextBoxName.Value
tbl.DataBodyRange(Zeile, 9).Value = ComboBoxGeschlecht.Value
tbl.DataBodyRange(Zeile, 10).Value = ComboBoxNationalitaet.Value
tbl.DataBodyRange(Zeile, 11).Value = TextBoxPLZ.Value
tbl.DataBodyRange(Zeile, 12).Value = TextBoxORT.Value
tbl.DataBodyRange(Zeile, 13).Value = TextBoxStrasse.Value
tbl.DataBodyRange(Zeile, 14).Value = TextBoxSVNr.Value
tbl.DataBodyRange(Zeile, 15).Value = TextBoxGeburtsdatum.Value
tbl.DataBodyRange(Zeile, 16).Value = ComboBoxFamilienstand.Value
tbl.DataBodyRange(Zeile, 17).Value = TextBoxTelePrivat.Value
tbl.DataBodyRange(Zeile, 18).Value = TextBoxMailPrivat.Value
tbl.DataBodyRange(Zeile, 19).Value = TextBoxBank.Value
tbl.DataBodyRange(Zeile, 20).Value = TextBoxBIC.Value
tbl.DataBodyRange(Zeile, 21).Value = TextBoxIBAN.Value
tbl.DataBodyRange(Zeile, 22).Value = TextBoxEU.Value
tbl.DataBodyRange(Zeile, 23).Value = ComboBoxAufenthaltsstaus.Value
tbl.DataBodyRange(Zeile, 24).Value = TextBoxAufenthaltgueltig.Value
tbl.DataBodyRange(Zeile, 25).Value = TextBoxBschaeftigungsbewilligung.Value
tbl.DataBodyRange(Zeile, 26).Value = TextBoxBeschaeftigunggueltig.Value
tbl.DataBodyRange(Zeile, 27).Value = TextBoxEintritt.Value
tbl.DataBodyRange(Zeile, 28).Value = TextBoxErsteintritt.Value
tbl.DataBodyRange(Zeile, 29).Value = TextBoxProbezeit.Value
tbl.DataBodyRange(Zeile, 30).Value = TextBoxBefristung.Value
tbl.DataBodyRange(Zeile, 31).Value = TextBoxAustritt.Value
tbl.DataBodyRange(Zeile, 32).Value = ComboBoxAustrittsgrund.Value
tbl.DataBodyRange(Zeile, 33).Value = ComboBoxFrage.Value
tbl.DataBodyRange(Zeile, 34).Value = ComboBoxTaetigkeit.Value
tbl.DataBodyRange(Zeile, 35).Value = ComboBoxKV.Value
tbl.DataBodyRange(Zeile, 36).Value = ComboBoxLohngruppe.Value
tbl.DataBodyRange(Zeile, 37).Value = ComboBoxVerwendungsgruppe.Value
tbl.DataBodyRange(Zeile, 38).Value = ComboBoxBeschaeftigungsjahr.Value
tbl.DataBodyRange(Zeile, 39).Value = ComboBoxBechaeftigungsart
tbl.DataBodyRange(Zeile, 40).Value = TextBoxArbeitstage.Value
tbl.DataBodyRange(Zeile, 41).Value = TextBoxWochenstunden.Value
tbl.DataBodyRange(Zeile, 42).Value = TextBoxMo.Value
tbl.DataBodyRange(Zeile, 43).Value = TextBoxDi.Value
tbl.DataBodyRange(Zeile, 44).Value = TextBoxMi.Value
tbl.DataBodyRange(Zeile, 45).Value = TextBoxDo.Value
tbl.DataBodyRange(Zeile, 46).Value = TextBoxFr.Value
tbl.DataBodyRange(Zeile, 47).Value = TextBoxSa.Value
tbl.DataBodyRange(Zeile, 48).Value = TextBoxSo.Value
tbl.DataBodyRange(Zeile, 49).Value = TextBoxMonatsstunden.Value
tbl.DataBodyRange(Zeile, 50).Value = TextBoxBruttolohn.Value
tbl.DataBodyRange(Zeile, 51).Value = TextBoxStundenlohn.Value
End With
'UserForm schließen
Unload Me
'Navigieren zu Tabellenblatt Datenbank
Tabelle3.Select
ActiveWindow.ScrollRow = tbl.DataBodyRange(Zeile, 1).Row
tbl.DataBodyRange(Zeile, 1).Select
End Sub
Private Sub ButtonSpeichern_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
ButtonSpeichern.BackColor = RGB(179, 136, 235)
End Sub
Private Sub UserForm_Initialize()
'Tabelle Einlesen
Dim tbl As ListObject
Set tbl = Tabelle3.ListObjects(1)
'ID befüllen
TextBoxID.Value = tbl.DataBodyRange(tbl.DataBodyRange.Rows.Count, 1).Value + 1
'ComboBoxen befüllen
ComboBoxBetrieb.List = Tabelle12.ListObjects("tblBetrieb").DataBodyRange.Value
ComboBoxBetrieb.ListIndex = 0
ComboBoxAnrede.List = Tabelle12.ListObjects("tblAnrede").DataBodyRange.Value
ComboBoxAnrede.ListIndex = 0
ComboBoxGeschlecht.List = Tabelle12.ListObjects("tblGeschlecht").DataBodyRange.Value
ComboBoxGeschlecht.ListIndex = 0
ComboBoxFamilienstand.List = Tabelle12.ListObjects("tblFamilienstand").DataBodyRange.Value
ComboBoxFamilienstand.ListIndex = 0
ComboBoxNationalitaet.List = Tabelle12.ListObjects("tblLand").DataBodyRange.Value
ComboBoxNationalitaet.ListIndex = 0
ComboBoxAufenthaltsstaus.List = Tabelle12.ListObjects("tblAufenthaltsstaus").DataBodyRange.Value
ComboBoxAufenthaltsstaus.ListIndex = 0
ComboBoxBechaeftigungsart.List = Tabelle12.ListObjects("tblBechaeftigungsart").DataBodyRange.Value
ComboBoxBechaeftigungsart.ListIndex = 0
ComboBoxTaetigkeit.List = Tabelle12.ListObjects("tblTaetigkeit").DataBodyRange.Value
ComboBoxTaetigkeit.ListIndex = 0
ComboBoxKV.List = Tabelle12.ListObjects("tblKV").DataBodyRange.Value
ComboBoxKV.ListIndex = 0
ComboBoxLohngruppe.List = Tabelle12.ListObjects("tblLohngruppe").DataBodyRange.Value
ComboBoxLohngruppe.ListIndex = 0
ComboBoxVerwendungsgruppe.List = Tabelle12.ListObjects("tblVerwendungsgruppe").DataBodyRange.Value
ComboBoxVerwendungsgruppe.ListIndex = 0
ComboBoxBeschaeftigungsjahr.List = Tabelle12.ListObjects("tblBeschaeftigungsjahr").DataBodyRange.Value
ComboBoxBeschaeftigungsjahr.ListIndex = 0
ComboBoxFrage.List = Tabelle12.ListObjects("tblFrage").DataBodyRange.Value
ComboBoxFrage.ListIndex = 0
ComboBoxAustrittsgrund.List = Tabelle12.ListObjects("tblKuendigungsgrund").DataBodyRange.Value
ComboBoxAustrittsgrund.ListIndex = 0
End Sub
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
ButtonSpeichern.BackColor = RGB(190, 156, 237)
End Sub
Private Sub TextBoxMo_Change()
Call Wochenstunden
End Sub
Private Sub TextBoxDi_Change()
Call Wochenstunden
End Sub
Private Sub TextBoxMi_Change()
Call Wochenstunden
End Sub
Private Sub TextBoxDo_Change()
Call Wochenstunden
End Sub
Private Sub TextBoxFr_Change()
Call Wochenstunden
End Sub
Private Sub TextBoxSa_Change()
Call Wochenstunden
End Sub
Private Sub TextBoxSo_Change()
Call Wochenstunden
End Sub
Private Sub Wochenstunden()
If Len(TextBoxMo.Text) = 0 Then
TextBoxMo.Value = 0
End If
If Len(TextBoxDi.Text) = 0 Then
TextBoxDi.Value = 0
End If
If Len(TextBoxMi.Text) = 0 Then
TextBoxMi.Value = 0
End If
If Len(TextBoxDo.Text) = 0 Then
TextBoxDo.Value = 0
End If
If Len(TextBoxFr.Text) = 0 Then
TextBoxFr.Value = 0
End If
If Len(TextBoxSa.Text) = 0 Then
TextBoxSa.Value = 0
End If
If Len(TextBoxSo.Text) = 0 Then
TextBoxSo.Value = 0
End If
Me.TextBoxWochenstunden = CDbl(TextBoxMo.Value) + CDbl(TextBoxDi.Value) + CDbl(TextBoxMi.Value) + CDbl(TextBoxDo.Value) + CDbl(TextBoxFr.Value) + CDbl(TextBoxSa.Value) + CDbl(TextBoxSo.Value)
End Sub
Private Sub TextBoxWochenstunden_Change()
Call Monatsstunden
End Sub
Private Sub Monatsstunden()
Me.TextBoxMonatsstunden.Value = CDbl(TextBoxWochenstunden.Value) * CDbl(4.333)
TextBoxMonatsstunden = Format("0" & TextBoxMonatsstunden, "#")
End Sub
Private Sub TextBoxVorname_Cange()
Call Namezusammen
End Sub
Private Sub TextBoxFamilienname_Cange()
Call Namezusammen
End Sub
Private Sub Namezusammen()
Me.TextBoxName.Text = Me.TextBoxVorname.Text & " " + Me.TextBoxFamilienname.Text
End Sub
Private Sub TextBoxPLZ_AfterUpdate()
Dim varRes As Variant
If IsNumeric(TextBoxPLZ) Then
With Sheets("Verweise")
varRes = Application.Match(CDbl(TextBoxPLZ), .Range("AK1:AK2123"), 0)
If IsNumeric(varRes) Then
TextBoxORT = Application.Index(.Range("AL1:AL2123"), varRes)
Else
TextBoxORT = "PLZ '" & TextBoxPLZ & "' nicht gefunden"
End If
End With
Else
TextBoxORT = "Bitte PLZ eingeben"
End If
End Sub
Private Sub TextBoxVorname_Change()
TextBoxName.Value = TextBoxVorname.Value & " " & TextBoxFamilienname.Value
TextBoxSuffix.Value = TextBoxVorname & "" & TextBoxFamilienname
End Sub
Private Sub TextBoxFamilienname_Change()
TextBoxName.Value = TextBoxVorname.Value & " " & TextBoxFamilienname.Value
TextBoxSuffix.Value = TextBoxVorname & "" & TextBoxFamilienname
End Sub
Private Sub TextBoxFamilienname_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii >= Asc("a") And KeyAscii
Private Sub TextBoxBIC_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii >= Asc("a") And KeyAscii
Private Sub TextBoxBruttolohn_Change()
TextBoxStundenlohn.Value = TextBoxBruttolohn.Value / TextBoxMonatsstunden.Value
TextBoxStundenlohn = Format("0" & TextBoxStundenlohn, "#.00")
End Sub