ich habe unten stehenden Code der auch macht was er soll :-)
Das Problem ist nur, das er nur Spalte A von Datei A mit Spalte A von Datei B vergleicht.
Das führt zu Fehlern. Um die Fehler zu vermeiden müssten 2 Spalten verglichen werden.
Korrekter Vergleich: Wenn Spalte A von Datei A mit Spalte A von Datei B und Spalte F von Datei A mit Spalte F von Datei B identisch sind, dann sollen die entsprechenden Werte aus den Zeilen kopiert werden.
Hab es leider nicht hingefrikelt bekommen.
Public Sub vlookup()
Dim strDatName As Variant
Dim wbA As Workbook, wbB As Workbook
Dim wsA As Worksheet, wsB As Worksheet
Dim iZeile As Long, letzteZeile As Long
Dim Suchnummer
Worksheets("Jan.").Unprotect Password:=""
getMoreSpeed True
' Dateinnamen definieren
strDatName = Application.GetOpenFilename("ExcelFiles (*.XLS), *.xls")
If strDatName False Then
Set wbB = Workbooks.Open(strDatName)
Set wbA = ThisWorkbook
Else
Exit Sub
End If
' Tabellennamen definieren
Set wsA = wbA.Worksheets(2)
Set wsB = wbB.Worksheets(2)
' Suche
For iZeile = 5 To wsA.Range("A65536").End(xlUp).Row
Suchnummer = wsA.Cells(iZeile, 1)
letzteZeile = wsB.Range("A65536").End(xlUp).Row
If WorksheetFunction.CountIf(wsB.Range("A5:A" & letzteZeile), Suchnummer) > 0 Then
wsA.Cells(iZeile, 8) = WorksheetFunction.vlookup(Suchnummer, wsB.Range("A4:H" & _
letzteZeile), 8, False)
wsA.Cells(iZeile, 9) = WorksheetFunction.vlookup(Suchnummer, wsB.Range("A4:I" & _
letzteZeile), 9, False)
End If
Next iZeile
' Datei B schliessen
wbB.Close
getMoreSpeed False
Worksheets("Jan.").Protect Password:=""
End Sub
Bin für Anregungen dankbar!Gruß
Kai