Letzte Zeile ermitteln und autom. Formel einsetzen
20.01.2004 15:58:19
Stefan
folgendes Problem mit meiner Tabelle:
1) bestimmt Zeilen sollen gelöscht werden
2) neuen Spalte einfügen
3) Formel in die neue Spalte einfügen - in den verbliebenen Zeilen
Über Makro aufnehmen habe ich folgende Funktionen realisiert:
1) ok
2) ok
3) Formel einfügen geht - Problem: Ich will nicht in der gesamten Spalte die Formel einfügen sondern "nur" in dem Bereich in dem auch Werte in den Zeilen stehen - und der variiert immer. D.h. es kann von 10 - 40000 Zeilen alles dabei sein. Deshalb sollte vorher die letzte Zeiler ermittelt werden und dann nur von Zeile 2 bis zur letzten Zeile die Formel eingefügt werden.
Folgendes habe ich schon im Forum gefunden um die letzte Zeile ermitteln zu können:
LetzteZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
-> Aber ich bekomme es leider nicht hin...
Hier der Auszug aus meinem Makro:
Range("C2").Select
ActiveCell.FormulaR1C1 = _
"=INDEX(Tabelle2!R1C[-2]:R999C[-2],IF(ISERROR(MATCH(RC[-2],Tabelle2!R1C[-2]:R999C[-2],0)),MATCH(RC[-2],Tabelle2!R1C[-1]:R999C[-1],0),MATCH(RC[-2],Tabelle2!R1C[-2]:R999C[-2],0)))"
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C3388"), Type:=xlFillDefault
Range("C2:C3388").Select
Wie kann ich das Makro verändern damit Excel zuerst die letzte Zeile ermittelt und dann nur im Bereich Zeile 2 bis letzte Zeile diese Formel einsetzt?
Vorab besten DANK!
Hier das gesamte Makro:
Sub Makro5()
' Makro5 Makro
' Makro am 20.01.04 von Stefan Fackler aufgezeichnet
Sheets("Tabelle2").Select
ActiveWindow.LargeScroll ToRight:=3
Columns("N:N").Select
Selection.Cut
Columns("A:A").Select
Selection.Insert Shift:=xlToRight
ActiveWindow.LargeScroll ToRight:=6
Columns("AD:AD").Select
Selection.Cut
Columns("B:B").Select
Selection.Insert Shift:=xlToRight
Columns("C:C").Select
Selection.Insert Shift:=xlToRight
Range("C2").Select
ActiveCell.FormulaR1C1 = _
"=INDEX(Tabelle2!R1C[-2]:R999C[-2],IF(ISERROR(MATCH(RC[-2],Tabelle2!R1C[-2]:R999C[-2],0)),MATCH(RC[-2],Tabelle2!R1C[-1]:R999C[-1],0),MATCH(RC[-2],Tabelle2!R1C[-2]:R999C[-2],0)))"
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C3388"), Type:=xlFillDefault
Range("C2:C3388").Select
ActiveWindow.ScrollRow = 1
Range("B1").Select
Selection.Copy
Range("C1").Select
ActiveSheet.Paste
Columns("C:C").Select
Application.CutCopyMode = False
Selection.Copy
Columns("B:B").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Columns("C:C").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
End Sub