Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1956to1960
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

UserForm ListBox bedingt füllen

UserForm ListBox bedingt füllen
05.12.2023 14:45:21
VBA Neuling
Hallo zusammen,

ich hab mir ein UserForm gebastelt, das bei Eingabe der Abteilung die jeweilige Kostenstelle und die insgesamt zu bestellende Menge anzeigt - was auch schon funktioniert.

Nun will ich über eine ListBox, die genauen Artikelnummern und die dazugehörige Menge anzeigen lassen, die die jeweilige Abteilung gebraucht hat. Leider komm ich bei diesem Punkt nicht weiter.

Meine Tabelle, mit der die Listbox "gefüttert" werden soll, ist folgendermaßen aufgebaut:

Spalte A: Abteilung
Spalte B: Artikelnummer
Spalte C: Artikelbezeichnung
Spalte D: Menge

Und hier noch mein Code:
Private Sub UserForm_Click()


'Menge pro Abteilung
BuchMenge = 10
EinMenge = 15
ProdMenge = 5
MarkMenge = 8
VtMenge = 5

'Kostenstelle anzeigen
If UCase(Abteilung.Value) = "BUCHHALTUNG" Then
Kostenstelle.Value = 100
ElseIf UCase(Abteilung.Value) = "EINKAUF" Then
Kostenstelle.Value = 200
ElseIf UCase(Abteilung.Value) = "PRODUKTION" Then
Kostenstelle.Value = 300
ElseIf UCase(Abteilung.Value) = "MARKETING" Then
Kostenstelle.Value = 400
ElseIf UCase(Abteilung.Value) = "VERTRIEB" Then
Kostenstelle.Value = 500
Else: Kostenstelle = "Eingabe überprüfen!"
End If

'Menge insgesamt anzeigen
If Kostenstelle.Value = 100 Then
Menge.Value = WorksheetFunction.CountIf(Range("A:A"), "Buchhaltung") * BuchMenge
ElseIf Kostenstelle.Value = 200 Then
Menge.Value = WorksheetFunction.CountIf(Range("A:A"), "Einkauf") * EinMenge
ElseIf Kostenstelle.Value = 300 Then
Menge.Value = WorksheetFunction.CountIf(Range("A:A"), "Produktion") * ProdMenge
ElseIf Kostenstelle.Value = 400 Then
Menge.Value = WorksheetFunction.CountIf(Range("A:A"), "Marketing") * MarkMenge
ElseIf Kostenstelle.Value = 500 Then
Menge.Value = WorksheetFunction.CountIf(Range("A:A"), "Vertrieb") * VtMenge
Else: Menge.Value = Kostenstelle.Value
End If

'Listenfeld

End Sub


Vielen Dank schon im Voraus!

VG

P.S. In der "richtigen" Datei brauchen die Abteilungen von jedem Artikel immer eine festgelegte Menge, heißt jeder Artikel, den die Buchhaltung bestellt, wird z.B. 5x gekauft. Deshalb hab ich die insgesamte Mengenanzeige auch mit CountIf gemacht.

P.P.S Verbesserungsvorschläge zum bereits bestehenden Code werden natürlich gerne angenommen :)

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserForm ListBox bedingt füllen
05.12.2023 21:02:06
Uduuh
Hallo,
was sind Kostenstelle und Menge?

Vielleicht solltest du die Datei hochladen.

Gruß aus'm Pott
Udo
AW: UserForm ListBox bedingt füllen
06.12.2023 08:26:57
VBA Neuling
Hallo Udo,

Die Kostenstelle wird im Userform angezeigt, ist in der Tabelle allerdings nicht vorhanden und soll einfach eine Zusatzinfo zur Abteilung liefern. Menge insgesamt genauso, ist einfach eine Info zur Übersicht, hat aber nicht eine allzu große Bedeutung.

Hier die Datei: https://www.herber.de/bbs/user/164880.xlsm

VG
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige