Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
364to368
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
364to368
364to368
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Letzte Zeile ermitteln und autom. Formel einsetzen

Letzte Zeile ermitteln und autom. Formel einsetzen
20.01.2004 15:58:19
Stefan
Hallo,
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

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Letzte Zeile ermitteln und autom. Formel einsetzen
20.01.2004 16:31:05
Jürgen Schaetzke
Hallo Stefan,
wäre es nicht einfacher und lesbarer, wenn du die letzte Zelle separat ermittelst?
Columnname="C" 'z.B.
LastCell = wks.Range(columnName & "65536").End(xlUp).Offset(-0, 0).Address
Range("C2:" & LastCell).Select
Und danach könntest du anstatt mit Activecell mit Selection arbeiten.
Ciao Jürgen
Anzeige

320 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige