Habe mal wieder eine für mich schwierige Aufgabe. Ich habe ein Userform mit TextBoxen, ComboBox und ListBoxe etc erstellt.
FAST alles was es machen soll macht es auch sehr gut.
Als Ablauf: in einer ComboBox wählt man Kategorie. Dadurch wird in der ListBox alle Produkte angezeigt. Drücke ich auf ein Produkt wird automatisch der Wert in einer Textbox ausgegeben. Wenn ich nun die Anzahl in einer Anderen Textbox eingebe, wird multipliziert und der finale Wert im Label.caption angezeigt. Jedoch nur wenn ich das Label anklicke.
Was nun nicht funktioniert ist das ich mehrere Dinge anklicken kann Multiselct. Aber gleichzeitig auch mal rechnen kann.
Also Vorgang:
Produkt aus Listbox anklicken = Wert in TextBox wird sofort angezeigt (klappt schon)
Man möchte 3 also gibt man in einem anderen Texfeld Anzahl ein = Wert wird multipliziert und in ein Label.Caption angezeigt. (klappt auch aber leider nicht automatisch möchte nicht auf das Label klicken, sondern er soll das sofort anzeigen)
Nun das was gar nicht klappt:
Nachdem nun das eine Produkt mal 3 genommen wurde, möchte er ein weiteres. Drücke ich auf ein anderes Produkt löscht er alles vom ersten. Anders gesagt er Soll das 1. irgendwo speichern und am ende addieren zur nächsten und nächsten und übernächsten Auswahl.
Am Ende für jedes Produkt aber eine neue Zeile.
'Hier zieht man den Wert aus der Tabelle der neben der Artikelbeschreibung ist. Aber immer nur ein Artikel
Private Sub ListBox_Produkt_Click()
Dim i As Integer
Application.ScreenUpdating = False
For i = 2 To Sheets("Lagerbestand").Range("B65536").End(xlUp).Row
If ListBox_Produkt.Text = Sheets("Lagerbestand").Cells(i, 2) Then
TextBox_Wert.Value = Sheets("Lagerbestand").Cells(i, 1)
Exit For
End If
Next
End Sub
funktioniert nur wenn ich aufs Label klicke
Private Sub Label8_Click()
Label8.Caption = CDbl(TextBox_Menge.Value) * CDbl(TextBox_Wert.Value)
End Sub
So wird alles initialize
Private Sub UserForm_Initialize()
ComboBox_Kategorie.List = Sheets("Kategorie").Range("A1", "A" & Sheets("Lagerbestand").Range(" _
A65536").End(xlUp).Row).Value
Kasse.TextBox_Datum.Value = Date
Kasse.TextBox_Login.Value = Application.UserName
Kasse.TextBox_Menge.Value = "1"
End Sub
Am Ende soll es eingetragen werden im Tabellenblatt, was aber nur bei EINEM Produkt klappt.
Private Sub Command_speichern_Click()
Worksheets("Kasse").Activate
Dim i As Integer
Dim last As Integer
last = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row + 1
ActiveSheet.Cells(last, 2).Value = Kasse.TextBox_Datum.Value
ActiveSheet.Cells(last, 3).Value = Kasse.TextBox_Login.Value
ActiveSheet.Cells(last, 4).Value = Kasse.ListBox_Produkt.Value
ActiveSheet.Cells(last, 5).Value = Kasse.Label8.Caption.Value
ActiveSheet.Cells(last, 6).Value = Kasse.TextBox_Käufer.Value
MsgBox "Gespeichert"
End Sub