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

Blattübergreifendes Suchen und ergänzen

Blattübergreifendes Suchen und ergänzen
13.03.2017 17:05:49
StefanZ
Guten Tag,
nach einigen Versuchen und nunmehr scheitern, suche ich hier Hilfe.
Ich habe ein Makro, welches dynamisch (=variable Blattnamen je nach Tag und Vergleichstag, an dem ich es nutze) in einem Blatt Zeile für Zeile einen Wert nimmt und im anderen Blatt sucht. Findet er das dort, dann kopiert er ausgewählte Informationen in das Ursprungsblatt.
Ich gehe auf dem Ausgangsblatt mit einer For-Next-Schleife durch die Zeilen (konkret Spalte A). Ende ist dynamisch je nach Zeilenanzahl.
Innerhalb der Schleife bin ich in der ersten Version mit einer Do-Until-Schleife auf das Suchblatt gegangen. Je größer die Datenmenge dort umso länger dauerte das.
Aber es hat funktioniert.
In der zweiten Version wollte ich das durch "Find" ersetzen und habe mir als Treffer die "row" geben lassen und damit weitergearbeitet. Das funktionierte bisher leider nur scheinbar, wie ein Volltest nun gezeigt hat.
Denn "find" liefert mir trotz "LookAt:=xlWhole" in 94 von 1.440 Fällen sehr ähnliche Werte, obwohl im Suchblatt keine Treffer hätten sein dürfen.
Konkret suche ich nach eindeutigen Projektnummern. Diese sehen in etwa so aus 12.1, 123.2, 123.3, 1234.1, 1235.1. Ähnlich war dann z-B. 1236.1 obwohl es das nicht im Suchblatt gibt.
Warum kann ich mir nicht erklären, denn eigentlich sollte das nichts anderes machen als im Excel Strg+F. Auch war die Fehlerbehandlung unvorteilhaft, denn Nichttreffer (Nothing) umging ich mit "on Error resume next"
Also habe ich Versuch 3 gestartet. Es soll via Worksheetfunction ein Vlookup in ausgewählte Zellen eingetragen und über alle Zellen nach unten kopiert werden. Dann darf Excel kurz rechnen und am Ende werden via copy-value-Paste die Spalten wieder "entformelt", damit die Arbeitsmappe handhabbar bleibt. Leider scheitere ich am Vlookup über dynamische Blätter.
Der Blattname ist letztlich der Dateiname der dem Erstelldatum der Datei entspricht.
Wenn ich das Makro starte, wird in der aktiven Datei das Arbeitsblatt automatisch benamt (ActiveSheet.Name = Date). Anschließend wird die Datei meiner Wahl (=Inputbox mit Dateinamen) geöffnet für die vorgenannten Schritte.
Toll wäre, wenn mir jemand helfen könnte mit entweder: Lösung für das "Find-Problem" oder Syntax für Vlookup oder einer noch besseren Idee (Aktuell haben die Dateien jeweils rund 1.500 Zeilen, die alle durchlaufen werden, d.h. Suche die 1.500 Projektnummern in der vorherigen Datei mit ca. 1.500 Zeilen und kopiere, was du findest). Tendenz steigend, ich kann alte Dateien (und Projektnummern) aus Dokumentationsgründen nicht entfernen, muss also die steigende Zahl von Zeilen mitführen.
Formel komplett wäre ungefähr: =IF(ISERROR(VLOOKUP([Ausgangsblatt.Spalte_A, Ausgangszeile], Suchblatt.A-Y,23,false),"""",if(VLOOKUP([Ausgangsblatt.Spalte_A, Ausgangszeile], Suchblatt.A-Y,23,false)=0,"""",VLOOKUP([Ausgangsblatt.Spalte_A, Ausgangszeile], Suchblatt.A-Y,23,false))
Der eigentliche SVERWEIS ist immer gleich: VLOOKUP([Ausgangsblatt.Spalte_A, Ausgangszeile], Suchblatt.A-Y,23,false).
Ich kriege es nicht hin, dass die Blätter dynamisch sind. Bereich über set und Range zuweisen klappt nicht. Die Fehlermeldung outet mich als Fehler - 1004 :-)
Vielen Dank
Viele Grüße
Stefan

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blattübergreifendes Suchen und ergänzen
13.03.2017 18:45:23
ChrisL
Hi Stefan
Dein Find-Problem kann man ohne Code nicht kommentieren. Generell wäre eine Beispieldatei hilfreich.
Wenn es eindeutige Treffer sind, dann könnte evtl. VERGLEICH() resp. Application.Match helfen. Wobei man auch da ein Fehlerhandling braucht. On-Error lässt sich umgehen, wenn du vorher z.B. mit ZÄHLENWENN/COUNTIF prüfst, ob der Primärschlüssel vorhanden ist.
Evtl. könnte man auch den umgekehrten Weg gehen d.h. erstmal alle Daten zusammenfassen (auf einem Hilfsblatt oder in einem Datenfeld) und dann ggf. aussortieren.
Und zur Formellösung:
http://www.excelformeln.de/formeln.html?welcher=233
cu
Chris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige