Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1224to1228
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

2 tabellen unter Bedingungen zusammeführen

2 tabellen unter Bedingungen zusammeführen
KLE
Hi,
ich habe eine Datei mit mehreren Listen. Jetzt möchte ich gern folgendes realisieren und komme nicht richtig weiter (meine Versuche sind "for next-Schleifen" und die brauchen ewig...einige Minuten!)
Dahe mein Hoffnung in Euch, mich mit einem Rat zu unterstützen:
Situation:
2 Tabellenblätter
Blatt1: Zeile, KundenID, Name, Vorname, Anschrift etc.
Blatt2: Zelie, RechnungsNr., KundenID, Rechnungstext etc.
Ziel:
Eine Listbox (Multiselect, Option) mit allen Kunden (Blatt1), wobei die - wo eine bestimmte Rechnung vorhanden ist markiert werden. Die Rechnungsnr. ist in Combobox1 auszuwählen.
Ich versuchte es mit:
Lese alle Kunden ein, dann gehe jeden Kunden einmal durch und prüfe, ob in Blatt 2 eine Rechnung vorhanden ist...wenn ja, dann selected = True...
Das dauert aber ewig...
HILFE !!!!!!!!!!!!! DRINGEND !!!!!!!!!!!
SuperVielen Dank!
Kay

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Hinweis: zu dem Datenumfang
21.08.2011 21:45:13
KLE
Tabelle 1 - KID = einmalig, ca. 35.000 Datensätze
Tabelle 2 - RechnungsNr. und KundenID können mehrfach vorkommen, da für jede Postion auf Rechnung (ArtikelNr. + Bezeichnung) eine Zeileangelegt ist. Diese Liste ist im Moment, da sie Monatlich gezogen wird im Schnitt stets ca. 10.000 - 14.000 Zeilen groß.
Daher dauert es halt immer ewig ?!
Was tun (Access haben wir nicht!)
Gruß und Dankbar für jeden noch so kleinen Tip...
Kay
AW: Hinweis: zu dem Datenumfang
22.08.2011 02:33:18
fcs
Hallo Kay,
hier mal ein Beispiel-Userform.
https://www.herber.de/bbs/user/76294.xlsm
Im Userform findest du ein Beispiel, wie man eine Box mit Auswahldaten füllen kann ohne doppelte Einträge (für die Listbox mit den Rechnungsnummern).
Und wie man nach Auswahl einer Rechnungsnummer die zugehörigen Kunden in der Kundenlistbox markiert. Die Kundenliste beinhaltet hier alle Kunden. Die Auswahlliste wird über den Zellbereich der Auswahlliste zugewiesen.
Zusätzlich werden in einer 2. Listbox alle Einträge zu einer Rechnungsnummer gelistet inklusive einiger Daten zur jeweiligen Kundennummer.
Ich hab das mit über 30000 Kunden-Nummern und 10000 Rechnungseinträgen getestet. Userform-Anzeige dauert wenige Sekunden. Das Markieren der Kunden und die Auflistung der Rechnungen erfolgt in weniger als 2 Sekunden.
Gruß
Franz
Anzeige
AW: Frage zu Deiner Hilfe-Datei (Collection)
22.08.2011 09:56:41
KLE
Hi Franz,
vorweg-super vielen Dank für deine Datei und Erklärungen!
Aber ich habe da noch ein paar Fragen zu:
oCollection.Add Item:=.Cells(Zeile, 1), Key:=CStr(.Cells(Zeile, 1))
lCount = lCount + 1
arrData(1, lCount) = .Cells(Zeile, 1).Value
Ich kenne mich nicht aus mit Collection und wann man Sie wofür richtig einsetzt. Daher bitte entschuldige meine Fragen:
1) Collection werden nur innerhalb einer Sub aufrecht erhalten? Außerhalb sind sie wieder "weg"...
2) Collection füllen mit Additem, zählen mit Count und löschen mit Remove, bzw. clear ?
3) Warum hast Du bei Add Item:= Cells und Key:= CStr ? Warum das Key noch ?
4) Was macht die Collection und warum anschließend noch das arrData ? Steht das nicht schon in der oCollection ?
Habe im Internet und in meinen Büchern nicht wirklich viel "nachvollziehbares" zu collectino gefunden. Viele Beispiele, aber kaum eine Erklärung wie es wirklich funktioniert...und warum.
Gruß und Danke für die Nachhilfe!
Kay
Anzeige
AW: Super - Perfekt...
22.08.2011 12:08:49
KLE
Vielen Dank noch einmal an der Stelle!
Danke Deiner Datei konnte ich einiges nachvollziehen, ausprobieren und weiterentwickeln. Jetzt habe ich es sogar geschafft 3 Datenblätter quer auszuwerten und es dauert keine 2 Sekunden, um alle zig'tausende Datensätze abzugeglichen und entsprechend in der Ansicht aufzubereitet.
Nur mit dem Collection wäre ich noch dankbar...einfach nur, dass ich es für mich begreife, was ich damit machen kann und wie.
Aber ehrlich mit Deiner Version "Find" und Do Loop Address... da wäre ich im Traum und Tausend Jahren nicht drauf gekommen...Wow, Ihr seid hier einfach die BESTEN !!!
Danke Dir Franz und allen anderen, die mir immer wieder hier helfen, meine Arbeit leichter und besser zu machen...
Lieben Gruß
Kay
Anzeige
AW: Collection
22.08.2011 12:48:10
fcs
Hallo Kay,
eine Collection ist in Excel zunächst einmal eine Sammlung von Daten.
Wird bei der AddItem-Anweisung auch der Parameter Keys angegeben, dann wird jeder Schlüssel-Wert nur einmal in die Collection aufgenommen. D.h. man kann eine Liste ohne doppelte Einträge erzeugen.
Beim Versuch den gleichen Schlüsselwert ein weiteres mal der Collection hinzuzufügen tritt ein Fehler auf, der in der Fehlerbehandlung verarbeitet wird und hier mit der nächsten Zeile weitermacht.
Eine Collection läßt sich meines Wissens nicht direkt der List-Eigenschaft einer List-/Combobox zuweisen. Die Inhalte der Collection müssten also in einer For-Next-Schleife mit der AddItem-Methode zur Auswahlliste der List-/Combobox hinzugefügt werden. Deshalb werden die Daten in ein Array eingelesen. Über das Array besteht zusätzlich die Möglichkeit eine mehrspaltige Box mit Auswahl-Daten zu füllen.
Die Daten einer Collection können auch außerhalb einer Prozedur verfügbar gemacht werden. Die Collection-Variable muss dann auf Modulebene und ggf. als Public deklariert werden.
Gruß
Franz
Anzeige
AW: Danke für die Nachhilfe... o.T.
22.08.2011 13:30:12
KLE

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige