Anzeige
Archiv - Navigation
144to148
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
144to148
144to148
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Dringend Hilfe für komplexe Suchfunktion in VBA

Dringend Hilfe für komplexe Suchfunktion in VBA
03.08.2002 14:07:25
AXSIE
Hallo Excel Forum,
Für folgendes Problem benötige ich dringend Hilfe:
Ausgangssituation:
es existieren zwei Dateien.

In der einen Datei befinden sich zwei Tabellenblätter mit identischer Spaltenanordnung und Spaltenüberschriften. Ihre Namen sind: „Tabelle1“ und „ArchivTab1“. In den Spalten C und G beider Tabellen stehen mehrzeilige Texte. Z.B. in Zelle C17 in „ArchivTab1“: “wir haben eine Zahl 111.222.333, die 9 Ziffern hat.“ In Zelle G25 in „Tabelle1“ steht 123.456.789.
Die Zeilenanzahl in Tabelle1 ist z.B. 300, in ArchivTab1 z.B. 100.
In der zweiten Datei existiert ein Tabellenblatt mit Namen „TabelleNeu“ mit abweichender Spaltenanordnung von den Tabellen in Datei1. In den Spalten B und H der „TabelleNeu“ stehen nur Zahlen-Buchstabenkombinationen z. B.: 123.456.789.AB in Spalte B und 111.222.333 in Spalte H. Die Zeilenanzahl in „TabelleNeu“ ist z.B. 70.
Ziel:
ein Makro, dass die Werte der Spalte B(Zeile 1 bis 70) und Spalte H(Zeile 1 bis 70) der „TabelleNeu“ der Datei 2 in den Spalten C und G der „Tabelle1“ und „ArchivTab1“ der
Datei 1 sucht.
Bei teilweiser Übereinstimmung soll:
a) die Zelle in „TabelleNeu“ mit dem übereinstimmenden Wert farblich, z.B. rot markiert,
b) die Zellangabe und Tabellenblattname der Fundstelle aus Datei 1 in Spalte K von „TabelleNeu“ eingetragen werden(z.B. C17, ArchivTab1).
Beispiel:
in Datei 2 in „TabelleNeu“ Spalte B20 steht „123.456.789.AB“ und in Spalte H30 „111.222.333“.
Das Makro findet dann in Datei 1 „Tabelle1“ in G25 den Wert 123.456.789 und in Datei 1 „ArchivTab1“ in Zelle C17 den Wert 111.222.333. Farblich „rot“ markiert wird in TabelleNeu B20 und H30 und in Spalte K20 erfolgt der Eintrag: „G25, Tabelle1“ in K30 der Eintrag:“C17, ArchivTab1“.
Danke für Hilfe.
AXSIE

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Dringend Hilfe für komplexe Suchfunktion in VBA
03.08.2002 16:28:10
Charlie
Hallo, AXSIE!

Ich bin mir zwar nicht sicher, ob ich die Aufgabenstellung richtig verstanden habe, aber folgender Code in der Datei "TabelleNeu.xls" sollte mal in die Nähe der Lösung kommen.

Viel Erfolg,
Charlie

mal ne Frage...
03.08.2002 17:01:12
Charly
Hi Charlie,
alle Achtung und wie immer prima erklärt.
Du willst wohl die Programmierer in die
Arbeitslosigkeit treiben?
Eine Frage

If rngAct = "" Then
Else

Deute ich das richtig?
Wenn wenn die Zelle leer ist passiert nichts,
wenn sie nicht leer ist wird die Else-Anweisung ausgeführt.
Ich hab das so noch nicht gesehen.

Schönes Wochenende
Gruss Charly

Anzeige
Re: mal ne Frage...
03.08.2002 17:26:41
Charlie
Hallo, Charly!

Das siehst Du vollkommen richtig. In diesem Fall würde es auch der Befehl "If rngAct <> "" Then" tun, aber oft muss man die Wenn-Prüfung mit allen möglichen VBA-Verrenkungen und sehr umständlich mit "And" oder "Or" aufbauen. Dann kann man sich mit der von mir geposteten Lösung oft das Leben erleichtern. Wenn z.B. ein Anweisungblock nur auszuführen ist, wenn 3 Bedingungen zutreffen, kann mit so schon mal 1 Bedingung ausschalten und im Else oder ElseIf nur mehr die beiden anderen Bedingungen prüfen.

Zu den arbeitslosen Programmierern:
Ich habe nebenberuflich eine (noch??) kleine Softwarefirma. Da bin ich der Excelspezialist (natürlich nur im Vergleich zu den anderen in der Firma, sonst bin ich vom Spezialistentum Lichtjahre entfernt). Was ich da immer wieder an Lösungen poste, könnte ich im Rahmen der Firma vielleicht auch zu Geld machen. Aber das ist doch nicht Sinn des Forums!! Was ich hier mache, mache ich a) um zu helfen (solange es im Rahmen von Hilfe leisten bleibt und nicht in einer unentgeltliche Auftragsprogrammierung ausartet) und b) um selbst zu lernen und wie ich schon einmal geschrieben habe, nehme ich mich eben mit Vorliebe der schwierigeren Aufgaben oder der Fragen von "Newbies" (ist nicht abfällig gemeint) an, die von den meisten Antwortern sehr stiefmütterlich behandelt werden.

Ich erstelle im Normalfall ja auch keine kompletten Anwendungen, nur vielleicht fertige Makrolösungen, die in bereits bestehenden Anwendungen integriert werden. Und wenn es doch eine eigene Anwendung sein sollte, na was solls. Außerdem wäre es unverschämt, wenn ich hier im Forum meine Hilfe gegen Entgelt anbieten würde, was von Hans wohl sehr schnell abgestellt würde.

Klar: Wenn jemand eine umfangreiche Lösung braucht, die er selbst nicht lösen kann (auch nicht mit Hilfe des Forums) und die auch den Rahmen und die Zielsetzung des Forums sprengt, kann man über alles reden. Und es wäre auch nicht das erste Mal. So habe ich z.B. für einen Veranstalter eines jährlichen Handballturniers in Schleswig-Holstein eine komplette Turnierverwaltung maßgeschneidert (Kontakt wurde damals über ein anderes Forum hergestellt).

Liebe Grüße aus Wien,
Charlie

Anzeige
Danke
03.08.2002 17:35:00
Charly
Danke Charlie,
und wieder was gelernt.
Und nicht so bescheiden, von wegen
"sonst bin ich vom Spezialistentum Lichtjahre entfernt"

Gruss Charly

Re: Dringend Hilfe für komplexe Suchfunktion in VBA
04.08.2002 10:24:35
AXSIE
Hallo Charlie,
danke für die schnelle Antwort. Ich werde deinen Code ausprobieren.
Bei Fragen würde ich mich hier im Forum nochmal melden.
Viele Grüße
AXSIE

Re: Dringend Hilfe für komplexe Suchfunktion in VBA
05.08.2002 17:05:24
AXSIE
Hallo Charlie,
ich hoffe erneut auf deine Hilfe:
1)ich habe deinen Code ausprobiert.Für die Werte aus Spalte H findet er im Archiv_Tab die übereinstimmenden Werte. Es gibt aber mehrere Fundstellen, die angezeigt werden müssen, z.B. in neuer Zeile oder in der Zelle K30 mit Komma getrennt. Gibt es dafür eine Lösung?
2)die Werte aus Spalte H müssen auch in Tabelle1 geprüft und gefunden werden.Ich habe versucht deinen Code zu erweitern und eine weitere Schleife für die Werte aus H mit Tabelle1 statt Archiv_Tab eingesetzt. Läuft leider nicht.
Gleiches gilt für die Werte aus Spalte B, die ebenfalls in beiden Tabellen(Tabelle1 und Atrchiv-Tab) der Datei1 überpürft werden sollen.
In dieser Schleife läuft das Makro nur bis varKritAct = CLng(varKritAct) und hängt sich auf. Die Zellen aller Tabellen sind mit Standard definiert. Hilft der Hinweis?
In Hoffnung auf deine Hilfe
Grüße
AXSIE

