ComboBox-Tastendruck und Übertragen von Daten vom Excel-Benutzerformular in die Blatttabelle

ComboBox-Tastendruck und Übertragen von Daten vom Excel-Benutzerformular in die Blatttabelle

Ich versuche, mit Excel ein kleines Inventarsystem zu erstellen, und möchte ein Makro verwenden, um einen neuen Datensatz hinzuzufügen. Meine Tabelle und mein Benutzerformular sind vorhanden, ich habe jedoch mehrere Probleme.

Erstens kann ich meine Kombinationsfelder nicht „sperren“. Ich habe versucht, sie über ihre Eigenschaften zu sperren, aber das Ergebnis ist, dass ich jetzt kein Element aus der Liste auswählen kann. (Die Kombinationsfelder sind vorab ausgefüllt.) Ich habe eine Schaltfläche in meinem Blatt (Neuen Datensatz hinzufügen) und sie enthält einen Code:

UserForm1.ComboBox1.List = Array("HO", "SI", "SV", "PTSF")
UserForm1.ComboBox2.List = Array("AP", "FU", "GE", "IT")
UserForm1.Show

Und auf meiner Combobox:

Private Sub ComboBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 8 Or KeyAscii = 127 Then
KeyAscii = 0
Else
End If
end sub

Der Code in meiner Combobox funktioniert nicht und ich möchte ihn sperren, sodass nichts eingegeben oder bearbeitet werden kann.

Das zweite Problem ist, dass ich nicht weiß, wie ich meine Tabelle aufrufen und die Daten aus meinem Benutzerformular darin einfügen kann. Ich habe dies früher versucht:

sheet1.table1.Lastrow = userform1.textbox1.value

aber offensichtlich funktioniert es nicht :(

Ich hoffe, dass mir jemand helfen kann. Vielen Dank im Voraus!

Antwort1

Ich habe mein Problem mit diesen Codes gelöst:

Dim ws As Worksheet
Dim lo As ListObject
Dim lr As ListRow

Set ws = Sheets("HO Database")
Set lo = ws.ListObjects(1)
Set lr = lo.ListRows.Add

lr.Range(1, 1).Value = Me.ComboBox2.Value
lr.Range(1, 2).Value = Me.ComboBox1.Value
lr.Range(1, 3).Value = Me.TextBox9.Value
lr.Range(1, 4).Value = Me.TextBox1.Value
lr.Range(1, 5).Value = Me.TextBox2.Value
lr.Range(1, 6).Value = Me.TextBox3.Value
lr.Range(1, 7).Value = Me.TextBox4.Value
lr.Range(1, 8).Value = Me.TextBox5.Value
lr.Range(1, 9).Value = Me.TextBox6.Value
lr.Range(1, 10).Value = Me.TextBox7.Value
lr.Range(1, 11).Value = Me.TextBox8.Value

Hoffe, dass jemand das nützlich findet.

verwandte Informationen