Code verbessern
03.07.2015 19:15:11
Andi
habe einen VBA Code den ich der nicht ganz Funktioniert.
Hier geht es darum das ich zwei Tabellen habe, und in der einen Tabelle2 möchte ich die Daten durch Suchkriterium (wie Sverweis oder Index) in die erste Tabelle ausgeben.
Da die Daten in der Tabelle1 importiert werden und die Zellbezüge mit Sverweis sich ändern je nach importierten Zeilenanzahl muss ich das über VBA machen.
Wie kann mann das Suchkriterium variabel Programmieren je nachdem wieviel Zeilen importiert wurden.
Public Sub WieSverweis()
Dim MyDic As Object
Dim Matrix As Variant
Dim Suchkriterium As Variant
Dim L As Long
Dim Ausgabe As Variant
Dim letztezeile As Integer
Set MyDic = CreateObject("Scripting.Dictionary")
Matrix = Sheets("Tabelle1").Range("A:Z")
letztezeile = Worksheets("Tabelle2").Cells(Rows.Count, 6).End(xlUp).Row
Suchkriterium = Sheets("Tabelle2").Range("F6" & letztezeile) 'geht noch nicht
For L = 1 To UBound(Matrix)
MyDic(Matrix(L, 1)) = Array(Matrix(L, 2), Matrix(L, 3), Matrix(L, 4), Matrix(L, 5), Matrix( _
_
L, 6), Matrix(L, 7), Matrix(L, 8))
'_________________________Spaltenindex2_Spaltenindex3_Spaltenindex4_Spaltenindex5
Next
ReDim Ausgabe(1 To UBound(Suchkriterium), 1 To 8)
On Error Resume Next
For L = 1 To UBound(Suchkriterium)
Ausgabe(L, 2) = Suchkriterium(L, 2)
Ausgabe(L, 1) = MyDic(Suchkriterium(L, 1))(0)
Ausgabe(L, 2) = MyDic(Suchkriterium(L, 1))(1)
Ausgabe(L, 3) = MyDic(Suchkriterium(L, 1))(2)
Ausgabe(L, 4) = MyDic(Suchkriterium(L, 1))(3)
Ausgabe(L, 5) = MyDic(Suchkriterium(L, 1))(4)
Ausgabe(L, 6) = MyDic(Suchkriterium(L, 1))(5)
Ausgabe(L, 7) = MyDic(Suchkriterium(L, 1))(6)
Ausgabe(L, 8) = MyDic(Suchkriterium(L, 1))(7)
Ausgabe(L, 9) = MyDic(Suchkriterium(L, 1))(8)
Ausgabe(L, 10) = MyDic(Suchkriterium(L, 1))(9)
Next
Sheets("Ziel").Range("G6").Resize(UBound(Suchkriterium), 8) = Ausgabe 'Hier werden die _
Ergebnisse ausgegeben.Anpassen.
End Sub