PDA

Vollständige Version anzeigen : Schleife programmieren


e9janna
23.04.2009, 15:24
Hallo zusammen,

habe ein glaube ich ziemlich einfaches programmier Problem. Dazu habe ich eine kleine Testdatei erstellt. In Tabelle 1 dieser Datei ist die Ursprungstabelle mit den Artikeln 1 bis 5. In Tabelle 2 der Tabelle ist das Ziel mit den Artikeln 1 bis 5 (welche aber durcheinander gewürfelt sind). Nun möchte ich, mit einem Makro, die Daten hinter den einzelnen Artikeln der Tabelle 1, den Artikeln der Tabelle 2 zuordnen.

Dazu habe ich schon mal angefangen ein Makro zu programmieren, welches allerdings immer nur die erste Artikelnummer berücksichtigt. Kann mir bei diesem Problem jemand helfen?

jinx
23.04.2009, 15:29
Moin, e9janna,

warum nutzt Du nicht die Tabellenfunktion SVerweis?

Sub Datentransfer()

Dim k As Integer
Dim ws1 As Worksheet
Dim ws2 As Worksheet

Set ws1 = Worksheets("Tabelle1")
Set ws2 = Worksheets("Tabelle2")

For k = 4 To ws1.Cells(Rows.Count, "A").End(xlUp).Row
l = 4 'Zeilenindex ws2
While ws1.Cells(l, 1) <> 0
If ws1.Cells(k, 1).Value = ws2.Cells(l, 1).Value Then
ws2.Cells(l, 2).Value = ws1.Cells(k, 2).Value
ws2.Cells(l, 3).Value = ws1.Cells(k, 4).Value
ws2.Cells(l, 4).Value = ws1.Cells(k, 3).Value

End If
l = l + 1
Wend
Next k

End Sub

EarlFred
23.04.2009, 15:29
Hallo e9janna,

muss es wirklich ein Makro sein? Das von Dir geschilderte Problem passt 100%ig auf die Funktion Sverweis:

Formel in B4:D8
=SVERWEIS($A4;Tabelle1!$A$4:$D$8;SPALTE();0)
Bestätigen mit Strg+Enter

Grüße
EarlFred

e9janna
23.04.2009, 15:45
Vielen Dank für die schnellen Antworten.

Leider lässt sich nicht mit Sverweis arbeiten, da sich ständig der Name der Quelltabelle ändert.