2.7k Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.2k Punkte)
Hallo,

ich habe folgenden Code
.....
dim rng as range
Set rng = Workbooks("Test.xlsm").Sheets("Daten").Columns(3).Find( _ what:=Cells(iRow, 4), lookat:=xlWhole, LookIn:=xlValues)
.......

Damit suche ich in der Datei "Test" in der Spalte "3" nach dem Namen, der in der Quelldatei in "Cells(iRow,4) steht. Das funktioniert auch einwandfrei.
Jetzt möchte ich aber zusätzlich zum Namen auch den Vornamen berücksichtigen um die Suche zu verfeinern. Der Vornamen steht in beiden Dateien jeweils eine Spalte weiter rechts. Wie müßte dann der Code lauten?? Hat jemand einen Tipp?
Gruß Andreas

16 Antworten

0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo karin,

nochmal vielen Dank für deine Mühen...
Auch deine Schleife läuft einwandfrei. Ich habe allerdings zwei Datenfehler, die ich mir so noch nicht aus dem Code erklären kann.... ggf. liegt es an meinen Daten. Defacto weist er in zwei Fällen den Personen falsche Korrespondenzdaten zu, die Namen stimmen dabei aber die eben Vornamen nicht. Ich habe (noch) keine Erklärung warum es gerade bei den beiden Namen nicht funktionieren sollte..??
Danke und Gruß
Andreas
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Andreas,

möglicherweise sind die Namen/Vornamen in beiden Dateien nicht ganz identisch (z.B. Leerzeichen am Ende o.ä.) - wenn es bei den anderen Daten korrekt funktioniert, kann es an so einer "Kleinigkeit" liegen, die aber eben zum Problem wird.

Bis später,
Karin
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

ein wenig gezielter geht es mit instr vielleicht
die zusätzlichen zeichen dann einzeln aufgliedern und untersuchen oder abtrennen

es müssen halt alle fehler abgefangen werden die die user so bei der Erstellung machen könnten

fehlerbehandlung kann recht umfangreich werden

gruss nighty
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi,

das ist m.E. nicht die Lösung, denn u.U. werden dadurch erst Fehler "produziert", die den Sinn des Ganzen dann erst Recht in Frage stellen. Man sollte aber Namen/Vornamen in beiden Arbeitsmappen durch geeigente Maßnahmen (z.B. bedingte Formatierung oder VBA) vorher abgleichen bzw. überhaupt generelle "Gleichheit" garantieren (z.B. durch Gültigkeitsprüfungen), ehe der Code für das Übertagen der Daten ausgeführt wird.

Bis später,
Karin
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo,
danke für eure guten Hinweise, ich werde das noch mal checken!
Gruß
Andreas
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo Karin,

ich habe mal eine Testdatei angehängt, die das Problem zeigt. Im Grund funktioniert der Code, nur in einigen Fällen (rot markiert) führt er zu einem falschen Ergebnis.

Anhand der Namensliste in den Spalten F-G sollen die gleichen Namen in C-D gesucht werden und wenn vorhanden die entsprechende Nr. aus A in Spalte I eingetragen werden.

http://www.file-upload.net/download-8783401/TestNr.xlsm.html

Ich krieg nicht raus, warum das nicht 100%ig funzt.
Gruß
Andreas
...