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.