Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Listbox

Listbox
07.05.2018 08:52:14
Phil
Guten Tag,
leider bekomme ich es nicht, dass bei klick auf " Artikel löschen" die Anzahl der des markierten Artikel um 1 reduziert wird. Anbei die Beispeildatei.
Vielen Dank für Hilfe.
https://www.herber.de/bbs/user/121472.xlsm

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox
07.05.2018 09:06:34
Hajo_Zi
ich habe ein Problem. Ich kann nichts in der Listbox auswählen da keine Einträge.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: Listbox
07.05.2018 09:07:51
Daniel
Hi
probiers mal so. Dein Code löscht ja immer die ganze Zeile:
Private Sub B_Artikel_loeschen_Click()
Dim I As Long
Dim Anz As Long
Dim Preis As Double
With ListBox1
I = .ListIndex
If I >= 0 Then
Anz = CLng(.List(I, 1))
If Anz = 1 Then
.RemoveItem ListBox1.ListIndex
Else
Preis = CDbl(.List(I, 2))
Preis = Preis / Anz * (Anz - 1)
.List(I, 1) = Anz - 1
.List(I, 2) = Format(Preis, "0.00 €")
End If
Me.ListBox1_Change
Else
Msgbox "Bitte Artikel zum löschen auswählen"
End If
End With
End Sub
Gruß Daniel
Anzeige
AW: Listbox
07.05.2018 09:14:22
Phil
Hallo Daniel,
vielen Dank für die schnelle Antwort. Der Code funktioniert soweit, nur wenn ich eine gelöschten Artikel wieder hinzufüge stimmt die Anzahl dann nicht mehr, bzw. im Speicher wird die gelöschte Anzahl nicht berücksichtig. Hast du dafür auch eine Lösung ?
Vielen Dank.
AW: Listbox
07.05.2018 09:39:43
Daniel
Hi
ich bin davon ausgegangen, dass du die Anzahl der Bestellungen nur in der Listbox speicherst.
Wenn du diese Anzahl noch an anderer Stelle hinterlegst, müsstest du natürlich auch dort die Menge und Preis entsprechend reduzieren.
Gruß Daniel
AW: Listbox
07.05.2018 10:58:26
Phil
Hi!
leider bekomme ich es nicht richtig hin! Die Werte werden im Array "Order" hinzugefügt, aber wenn ich jetzt Erase Order im Befehl Artikel löschen hinzufüge löscht er die ganze Bestellung!
Vielleicht kannst du dir Datei nochmal anschauen...
Vielen Dank!
Anzeige
AW: Listbox
07.05.2018 11:06:17
Daniel
Hi
schau dir mal an, was passiert wenn du eine einzelne Bestellung hinzufügst.
im Prinzip kannst du diesen Vorgang übernehmen mit zwei Änderungen:
- die Menge darf nicht erhöht werden sondern muss reduziert werden
- der Name und damit die Position des Eintrags ergibt sich nicht aus dem geklickten Button, sondern aus dem Text in der Listbox in der gewählten Zeile.
Gruß Daniel
AW: Listbox
07.05.2018 11:16:05
Phil
Hi!
das mein Quellcode für Bestellung hinzufügen. Die Anzahl habe +1 habe ich -1 verändert. Nur wie bekomme ich den Verweis auf den markierten Eintrag in der Listbox hin.
Public Sub liste(ByVal tast)
Dim n, nn, found
found = False
For n = 0 To 100
If Daten(n, 0) = tast Then
Me.Controls(tast).Caption = Daten(n, 3) + " " + Format(Daten(n, 2), "Currency")
If High Then
Me.Controls(tast).Caption = Daten(n, 3) + " " + Format(Daten(n, 1), "Currency")
End If
For nn = 0 To Order(0, 0)
If Order(nn, 0) = Daten(n, 3) Then
Order(nn, 1) = Order(nn, 1) -1
found = True
Exit For
End If
Next nn
If Not found Then
Order(0, 0) = Order(0, 0) -1
Order(Order(0, 0), 2) = Daten(n, 2)
If High Then Order(Order(0, 0), 2) = Daten(n, 1)
Order(Order(0, 0), 0) = Daten(n, 3)
Order(Order(0, 0), 1) = Order(Order(0, 0), 1) -1
Exit For
End If
End If
Next n
With Me.ListBox1
.Clear
.ColumnCount = 3
Summe = 0
For n = 1 To Order(0, 0)
.AddItem
.List(.ListCount - 1, 0) = Order(n, 0)
.List(.ListCount - 1, 1) = Order(n, 1)
.List(.ListCount - 1, 2) = Format(Order(n, 2) * Order(n, 1), "Currency")
Summe = Summe + Order(n, 2) * Order(n, 1)
TextBox1 = Format(Summe, "Currency")
Next n
End With
Anzeige
AW: Listbox
08.05.2018 08:52:16
Daniel
Hi
Über den Listindex.
IIm Array Order stehen die Einträge in der gleichen Reihenfolge wie in der Listbox.
Gruß Daniel
AW: Listbox
08.05.2018 09:05:03
Phil
Hi!
verstehe nicht wie ich es mit ListIndex ändern soll, das es funktioniert. Bin am verzweifeln.....
LG
AW: Listbox
09.05.2018 12:57:06
Daniel
Hi
1. der ListIndex der Listbox gibt dir Zeilennummer der ausgewählten Zeile (erste Zeile = 0, keine Zeile ausgewählt = -1)
2. generierst deine Daten im Array Order. beim Klick auf einen Produktbutton zum Hinzufügen findst du die Zeilennummer, in dem du mit einer Schleife über die Liste läufst und einen Wert mit dem Namen des Buttons vergleichst (oder so ähnlich)
beim Löschen einer Bestellung musst du die Zeilennummer nicht mehr suchen, du kannst sie aus dem Listindex der Listbox ableiten.
Gruß Daniel
Anzeige
AW: Listbox
14.05.2018 09:12:51
Phil
Hallo Daniel,
habe da einiges probiert jedoch nicht mit dem gewünschten Erfolg! Wäre es möglich, dass du den Quellcode dafür schreibst?
LG
AW: Listbox
14.05.2018 11:13:48
Phil

Private Sub B_Artikel_loeschen_Click()
Dim I As Long
Dim Anz As Long
Dim Preis As Double
With ListBox1
I = .ListIndex
If I >= 0 Then
For nn = 0 To Order(0, 0)
If Order(nn, 0) = Daten(n, 3) Then
Order(nn, 1) = Order(nn, 1) - 1
found = True
Exit For
End If
Next nn
If Anz = 1 Then
.RemoveItem ListBox1.ListIndex
End If
End If
End With
With Me.ListBox1
.Clear
.ColumnCount = 3
Summe = 0
For n = 1 To Order(0, 0)
.AddItem
.List(.ListCount - 1, 0) = Order(n, 0)
.List(.ListCount - 1, 1) = Order(n, 1)
.List(.ListCount - 1, 2) = Format(Order(n, 2) * Order(n, 1), "Currency")
Summe = Summe + Order(n, 2) * Order(n, 1)
TextBox1 = Format(Summe, "Currency")
Next n
End With
End Sub

Anzeige
AW: Listbox
14.05.2018 11:15:54
Phil
Hallo Daniel
Bei dem eingestellten Code,wird die Anzahl des ersten Button immer um 1 reduziert auch in den negativ Bereich. Leider wird nicht der ausgewählte Eintrag um 1 reduziert und bei Anzahl 0 gelöscht.
LG

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige