Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1672to1676
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 über Auswahl Combobox füllen

Listbox über Auswahl Combobox füllen
02.02.2019 14:31:42
Markus
Hallo Zusammen,
ich trage über eine Userform Projektkosten in eine Tabelle ein. In Spalte A steht die Projektnummer, in Spalte B das Datum, Spalte C die Kostenart,... und Spalte F die jeweiligen Kosten.
Zur Auswertung möchte ich gerne über eine neue Userform zum einen alle Kosten zum Projekt auflisten und mir aus diesen Kosten in einer TextBox die Gesamtkosten zum Projetkt ausgeben lassen. Die Auswahl des Projekt liefert mir eine Combobox.
Bisher ist es mir zwar gelungen die Listbox mit allen Werten der Tabelle zu aber nicht nach der Projektnummer zu filtern. Auch für die Addition aller zugehörigen Werte und Ausgabe in der Textbox fällt mir nichts gescheites ein.
bisher habe ich folgenden Code in der Userform stehen:
Option Explicit
Private Sub UserForm_Initialize()
'Projektauswahl in combobox
Dim lngZeilemax As Long
lngZeilemax = Sheets("Projekte").UsedRange.Rows.Count
With ComboBox_PjNr
.RowSource = "Projekte!A3:A" & lngZeilemax
.ListIndex = -1  'beginnt in der ersten Zeile
.ListRows = 5   '5 Nummern werden angezeigt dann dropdown
ListBox1.ColumnWidths = "0,5cm;2cm;2cm;4cm;2cm;2cm;3cm;5cm"
End With
End Sub
Private Sub UserForm_Activate()
Dim rngSource As Object
Dim intColums As Integer
ListBox1.Tag = 1
Set rngSource = Range("B2").CurrentRegion
Set rngSource = rngSource.Offset(1, 0).Resize(rngSource.Rows.Count - 1, rngSource.Columns. _
Count)
intColums = rngSource.Columns.Count
With ListBox1
.MultiSelect = fmMultiSelectMulti
.ColumnCount = intColums
.ColumnHeads = True
.RowSource = rngSource.Address
End With
Set rngSource = Nothing
ListBox1.Tag = ""
End Sub

Wäre super wenn mir jemand weiterhelfen könnte.
Gruß Markus

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox über Auswahl Combobox füllen
02.02.2019 15:05:28
Piet
Hallo Makrus
wiel ich die Datei nicht sehe kann ich dir nur einen Tipp geben wie man es grundsaetzlich aufbaut. Den richtigen Tabellen Namen, die genauen Zeilen und Spalten Angaben musst du selbst in den Code einfügen! Er zeigt dir nur prinzipiell wie man es machen kann.
Den Code kannst du direkt in der UserForm laufen lassen, beim anklicken der ListBox, oder in ein normales Modul laden und über die UserForm beim anklicken mit Call aufrufen. Beides ist möglich. Ich hoffe er hilft dir weiter ...
mfg Piet
'grundsaetzliches Prinzip
Sub Daten_addieren()
Dim AC As Range, lz1 As Long, Summe As Long
With Worksheets("xxxxx")   'Name des Projekt Sheet
'such LastZelle in Spalte A = 1, sonst aendern!
lz1 = .Cells(Rows.Count, 1).End(xlUp).Row
'Suche Projekt in Spalte A  (sonst aendern)
For Each AC In .Range("A2:A" & lz1)
'suche den angeklickten Projekt Namen
If AC.Value = userform1.listbox1.Value Then
'Addiere Summe mit Wert aus Spalte x
Summe = Summe + AC.Offset(0, x) 'x= selbst ausfüllen
End If
Next AC
'Ergebnis in TextBox schreiben
userform1.Textbox99.Value = Summe
End With
End Sub

