Anzeige
Archiv - Navigation
984to988
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
984to988
984to988
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
daten aus tabelle in listbox
13.06.2008 16:46:00
ralf
hallo forum
gebe über textboxen daten in spalte w, y ein . da die eingaben wie zb ölfiter , manometer , rücklauffilter
öfter vorkommen und in spalte y der preis danaben steht, soll in einer listbox nur einmal zb ölfiter stehen
und die gesamte summe die in einem monat für zb ölfilter ausgegeben werden daneben .
kann mir einer helfen
gruss
ralf

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: daten aus tabelle in listbox
13.06.2008 17:31:00
ralf
hallo forum
habe meine frage falsch gestellt . habe eine abgespeckte beispieldatei beigepackt .
kann über vorgabe bestimmte artikel die oft vorkommen über listbox eintragen .
die angaben stehn in spalte w . jetzt will ich über page.monatsübersicht eine
auflistung machen in dem er die spalten w und y vergleicht und wenn er was
findet soll er aber in spalte z gucken ob der artikel öfters vorkommt und dann die gesamt summe
aurechnet.kann mir jemand helfen

Die Datei https://www.herber.de/bbs/user/53048.xls wurde aus Datenschutzgründen gelöscht


gruss
ralf

Anzeige
AW: daten aus tabelle in listbox
13.06.2008 18:26:00
Chris
Servus Ralf,
schau mal, ob das annähernd in die Richtung geht, die du meintest:
ich habe allerdings nichts mit dem Datum anfangen können und deswegen auch den ColumnCount auf 2 gesetzt.
das Addieren passiert beim daten eintragen:

Die Datei https://www.herber.de/bbs/user/53051.xls wurde aus Datenschutzgründen gelöscht


Gruß
Chris

AW: daten aus tabelle in listbox
13.06.2008 19:18:00
ralf
hallo chris, hallo forum
erstmal danke . in etwa so , sag ich mal, bei einkäufebar (listbox1) sollen die
die einzeleintragung(mit Datum wann gekauft) angezeigt werden und in monatsübersicht (listbox 4) soll die gesamtübersicht erfolgen .ich habe meinen code, den ich versucht habe, herausgelöscht !
habe den über listboxfüllen3 in der multipage1.page4 eingefügt . kann man deinen code
so ummodeln das er beim öffnen von monatsübersicht(listbox4) das ausführt was du jetzt gemacht hast ?
gruss
ralf

Anzeige
AW: daten aus tabelle in listbox
13.06.2008 19:30:00
Chris
Servus Ralf,
das geht im Prinzip schon, aber woher bekommen wir das Datum bzw. den Zeitraum, um eine Monatsauswertung zu machen? Oder soll die Auswertung dann über alle Monate laufen?
Du könntest z.B. auf der Multipage1 (Monatsauswertung) eine CB implementieren, bei der man auswählen kann, welcher Monat ausgewertet werden soll bzw. ich habe festgestellt, dass die UF sich nur auf den aktuellen Monat bezieht, dann wäre das ja eher weniger ein Problem, oder sind es doch mehrere Monate?
Gruß
Chris

AW: daten aus tabelle in listbox
13.06.2008 19:53:27
ralf
hallo chris , hallo forum
nein . es soll sich nur auf den aktuellen monat beziehen , weil ich muss ganz ehrlich sagen muss das ich durch deinen code nicht so richtig durchblicke. bei der jahresauswertung mache ich es nur über einkäufe ,
vielleicht versuche ich es dann damit, dass ich die daten für die jahresaufwertung auf dem aktuellen
tabellenblatt speichere und dann nachher nur addiere. erstmal noch danke !
.
gruss
ralf

Anzeige
AW: daten aus tabelle in listbox
13.06.2008 20:26:00
Chris
Servus Ralf,
ich erklär dir jetzt mal ganz genau meinen Code, Zeile für Zeile. Und du sagst mir, ob z.B. jeder Monat ein eigenes Tabellenblatt hat, oder wie gestaltet sich das mit dem bezug auf die Daten des aktuellen Monats. stehen die gesamten Jahresdaten in einem Sheet, oder nur die Monatsdaten?

Private Sub ListBoxFüllen()
Dim lngRow As Long, lnglast As Long
ListBox1.Clear                                             'löscht die Eintragungen in Listbox
ListBox1.ColumnCount = 2                                   'legt die anzahl der Spalten fest x  _
bis z
ListBox1.ColumnWidths = "150;30"                       'legt die grösse der spaltenlänge in  _
listbox fest
ListBox1.TextAlign = fmTextAlignLeft
With ActiveSheet ' mit aktuell aktiviertem Sheet
Dim SachArray() As Variant, PreisArray() As Variant, SachArrayNeu() As Variant
Dim lngLetzte As Long, z As Long, x As Long
Dim OG&, i&, j&, k&, h, y As Variant ' Variablendeklaration
lngLetzte = IIf(IsEmpty(.Cells(Rows.Count, 25)), .Cells(Rows.Count, 25).End(xlUp).Row, Rows. _
Count) 'letzte aus spalte Y auslesen
ReDim SachArray(1 To lngLetzte) ' zum Einlesen der Produkte einen Array dimensinoieren und zwar  _
in der Größe der vorhandenen Einträge in der Spalte Y
For z = LBound(SachArray()) To UBound(SachArray()) ' Array einlesen Sachen (spalte Y dsw.  ,25)
SachArray(z) = .Cells(z, 25)
Next z
OG = UBound(SachArray()) ' array sortieren ist einfach sortieren, könnte man auch weglassen, _
ich hab's aber gern geordnet
k = OG \ 2
While k > 0
For i = LBound(SachArray()) To OG - k
j = i
While (j >= 0) And (SachArray(j) > SachArray(j + k))
h = SachArray(j)
SachArray(j) = SachArray(j + k)
SachArray(j + k) = h
If j > k Then
j = j - k
Else
j = LBound(SachArray())
End If
Wend
Next i
k = k \ 2
Wend
For z = UBound(SachArray()) To LBound(SachArray()) + 1 Step -1 ' doppelte im eingelesenen Array  _
aus Spalte Y entfernen, weil du ja z.B. nur einmal Ölfilter da stehen haben willst
If SachArray(z) = SachArray(z - 1) Then ' wenn der Vorgänger = dem aktuellen, dann setzte  _
den aktuellen auf 0
SachArray(z) = ""
End If
Next z
x = 0 ' ab hier wird ein neuer Array aufgebaut, um für die spätere Suchschleife nur die  _
einzelnen vorkommenden Produkte zu haben
For z = LBound(SachArray()) To UBound(SachArray()) ' neuen Array einlesen mit Einzelprodukten( _
ohne doppelte)
If SachArray(z)  "" Then
ReDim Preserve SachArrayNeu(x) ' Array neu dimensionieren ohne den alten Wert zu  _
verlieren
SachArrayNeu(x) = SachArray(z)
x = x + 1 ' deswegen hier immer um eins hochzählen
End If
Next z
Dim rSuche As Range, rFinde As Range, strErste As String
Dim dblSumme As Double
Set rFinde = .Range("Y:Y")
For z = LBound(SachArrayNeu()) To UBound(SachArrayNeu()) ' Schleife um Summen zu ermitteln fü  _
das jeweilige Produkt, hier findet die Find-methode Anwendung, um nicht jede Zeile durchlaufen zu müssen (kostet Zeit)
Set rSuche = rFinde.Find(what:=SachArrayNeu(z), LookAt:=xlWhole, LookIn:=xlValues)
If Not rSuche Is Nothing Then ' bei Treffer die Adresse des ersten Fundes merken
strErste = rSuche.Address
Do ' mach das solange, bis
If IsNumeric(rSuche.Offset(0, 1)) Then ' da Summenbildung, wenn der Wert numerisch ist, _
dann
dblSumme = dblSumme + rSuche.Offset(0, 1) 'summiere auf und zwar die Zelle neben  _
dem Suchbegriff, z.B. Ölfilter
End If
Set rSuche = rFinde.FindNext(rSuche) ' den Suchbegriff neu setzten, da Schleife, sonst  _
findet er nur den ersten Eintrag
Loop While Not rSuche Is Nothing And rSuche.Address  strErste
End If
With ListBox1 ' einlesen der Listbox
.ColumnCount = 2
.AddItem SachArrayNeu(z) ' Produktnamen
.List(z, 1) = Format(dblSumme, "#,##0.00\€") ' die jeweilige Summe für die produkte
End With
dblSumme = 0 ' summe zwecks Schleife wieder auf 0 setzten, sonst würde der Wert der anderen  _
auf die Summe des ersten Suchbegriffes aufaddiert
Next z
Set rSuche = Nothing ' Objekte zurücksetzten
Set rFinde = Nothing
End With
End Sub


den 2. Sortieralgorithmus braucht man nicht wirklich, deswegen, habe ich ihn aus dem Code herausgenommen.
Gruß
Chris

Anzeige
AW: daten aus tabelle in listbox
13.06.2008 20:31:46
ralf
hallo chris , hallo forum
habe gerade mal testhalber versucht deinen code einfach von listbox1 auf listbox4
umzuschreiben und hat wunderbar geklappt . tausend dank !!! eine frage noch bevor
ich hier lange rumdoktore kann ich über listbox4.listcount die eingaben in die tabelle
eingeben , so dass ich sie nachher einfacher abrufen kann
gruss
ralf

AW: daten aus tabelle in listbox
13.06.2008 20:41:00
Chris
Servus Ralf,
verstehe nicht ganz, was du meinst. Welche Tabelle?
Gruß
Chris

AW: daten aus tabelle in listbox
13.06.2008 21:12:00
ralf
hallo chris ,hallo forum
habe mich unglücklich ausgedrückt . sorry .
ich meine im activensheet ( tabellenblatt) zb spalte a und b, dann glaub ich das ich es hinkriege
die eingaben nachher so zu benutzen das ich eventuell eine jahresauswetung selbst hinbekomme
gruss
ralf

Anzeige
AW: daten aus tabelle in listbox
13.06.2008 21:42:18
Chris
Sorry,
aber ich verstehe immer noch nicht ganz. Willst du die Monatsauswertung nach Spalte A (Monat) und den Preis nach SpalteB schreiben?
Wieviel Tabellenblätter gibt es denn jetzt? 12? Für jeden Monat eines, oder wie ist das Ganze aufgebaut?
Mir ist das nicht wirklich klar.
Gruß
Chris

AW: daten aus tabelle in listbox
14.06.2008 18:33:59
ralf
hallo chris , hallo forum
genau die monatsauswerung nach spalte a und den preis nach spalte b . und es gibt für
jeden monat ein tabellenblatt . aber das ist eigentlich mehr eine spielerei als es wirklich nötig ist.
bis jetz mache ich es einfach komplett über die gesamtsumme der einkäufe , zb. januar
einkäufe 100€ , ausgaben 80€ . erstmal tausend dank für die mühe.
gruss
ralf

Anzeige
AW: daten aus tabelle in listbox
14.06.2008 20:19:58
Chris
Hallo Ralf,
das sind ja dann im Grunde die Listboxeinträge in Listbox4, die du nur nach Spalte A und B schreiben musst.
In etwa so:
With ActiveSheet
lngLetzte = IIf(IsEmpty(.Cells(Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count) 'letzte aus spalte A auslesen
.Range(.Cells(1, 1), .Cells(2, lngLetzte)).ClearContents
For z = 0 To ListBox4.ListCount - 1
If z = 0 Then
.Range("A1") = ListBox4.List(z)
.Range("B1") = ListBox4.List(z, 1)
Else
.Range("A65536").End(xlUp).Offset(1, 0) = ListBox4.List(z)
.Range("B65536").End(xlUp).Offset(1, 0) = ListBox4.List(z, 1)
End If
Next z
End With
diesen Teil- Code einfach bei ListBoxfüllen3 ganz unten vor dem End Sub einfügen.
Gruß
Chris
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige