Microsoft Excel

Herbers Excel/VBA-Archiv

Wertevergleich in 2 Sheets, Wert kopieren

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

Dabei wird davon ausgegangen, dass die Wertematrizen in A1 beginnen und in Spalte A die zu suchenden übereinstimmenden Werte lückenlos untereinander stehen. Dopplungen dieser Werte in eines der beiden Blätter sollten nicht vorkommen, erst recht nicht, wenn die zu übertragenden Werte unterschiedlich sind.
Zielspalte steht für den Index von in einer anderen Spalte in Sheet 2
Quellspalte steht für den Index von aus einer anderen Spalte in Sheet 1

Grüsse, Frank


  

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

wird einfach der gleiche Wert zweimal gefunden und der zu übertragende übertragen. Sind letztere unterschiedlich, steht am Ende das letzte gefunden Paar in Blatt 2. Für das Beispiel: steht beim zweiten Mal '123' nicht 'Dies' sondern 'Ganz was anderes', hast Du in Blatt 2 am Ende zu stehen: 123 Ganz was anderes.

Grüsse,
Frank


  

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


 

Beiträge aus den Excel-Beispielen zum Thema "Wertevergleich in 2 Sheets, Wert kopieren"