Gewisse Zellen kopieren - 2 Bedingungen

Bild

Betrifft: Gewisse Zellen kopieren - 2 Bedingungen
von: Markus
Geschrieben am: 19.11.2015 19:00:23

Hallo liebes Forum,
mein Anliegen:
Ich habe 2 Tabellenblätter: Tabelle1 und Tabelle 2
Nun sollen die fehlenden Zellenwerte aus Tabelle 2 in Tabelle 1 an die richtige Position übertragen werden. Das "Kopieren" ist dabei mit 2 Bedingungen verbunden. Wenn die Spaltenwerte A und B (gleiche Zeile, nebeneinander) in beiden Tabellenblättern übereinstimmen, dann sollen die Zellenwerte der Spalten C und D (Tabelle 2, ebenfalls gleiche Zeile) an die richtige Position in Tabelle 1 übertragen werden.
Beispiel (siehe angehängte Datei):
Tabelle 2: Frankreich (A4) Produkt A (B4) kommt ebenfalls in Tabelle 1 vor, jedoch an anderer Position - Frankreich (A3) und Produkt A (B3) -> nun sollen die beiden Spaltenwerte C und D (C4=11; D4= 12) aus Tabelle 2 in Tabelle 1 an die Position C3 und D3 übertragen werden.
Folgenden Code habe ich gefunden, jedoch müssen hier die Positionen genau übereinstimmen:

Sub kopieren ()
Dim rng As Range
For each rng in Sheet("Tabelle1").Range(Cells(2,1), Cells(Rows.Count,1).End(xlUp)
If Sheets("Tabelle2").Cells(rng.Row, 1) = Sheets("Tabelle1").Cells(rng.Row, 1) And _
   Sheets("Tabelle2").Cells(rng.Row, 2) = Sheets("Tabelle1").Cells(rng.Row, 2) Then
Sheets("Tabelle2").Cells(rng.Row, 3).Copy_
Destination := Sheets("Tabelle1").Cells(rng.Row, 3)
Sheets("Tabelle2").Cells(rng.Row, 4).Copy_
Destination := Sheets("Tabelle1").Cells(rng.Row, 4)
End if
Next rng
End Sub
https://www.herber.de/bbs/user/101660.xlsx
Vielen Dank für eure Hilfe

Bild

Betrifft: So?
von: Michael
Geschrieben am: 20.11.2015 19:55:48
Hi Markus,
das Makro setzt voraus, daß in Tabelle2 eine Hilfsspalte vorhanden ist, die die Werte von A und B zusammenfaßt, also etwa aus "Deutschland" und "A" dann "DeutschlandA". Ich habe die mal in H wie Hilf geschrieben.
Dann isses easy, mit .find in die richtige Zeile zu springen und die Werte zu kopieren.
Das Makro:

Option Explicit
Sub kopieren()
Dim rng As Range, zelle As Range
Dim suchen As String
Dim T2max As Long
T2max = Tabelle2.Range("A" & Rows.Count).End(xlUp).Row
For Each rng In Sheets("Tabelle1").Range("A2", Cells(Rows.Count, 1).End(xlUp))
  suchen = rng.Value & rng.Offset(, 1).Value
  With Tabelle2
   Set zelle = .Range("H2:H" & T2max).Find(suchen, LookIn:=xlValues)
   If Not zelle Is Nothing Then
       .Range("C" & zelle.Row).Resize(1, 2).Copy _
         Sheets("Tabelle1").Range("C" & rng.Row)
     Else
       Sheets("Tabelle1").Range("E" & rng.Row) = "n.v."
   End If
  End With
Next rng
End Sub
Die Datei: https://www.herber.de/bbs/user/101684.xlsm
Happy Exceling,
Michael

Bild

Betrifft: AW: So?
von: Markus
Geschrieben am: 23.11.2015 22:08:50
Hallo Michael,
super, vielen Dank für deine Hilfe :)
Noch eine Frage, geht sowas auch, wenn die Daten in Tabelle 2 aus einer Matrix ausgelesen werden (siehe Anhang)?
https://www.herber.de/bbs/user/101759.xlsx
Danke für die Mühe.

Bild

Betrifft: Ähnliche Logik
von: Michael
Geschrieben am: 24.11.2015 14:58:50
Hi Markus,
geht so ähnlich: https://www.herber.de/bbs/user/101769.xlsm
Ich habe nur das vorhandene Makro aufgebohrt auf 2 Hilfsspalten.
Ob das so sinnvoll ist, hängt davon ab, wie groß die Matrix letztlich ist: ob es viele Spalten werden können, ob Länder doppelt vorkommen können usw., um wie viele Daten es insgesamt geht.
Schöne Grüße,
Michael

Bild

Betrifft: AW: Ähnliche Logik
von: Markus
Geschrieben am: 24.11.2015 22:39:32
Hi Michael,
erstmal vielen Dank für deine Hilfe.
Ich habe mich leider etwas falsch ausgedrückt - mir ging es darum, die Werte (grün hinterlegt) aus der Tabelle 2 (Land - Produktgruppe) auszulesen. In Tabelle 1 sind die Spalten A (Land) und Spalte B (Produktgruppe) gegeben und in Spalte C sollen dann die entsprechenden Daten aus Tabelle 2 eingetragen werden.
Ich habe versucht dein Makro anzupassen, jedoch ohne Erfolg. Wäre sehr nett, wenn du mir da helfen könntest.
https://www.herber.de/bbs/user/101782.xlsx
Dankeschön

Bild

Betrifft: Knick in der Logik
von: Michael
Geschrieben am: 25.11.2015 19:35:30
Hi Markus,
ich habe mir Deinen allerersten Beitrag noch mal angesehen.
Da ist ein logisches Problem in der Fragestellung, was die neueste Datei (101782) angeht.
Du möchtest, daß Länder und Produktgruppe aus Tabelle1 verwendet wird, um "Treffer" in Tabelle2 zu finden. So weit, so gut, nur: Wenn in Tabelle1 *mehrmals gleiche* Werte stehen wie "Frankreich" und "Produktgruppe1", woher soll Excel dann bitte wissen, welcher "Treffer" zu welcher Zeile gehört?
Da ist dann keine "eindeutige" Zuordnung möglich.
Das ganze Problem kommt mir etwas aus dem Zusammenhang gerissen vor. Um Dir wirklich helfen zu können, müßte man das Große, Ganze kennen.
Draufgekommen bin ich überhaupt erst, weil ich Dir ne Lösung ohne VBA anbieten wollte;
Datei anbei: https://www.herber.de/bbs/user/101806.xlsx
Die liefert nämlich (logisch richtig) bei zweimal den gleichen Kriterien zweimal den gleichen Wert - nämlich den, der als erstes gefunden wird.
Schöne Grüße,
Michael

Bild

Betrifft: AW: Knick in der Logik
von: Markus
Geschrieben am: 26.11.2015 15:02:19
Hi Michael,
habe mir deine Datei angeschaut - Super, so wollte ich es haben :)
Danke für deine Hilfe

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Gewisse Zellen kopieren - 2 Bedingungen"