![]() |
Betrifft: Wertevergleich in 2 Sheets, Wert kopieren
von: Monika
Geschrieben am: 30.10.2014 15:43:02
Hallo zusammen,
ich bräuchte mal wieder eure Hilfe:
Ich habe in einem Workbook 2 Sheets, in denen eine Spalte die gleiche Werte enthält. Diese Spalten möchte ich von oben nach unten durchlaufen und wenn die Werte in beiden übereinstimmen, einen Wert aus einer anderen Spalte in Sheet 1 kopieren und in einer anderen Spalte in Sheet 2 einfügen - und zwar in der entsprechenden Zeile, in der auch der ursprünglich verglichene Wert übereinstimmte.
Wie könnte ich das denn umsetzen?
Vielen Dank und liebe Grüße
Monika
![]() ![]() |
Betrifft: Könnte mit SVerweis gehen
von: Frank
Geschrieben am: 30.10.2014 18:43:25
Hallo Monika,
damit das funktioniert, müsstest Du die Spalten in Sheet1 mit einem Namen versehen und - noch wichtiger - die auf Übereinstimmung zu prüfenden Werte müssen in der ersten Spalte dieses Bereiches stehen.
Als Matrix (zweites Argument) trägst Du dann den Namen des Bereichs ein.
Grüsse,
Frank
![]() ![]() |
Betrifft: AW: Könnte mit SVerweis gehen
von: Monika
Geschrieben am: 30.10.2014 19:56:25
Hi Frank,
das hatte ich auch überlegt, allerdings das Ganze leider vollautomatisiert ablaufen - daher hilft mir der SVerweis nicht weiter oder?
Viele Grüße
Monika
![]() ![]() |
Betrifft: Geht mit VBA schon auch
von: Frank
Geschrieben am: 30.10.2014 20:28:31
Hi,
wieso nicht? Formellösung ist automatischer als VBA ;-)
VBA muss man erst anstossen, mit Button, als Change-Ereignis ö.ä.. Bei der Formel steht der Wert schon gleich richtig drin, wenn Du den Bereich mit dem Namen entsprechend wählst und die Formel weit genug kopierst. Ich persönlich bevorzuge in XL die Mischvariante: Formel eintragen und dann Anpassung des benannten Bereichs und Kopieren der Formel mittels VBA.
Egal. Beispiel für Dich:
lZ1=Sheets(1).Range("A1").End(xlDown).Row lZ2=Sheets(2).Range("A1").End(xlDown).Row for i=1 to lZ2 W2=Sheets(2).cells(i,1).value for j=1 to lZ1 W1=Sheets(1).cells(j,1).value if W1=W2 then Sheets(2).cells(i,Zielspalte).value=Sheets(1).cells(j,Quellspalte).value end if next next
![]() ![]() |
Betrifft: AW: Geht mit VBA schon auch
von: Monika
Geschrieben am: 31.10.2014 11:51:58
Hallo Frank,
Was mache ich denn, wenn die Werte mehrfach vorkommen? Der zu übertragende wäre in dem Fall immer gleich...
Mit dem automatisieren habe ich mich möglicherweise falsch ausgedrückt: Es geht nicht darum, dass alles automatisch abläuft, wenn das Dokument geöffnet wird, sondern darum, dass der Nutzer nicht noch Formel einkopieren muss... In dem Dokument ist jede Woche ein aktualisiertes Sheet dabei... Aber mit VBA Formeln einfügen ist eigentlich echt eine gute Idee :)
Danke noch mal und viele Grüße
Monika
![]() ![]() |
Betrifft: Dann besser mit VBA...
von: Frank
Geschrieben am: 31.10.2014 15:14:29
Hallo Monika,
die VBA-Lösung funktioniert so jetzt immer. Bei gleichen Vergleichswerten
Blatt1-Spalte A B Blatt2-Spalte A 123 Dies 567 456 Jenes 134 123 Dies 123
![]() ![]() |
Betrifft: AW: Könnte mit SVerweis gehen
von: Daniel
Geschrieben am: 30.10.2014 20:33:33
Hi
wenns "vollautomatisiert" sein soll dann spricht das eher für Formeln
Makros müssen im der Regel immer erst gestartet werden und das ist dann nicht mehr "automatsich".
Gruß Daniel
![]() |