|  
                                             
	Hallo soupy, 
	ist es richtig, dass für jedes i das größte j, für das deine Forderung erfüllt wird, für die Kopie Worksheets("Tabelle1").Cells(i, 13).Value = Worksheets("Tabelle2").Cells(j, 6).Value verwendet werden soll, weil ja dein Code im Falle mehrere geeignetet j die früheren Kopien überschreibt. 
	Wenn du deine j-Schleife von hinten beginnst, könntest du dann im Falle einer Übereinstimmung sofort mit Exit for aussteigen und Zeit sparen. Ich fürchte, dass das Makro dennoch viel Zeit braucht. Versuche daher mal einen anderen Ansatz mit dem Find-Objekt: 
Sub Zuordnung()
With Application
    .Calculation = xlCalculationManual
    .ScreenUpdating = False
End With
Set t1 = ActiveWorkbook.Worksheets("Tabelle3")
Set t2 = ActiveWorkbook.Worksheets("Tabelle3")
For i = 2 To t1.Cells(Rows.Count, 1).End(xlUp).Rows.Row
    Set f = t1.Columns("E").Find(What:=t2.Cells(i, 1))
    If Not f Is Nothing Then
        Adr1 = f.Address
        Do
            j = f.Row
            Set f = t1.Columns("E").FindNext(f)
        Loop While Not f Is Nothing And f.Address <> Adr1
        For k = 2 To 5
            If t1.Cells(i, k + 5) = t2.Cells(j, k) Then Exit For
        Next k
        If k < 6 Then t1.Cells(i, 13) = t2.Cells(j, 6)
    End If
Next i
With Application
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With
End Sub
	Wenn nur eine Übereinstimmung möglich ist oder die erste verwendet werden soll, kannst du auf die fest und kursiv dargestellen Zeilen verzichten. 
	Rückmeldung wäre schön. 
	Gruß 
	Holger 
     |