Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1440to1444
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
Inhaltsverzeichnis

Verknüpfung von Werten aus zwei Tabellen

Verknüpfung von Werten aus zwei Tabellen
18.08.2015 11:18:22
Werten
Hallo zusammen,
Ich möchte die Werte zweier Tabellen verknüpfen. Das ist grundsätzlich ja nicht ganz so schwer, aber ich habe ein Tabellenblatt mit ca. 500 Zeilen und 50 Spalten habe. Hat jemand eine Idee, ob man den Codeausschnitt unten irgendwie vereinfachen bzw. automatisieren kann?
Die Grundlogik, dass jede vierte Zelle in Blatt 1 auf jeden dritten Zellenwert aus Blatt 2 geschrieben wird, zieht sich durch das gesamte Arbeitsblatt2 bzw. größere Teilbereiche durch.
Gibt es eine Möglichkeit den Code mit Laufvariablen zu verkürzen, sodass ich nicht alle Zellen einzeln verweisen muss?
Sub Zellenverweise()
Dim wktb1 As Worksheet
Dim wktb2 As Worksheet
Set wktb1 = ActiveWorkbook.Worksheets("Tabelle1")
Set wktb2 = ActiveWorkbook.Worksheets("Tabelle2")
wktb2.Cells(1, 3).Value = wktb1.Cells(1, 1).Value
wktb2.Cells(1, 6).Value = wktb1.Cells(1, 5).Value
wktb2.Cells(1, 9).Value = wktb1.Cells(1, 9).Value
wktb2.Cells(2, 3).Value = wktb1.Cells(1, 2).Value
wktb2.Cells(2, 6).Value = wktb1.Cells(1, 6).Value
wktb2.Cells(2, 9).Value = wktb1.Cells(1, 10).Value
wktb2.Cells(3, 3).Value = wktb1.Cells(1, 3).Value
wktb2.Cells(3, 6).Value = wktb1.Cells(1, 7).Value
wktb2.Cells(3, 9).Value = wktb1.Cells(1, 11).Value
End Sub

Vielen Dank.
Gruß Timo

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verknüpfung von Werten aus zwei Tabellen
18.08.2015 11:22:50
Werten
Hallo Timo,
selbstverständlich:

For x = 1 to Cells(Rows.Count, 1).End(xlUp).Row 'letzte Zeile
wktb2.Cells(x, 3).Value = wktb1.Cells(1, 1).Value
wktb2.Cells(x, 6).Value = wktb1.Cells(1, x+4).Value
wktb2.Cells(x, 9).Value = wktb1.Cells(1, x+8).Value
Next x
lg Matthias

AW: Verknüpfung von Werten aus zwei Tabellen
18.08.2015 11:35:36
Werten
hallo,
so?
Sub aaa()
Dim i As Integer, c As Integer, r As Integer, j As Integer
For i = 1 To 4
r = r + 1
j = i - 4
c = 0
Do While j 

Gruß
Rudi

AW: Verknüpfung von Werten aus zwei Tabellen
18.08.2015 13:27:33
Werten
Hallo Matthias, Hallo Rudi,
vielen Dank für eure Rückmeldungen.
Ich denke, eine While Schleife mit der entsprechenden Spaltenanzahl mach auf jeden Fall Sinn. Ich habe mal eine Beispieldatei sowie den neuen Code hinzugefügt, da mein erster Ansatz vielleicht etwas zu allgemein war.
Es gibt in Blatt2 unterschiedliche Bereiche. Für den einen Bereich ist bspw. nur der Wert a zu übernehmen, d.h. der dritte Zeilenwert in jeder vierten Spalte.
https://www.herber.de/bbs/user/99668.xlsm
Sub Tabellenverweis()
Dim Wrtbl1 As Worksheet
Dim Wrtbl2 As Worksheet
Set Wrtbl1 = ActiveWorkbook.Worksheets("Tabelle1")
Set Wrtbl2 = ActiveWorkbook.Worksheets("Tabelle2")
Wrtbl2.Cells(1, 3).Value = Wrtbl1.Cells(1, 1).Value
Wrtbl2.Cells(1, 6).Value = Wrtbl1.Cells(1, 5).Value
Wrtbl2.Cells(1, 9).Value = Wrtbl1.Cells(1, 9).Value
Wrtbl2.Cells(2, 3).Value = Wrtbl1.Cells(4, 1).Value
Wrtbl2.Cells(2, 6).Value = Wrtbl1.Cells(4, 5).Value
Wrtbl2.Cells(2, 9).Value = Wrtbl1.Cells(4, 9).Value
Wrtbl2.Cells(3, 3).Value = Wrtbl1.Cells(7, 1).Value
Wrtbl2.Cells(3, 6).Value = Wrtbl1.Cells(7, 5).Value
Wrtbl2.Cells(3, 9).Value = Wrtbl1.Cells(7, 9).Value
'usw
End Sub

Rudi, ich habe versucht deine Schleife dahingehend anzupassen, aber ich denke, dass ich noch nicht genau weiß wie ich die mit dem veränderten Zeilenwert in Tabellenblatt1 umgehen muss.
Danke und Grüße,
Timo

Anzeige
AW: Verknüpfung von Werten aus zwei Tabellen
18.08.2015 18:54:57
Werten
Hallo zusammen,
wie gesagt, das mit den Schleifen hat mich etwas überfordert, da in beiden Tabellenblättern die Zeilen und Spalten variabel sein müssen. Falls mir hier jemand jedoch noch weiterhelfen kann, sehr gerne!
Ansonsten habe ich mal einen Weg probiert der, der jeden dritten Wert aus einer Spalte in einer neuen Spalte auflistet. Das ist zwar auch ein deutlicher Aufwand, das Ganze für jede Spalte zu definieren, aber geht wohl immer noch schneller als jedes Feld manuell mit einer Excel-Funktion zu verknüpfen.
Da ein Makro-Aufruf nicht besonders praktikabel ist, habe ich versucht das Ganze mit einem Worksheet Change-Ereignis durchzuführen. Leider klappt das entgegen der Makro-Ausführung nicht.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
Dim i As Integer
Dim j As Integer
Dim Wert As Variant
If Not Intersect(Range("A1:M30"), Target) Is Nothing Then
For Each Zelle In Intersect(Range("A1:M30"), Target)
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
j = j + 1
Wert = Worksheets("Tabelle2").Range("A" & i).Value
Range("M" & j).Value = Wert
Wert = Worksheets("Tabelle2").Range("D" & i).Value
Range("M" & j).Value = Wert
Next i
Next Zelle
End If
End Sub

Herzlichen Dank
Gruß Timo
Anzeige

322 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige