Ich habe Probleme mit der indirekten Adressierung und möchte Euch
bitten, mal zu schauen, ob Ihr helfen könnt.
Die nachfolgende Anweisung habe ich während der Aufzeichnung in die Zelle B3 eingefügt.
Sie holt einen Wert aus der Tabelle PB
=WENN(ISTNV(SVERWEIS($A3;PB!$A$2:$G$25;7;FALSCH));0;SVERWEIS($A3;PB!$A$2:$G$25;7;FALSCH))
im Makro steht dann:
Range("B3").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISNA(VLOOKUP(RC1,PB!R2C1:R25C7,7,FALSE)),0,VLOOKUP(RC1,PB!R2C1:R25C7,7,FALSE))"
Range("B3").Select
klappt erstmal prima, da aber PB zwar immer eine feste Spaltenzahl aber eine unterschiedliche Zeilenzahl haben kann,
wollte ich das ganze variabel halten und habe mir entsprechende Variablen eingerichtet:
Sheets("PB").Select
With Worksheets("PB")
PBLZ = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
End With
PBBA = Cells(2, 1).Address
PBBE = Cells(PBLZ, 7).Address
PBTAB = "PB!" & PBBA & ":" & PBBE Ergebnis: "PB!$A$2:$G$25"
wenn ich jetzt im Macro statt der direkten Adresse PB!R2C1:R25C7 meine Variable PBTAB einsetze,
kommt als Ergebnis #NAME? . Der gleiche Fehler erscheint, wenn ich testweise PBTAB mit PB!R2C1:R25C7
belege. Excel verkraftet an der Stelle anscheinen keine Variable oder die Syntax sieht dann anders aus.
ActiveCell.FormulaR1C1 = _
"=IF(ISNA(VLOOKUP(RC1,PBTAB,7,FALSE)),0,VLOOKUP(RC1,PBTAB,7,FALSE))"
Selection.AutoFill Destination:=Range(AusPBBer), Type:=xlFillDefault
Woran kann das liegen ?
Beim anschließenden automatischen Füllen der darunter liegenden Zellen verfahre ich ähnlich.
Die Variable AusPBBer im Range wird akzeptiert.
Sheets("Auswertung").Select
With Worksheets("Auswertung")
Auslz = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
End With
AusPBAnf = Cells(3, 2).Address
AusPBEnd = Cells(Auslz, 2).Address
AusPBBer = AusPBAnf & ":" & AusPBEnd
Ich bedanke mich schon im voraus für Eure Bemühungen.
Gruß Uwe