Anzeige
AW: Listbox über Auswahl Combobox füllen
02.02.2019 15:25:13
Markus
Hallo Piet,
danke für deine Antwort. Leider klappt es nicht so ganz. Habe die Datei mal hochgeladen. Über die Combobox möchte ich wie gesagt die Projektnummer wählen. Alle in der Tabelle geschriebenen Kosten zu der gewählten Projektnummer sollen dann in der Listbox angezeigt werden und addiert werden.
https://www.herber.de/bbs/user/127372.xlsm
Gruß Markus
"Projekte!" gibts nicht ... owT
02.02.2019 18:58:10
Matthias
AW: Listbox über Auswahl Combobox füllen
02.02.2019 19:12:09
Piet
Hallo Markus
es war gut das du eine Beispieldatei geschickt hast, da konnte ich mein Makro testen. Dabei fiel mir in deinem Code ein Fehler auf, den du wahrscheinlich noch garnicht bemerkt hast. Prüfe es bitte im Original.
Öffne mal die Beispieldatei, die du geschickt hast, und schaue in der ListBox auf den ersten Datensatz!. Wenn du nach Porto noch 1,2,3 in der Kostenliste eintraegst merkst du sofort das "Porto 1" fehlt!! Das brachte mich zum Zweifeln an meinem Code, den ich sah beim Produkt 189951 nur den Betrag von 125 EU in der Liste, in der TextBox stand aber "125,70" EU. Da habe ich einige Zeit dran gesucht!
Dabei stellte ich auch fest das die Userform den RowsSoruce Bereich bis Rows.Count hat. D.h., das du 1 Millionen Leerzeilen in der UserForm hast! Das ist beachtlich! Den Code habe ich dann geaendert.
In der neuen Beispieldatei habe ich beide Fehler korrigiert. Die neue Inıtialisierung für die Userform solltest du ins Original kopieren. Die UF startet zuerst mit deinem Programm, das habe ich gelassen. Da siehtst du Alle Kosten über RowSource der ListBox1.
Zum auswaehlen musste ich auf AddItem gehen, dann ist aber kein HeaderKopf möglich. Ich habe ihn dann künstlich über VBA erzeugt. Es gibt dabei nur keine Rahmen mehr! Ich denke damit kannst du leben.
mfg Piet
https://www.herber.de/bbs/user/127374.xlsm
Anzeige
AW: Listbox über Auswahl Combobox füllen
02.02.2019 20:12:39
Nepumuk
Hallo Markus,
teste mal: https://www.herber.de/bbs/user/127376.xlsm
Die Überschriften in der ListBox gibt es mit dieser Methode nicht. Da kannst du ja Labels mit der entsprechenden Bezeichnung darüber setzen.
Gruß
Nepumuk
AW: Listbox über Auswahl Combobox füllen
02.02.2019 21:21:10
Markus
Hallo Piet,
Hallo Nepumuk,
vielen Dank für eure Antworten und Lösungen. Beide Lösungen funktionieren in der Datei sehr gut.
Ich habe aber jetzt mal versucht das ganze in meine Datenbank einzubetten (siehe Anhang).
Wenn Ihr den Commandbutten "Projekt bearbeiten" klickt öffnet sich die Userfrom "Projekt bearbeiten" Nach Auswahl der Projektnummer in der oberen Combobox und klicken auf den Commandbutten "Projektabrechnung" öffnet sich die Userform "Abrechnung".
Hier habe ich die Liste hinein kopiert und den Code von Piet eingebettet. Die Gesamtkosten werden dabei ausgegeben, aber die Auflistung der einzelnen Kosten leider nicht in der Listbox.
Im VBA-Editor habe ich noch eine Userform Abrechnung_PjAw, Das ist im Prinzip die gleiche Userform wie "Abrechnung" nur das ich über die Combobox die Projektnummer wählen kann. In diese Userform habe ich den Code von Nepumuk eingebettet. Da bekomme ich aber leider eine Fehlermeldung.
Habt Ihr hierzu noch eine Lösung parat?
https://www.herber.de/bbs/user/127377.xlsm
Viele Grüße
Markus
P.S.: Das mit den vielen Zeilen Piet ist mir auch schon aufgefallen, habe nur noch keine Lösung gefunden es zu reduzieren. Ich brauche natürlich keine Millionen… es müsste am besten variabel sein...
Anzeige
AW: Listbox über Auswahl Combobox füllen
02.02.2019 21:21:12
Markus
Hallo Piet,
Hallo Nepumuk,
vielen Dank für eure Antworten und Lösungen. Beide Lösungen funktionieren in der Datei sehr gut.
Ich habe aber jetzt mal versucht das ganze in meine Datenbank einzubetten (siehe Anhang).
Wenn Ihr den Commandbutten "Projekt bearbeiten" klickt öffnet sich die Userfrom "Projekt bearbeiten" Nach Auswahl der Projektnummer in der oberen Combobox und klicken auf den Commandbutten "Projektabrechnung" öffnet sich die Userform "Abrechnung".
Hier habe ich die Liste hinein kopiert und den Code von Piet eingebettet. Die Gesamtkosten werden dabei ausgegeben, aber die Auflistung der einzelnen Kosten leider nicht in der Listbox.
Im VBA-Editor habe ich noch eine Userform Abrechnung_PjAw, Das ist im Prinzip die gleiche Userform wie "Abrechnung" nur das ich über die Combobox die Projektnummer wählen kann. In diese Userform habe ich den Code von Nepumuk eingebettet. Da bekomme ich aber leider eine Fehlermeldung.
Habt Ihr hierzu noch eine Lösung parat?
https://www.herber.de/bbs/user/127377.xlsm
Viele Grüße
Markus
P.S.: Das mit den vielen Zeilen Piet ist mir auch schon aufgefallen, habe nur noch keine Lösung gefunden es zu reduzieren. Ich brauche natürlich keine Millionen… es müsste am besten variabel sein...
Anzeige
AW: Listbox über Auswahl Combobox füllen
02.02.2019 21:43:12
Nepumuk
Hallo Markus,
also wenn, dann geht mein Code in dem Userform "Gesamtprojektkosten", aber das ist er nicht drin. Ich habe die TextBox gegen ein Label ausgetauscht. Die Kosten sollen ja nur angezeigt aber nicht Editiert werden. Das hättest du sehen können.
Gruß
Nepumuk
AW: Listbox über Auswahl Combobox füllen
03.02.2019 11:45:02
Markus
Hallo Nepumuk,
das stimmt, in der UF Gesamtkosten habe ich den code noch nicht reinkopiert (zumindest in der hochgeladenen Datei), aber da funktioniert er, das habe ich auch getestet. Kann ich aber die Gesamtkosten, die nun im einem Label ausgegeben werden, auch exportieren? Dass ist nämlich noch später ein weiteres Ziel, das ich eine Projektabrechnung machen kann...
Viele Grüße
Markus
Anzeige
AW: Listbox über Auswahl Combobox füllen
03.02.2019 11:56:19
Werner
Hallo Markus,
ja, kannst du.
Range("A1") = Me.DeinLabelName.Caption
Gruß Werner
AW: Listbox über Auswahl Combobox füllen
03.02.2019 16:34:05
Markus
Hallo Piet,
hast du noch eine Idee wie ich deinen Code in die andere Userform so einbetten kann das auch die Listbox funktioniert?
Wie kann ich es einstellen, dass immer bei der Summe 2 Nachkommastellen ausgegeben werden?
Viele Grüße
Markus
AW: Listbox über Auswahl Combobox füllen
03.02.2019 16:59:22
Piet
Hallo Markus
ich habe dein Problem gelöst, kann dir aber nicht sagen wie und wo die ListBox1 anderweitig geladen wird?
Private Sub UserForm_Activate()
Exit Sub
So verblüffend es klingt, ich kam erst mit MsgBoxen dahinter, der UF "Activate" Code macht dir alles kaputt!
Die ListBox wird vor dem Aufruf an anderer Stelle schon richtig geladen, und das Entscheidende ist - Richtig geladen!! Nur die Kosten des angeklickten Projekts. Im Activate Code sind zwei Fehler, aber wichtiger ist das du mit .RowSource alle Kosten in der ListBox1 hast, und die richtigen gefilterten Daten dadurch überschrieben werden. Lass den Code einfach weg, wenn es ohne ihn klappt!
mfg Piet
Anzeige
AW: Listbox über Auswahl Combobox füllen
03.02.2019 17:13:13
Piet
Nachtrag
den Code findest du in der UserForm "Abrechnung". Dort habe ich ihn bei mir deaktiviert, dann klappt es!
Zu den kleinen Fehlern zum VBA lernen: - 1. Fehler in der Set Anweisung -Set rngSource = Range("B2").CurrentRegion
Ohne die Angabe des Sheets("Kosten") holte sich das Makro die CurrentRegion aus der "Start" Tabelle, die ist aber leer!!
Wundert es dich das die ListBox1 dann auch leer ist? Exel ist schön zum arbeiten, aber "sehr penibel" in Details!!
Bei der RowSource Angabe gabst du nur den Bereich an, ohne jede Tabellen Blatt Angabe. Ergebnis: - Excel holt die Daten aus der gerade "aktiven Tabelle" und die war Start! - Ergebnis - Leere ListBox, weil falscher Range, und Daten geladen aus Tabelle1
mfg Piet
Anzeige
AW: Listbox über Auswahl Combobox füllen
03.02.2019 17:34:29
Markus
Hallo Piet,
Super! Vielen, vielen Dank, jetzt läufts...
Gewundert hat es mich und es war mir auch aufgefallen, dass es nur lief, wenn die Tabelle "Kosten" aktiv war. Ich wusste nur nicht wo der Teil Sheets("Kosten") fehlte...
Das mit den zwei Nachkommastellen habe ich mittlerweile auch gelöst...
Gruß
Markus

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige