Ich möchte mit Hilfe eines Makro-Steuerelements einen in VBA programmierten SVERWEIS durchführen, der in einer definierten Spalte und einer definierten Zelle beginnen soll bis er in der Spalte auf die erste leere Zelle stösst. Die Daten für den SVERWEIS stehen in einem anderen Tabellenblatt.
Bisher hat die Logik soweit funktioniert, da ich den SVERWEIS von Zelle X bis Y mit ausreichend Puffer vordefiniert habe. Anbei der VBA ohne Schleife, welcher für den ersten Wurf ok war:
Sub Update_ZSLOB()
Range("E5").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],'Datainput ZSLOB'!C[-2]:C[1],4,0)"
Selection.AutoFill Destination:=Range("E5:E132")
End Sub
Damit ich nun nicht jedes Mal die Range im VBA anpassen muss, würde ich gerne eine Schleife einbauen bis die Schleife auf eine leere Zelle stösst. Ich habe mich mit meinem beschränkten Wissen mal auf die Suche gemacht und habe folgenden VBA geschrieben, leider ohne Erfolg:
Sub Update_ZSLOB()
With Sheets ("Master Planning")
Dim z As Integer
Dim j As Integer
Dim leer As Integer
z = 5
j = 5
Do
If .Cells(z, 3) "" Then
leer = False
Else
leer = True
End If
Do
.Cells(j, 5).FormulaLocal = "=SVERWEIS('Master Planning'!b;'Datainput ZSLOB'!C6: _
F1001;4;FALSCH)"
b = b + 1
Loop Until leer = True
End With
End Sub
Ich wäre froh, wenn mir jemand einen Tip geben könnte, wie ich die Schleife mit dem SVERWEIS zum Laufen bekomme.
Zur Ausgangslage:
- Das Ergebnis des SVERWEIS soll im Tabellenblatt 'Master Planning'! in der Zelle E5 ausgegeben werden.
- Das Suchkriterium für den SVERWEIS steht im Tabellenblatt 'Master Planning'! in Zelle C5.
- Die Matrix mit den Vergleichs- und Zieldaten befindet sich im Tabellenblatt 'Datainput ZSLOB'!C:F
- Der Spaltenindex = 4
- Der Bereich_Verweis = 0 (Falsch)
Im Voraus Merci für Eure Hilfe,
Janoschig