Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1448to1452
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

Code fehlerhaft

Code fehlerhaft
05.10.2015 15:04:22
Alexa
Hallo liebe Programmierer,
leider bin ich immer noch nicht schlauer geworden was meine VBA Kenntnisse angeht. Ich habe dieses Problem am Freitag schonmal gepostet, aber heute diesmal mit Beispieldatei zum besseren verstehen.
Ich habe folgendes Problem:
Ich habe in meiner Datenbank (Reiter1) mehrere Daten gesammelt. Nun möchte ich mit einem UserForm in das ich die Bestellnummer eingebe, dass alle Daten zu dieser Bestellnummer gesucht werden, und dann in die jeweiligen Zellen im Reiter Zusammenfassung kopiert werden. Allerdings, sollen in der Zusammenfassung im Kopf die Werte der ersten gefundenen Zeile stehen. Dann soll in Zeile 9 begonnen werden, die Werte der ersten gefundenen Zeile dortrein kopieren, in Zeile 10 die Werte der 2. gefundenen Zeile, usw. bis keine Zeilen mit der jeweiligen Bestellnummer mehr da sind.
Ich hab eine Beispieldatei angehängt mit meinem Code, den ich bisher habe.
Vielen Dank für eure Hilfe.
Alexa
https://www.herber.de/bbs/user/100595.xlsm

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code fehlerhaft
05.10.2015 15:54:41
Michael
Hi Alexa,
anbei geänderte Datei: https://www.herber.de/bbs/user/100598.xlsm
Ich habe nur die paar notwendigsten Änderungen gemacht, damit es so funktioniert, wie Du es Dir vorstellst.
Allerdings gehören sich für meinen Geschmack einige Änderungen rein: dieser Hinweis für den Benutzer, daß er doch bitte vorhandene Nummern eingeben soll, ist unzeitgemäß. Hier solltest Du zunächst alle verfügbaren Werte einlesen und eine ListBox anbieten, in der der Anwender sich eine Nummer aussuchen kann.
Je nach dem, wie umfangreich die tatsächlichen Daten sind, besteht ein gewisser Optimierungsbedarf: im Moment werden *alle* Zeilen der Datenbank gelesen, ab ein paar 1000 dauert das zu lang.
Happy Exceling,
Michael

Anzeige
Danke
05.10.2015 16:42:14
Alexa
Vielen vielen Dank Michael,
du hast mir sehr weitergeholfen. Wie kann ich das denn lösen, dass er nicht alle Zeilen durchgeht, sondern nur alle, in denen etwas steht? Also dein 2. Optimierungsvorschlag?
Danke
Alexa

Gerne
05.10.2015 17:07:52
Michael
Hi Alexa,
ich sehe mehrere Möglichkeiten:
a) Datenbank sortieren nach Artikelnummern (und evtl. zweitem/drittem Begriff, z.B. Datum oder so):
dann mußt Du nur mit .Find den ersten Treffer "anspringen" und so lange übertragen, bis eine andere Artikelnummer kommt.
b) wenn eine Sortierung nicht gewünscht ist: von Treffer zu Treffer hüpfen mit .Find
Beispiele für .Find findest Du etwa hier: https://www.herber.de/mailing/vb/html/xlmthfind.htm
In Hans' Beispiel muß man zuvor eine Variable c deklarieren:
Dim c as Range
Wenn c gefunden wurde, kannst Du die Zeilennummer mit zeile=c.row auslesen.
Probier halt mal herum und melde Dich, wenn Du steckenbleibst.
Ciao,
Michael

Anzeige
AW: Gerne
05.10.2015 19:47:53
Alexa
Hi Michael,
ich habe noch einmal das gleiche Problem, nur will ich diesmal nach Datum filtern..leider funktioniert es nicht. Mit genau dem gleich Code. Kannst du mir helfen?
Danke

Änderungen?
07.10.2015 17:37:25
Michael
Hi Alexa,
gerne, aber lade bitte die aktuelle Datei mit Deinen zwischenzeitlichen Änderungen hoch.
Grundsätzlich sind "Datümer" etwas hakelig: Excel speichert ein Datum intern als longint ab, während ein Text angezeigt wird - und einen "Text" wirft auch das Textfeld aus - das muß man beim Vergleich bzw. "Filter" berücksichtigen.
Schöne Grüße,
Michael

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige