AW: Formularinhalte in bestehende Arbeitsmappe
21.04.2016 10:02:41
Natasa
Hallo Herr Maintaire, und Danke für Ihre Antwort.
Ich bin bislang so weit gekommen: Eine Eingabemaske habe ich erstellt, anhand derer Daten in eine bestehende Tabelle eingetragen werden sollen:
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim RowCount As Long
Dim ctl As Control
If Me.txtAdresse.Value = "" Then
MsgBox "Bitte Adresse eingeben", vbExclemation, "Staff Expenses"
Me.txtAdresse.SetFocus
End If
RowCount = Worksheets("Startseite").Range("A4").CurrentRegion.Rows.Count
With Worksheets("Startseite").Range("A4")
.Offset(RowCount, 0).Value = Me.txtID.Value
.Offset(RowCount, 1).Value = Me.txtAdresse.Value
.Offset(RowCount, 2).Value = Me.txtVermieter.Value
.Offset(RowCount, 3).Value = Me.txtAsp.Value
.Offset(RowCount, 4).Value = Me.txtGröße.Value
.Offset(RowCount, 5).Value = Me.txtZimmer.Value
.Offset(RowCount, 6).Value = Me.txtWohnungsnummer.Value
.Offset(RowCount, 7).Value = Me.txtBelegung.Value
.Offset(RowCount, 8).Value = Me.txtBewohner.Value
.Offset(RowCount, 9).Value = Me.txtStrom.Value
.Offset(RowCount, 10).Value = Me.txtGas.Value
.Offset(RowCount, 11).Value = Me.txtWasser.Value
.Offset(RowCount, 12).Value = Format(Now, "dd/mm/yyyy")
End With
' Clear the form
For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Or TypeName(ctl) = "ComboBox" Then
ctl.Value = ""
ElseIf TypeName(ctl) = "CheckBox" Then
ctl.Value = False
End If
Next ctl
End Sub
Folgendes Problem besteht allerdings noch:
Ich möchte, dass bei Eingabe in die Maske jedes Mal eine neue Zeile in der Tabelle adressiert wird. Bislang wird aber jeder DAtensatz in ein und die selbe Zeile übertragen :(
Außerdem verschiebt sich alles, wenn in der Maske nicht alle Felder ausgefüllt werden.
Irgend eine Idee wie ich diese Probleme beheben kann?