Anzeige
Re: Dringend Hilfe für komplexe Suchfunktion in VBA
06.08.2002 11:37:28
Charlie
Hallo, AXSIE!

Ich habe bisher leider noch nicht Zeit gefunden, mich mit dem neuen Problem zu beschäftigen. Denn die Tatsache, dass jeder Wert in jedem Blatt und dann noch dazu anstelle der Punkte durch Komma getrennt vorkommen kann, macht die Angelegenheit - wie Du selbst schon bemerkt hast ;) - nicht leichter und braucht etwas Zeit. Aber das werden wir schon hinkriegen.

Was ich aber nicht ganz verstehe ist Deine Formulierung "in neuer Zeile oder in der Zelle K30 mit Komma getrennt". OK, durch Komma getrennt, versteh' sogar ich, aber was meinst Du mit "neuer Zeile oder in der Zelle K30"? Im von mir geposteten Code werden wie in Deiner 1. Vorgabe die Bereiche, in denen die Werte in der Date "TabelleNeu.xls" stehen, auf die Spalten B bzw. H begrenzt. In der Datei "Datei1.xls" werden sie aber im "UsedRange" gesucht. Dabei werden ohnehin alle Zellen im benutzten Bereich in die Suche einbezogen.

Und was verstehst Du bitte darunter, dass mehrfach vorkommende Werte "angezeigt werden müssen"? Da das Makro die Fundstelle in der Datei "TabelleNeu.xls" in die Spalte K in der Zeile eintragen soll, in der zu überprüfende Wert steht, würden doch alle Werte in diese Zelle geschrieben und Du würdest nur die letzte Fundstelle sehen. Oder verstehe ich die Aufgabenstellung doch nicht richtig?

Gruß,
Charlie

Anzeige
Re: Dringend Hilfe für komplexe Suchfunktion in VBA
06.08.2002 17:06:31
AXSIE
Hallo Charlie,
ich versuche mich in einer neuen Beschreibung:
zu deiner letzten Anmerkung:"... in der der zu überprüfende Wert steht, würden doch alle Werte in diese Zelle geschrieben
und Du würdest nur die letzte Fundstelle sehen". Genau das möchte ich nicht. Ich möchte alle Fundstellen sehen, daher mein vielleicht verwirrender Vorschlag, die Fundstellen durch Komma getrennt in diese Zelle zu schreiben oder alternativ eine neue Zeile einzufügen, in der die weiteren Fundstellen eingetragen werden.
Die Randbedingungen haben sich nur insofern geändert, dass die Werte aus Spalte B in jedem Blatt der Datei1 und die Werte der Spalte H in jedem Blatt der Datei1 gesucht werden sollen. Sie haben das in meiner ersten Mail beschriebene Format z.B. 111.222.333.AB oder 123.456.789
Ich hoffe, dass ich etwas Licht ins dunkel meiner Formulierungen gebracht habe, wenn nicht, würde ich vorschlagen, dir eine Beispieldatei zu senden.
Viele Grüße und Dank für die Geduld mit mir
AXSIE
Anzeige
Re: Dringend Hilfe für komplexe Suchfunktion in VBA
07.08.2002 00:45:20
Charlie
Hallo, AXSIE!

Ich hoffe, dass ich jetzt alles richtig verstanden habe. Ich habe den urspünglichen Code in 3 Teile aufgeteilt, weil der Code sonst wegen der vielen Schleifen, Wenns und Abers unlesbar und damit nicht nachvollbar geworden wäre.

Viel Erfolg,
Charlie

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige