hört sich leicht an, ich weiß aber trotzdem nicht wies geht!
Ich will mir durch ein Makro den letzten Wert einer Spalte ausgeben
lassen. Per Makro deshalb, dass ich es komfortabel in allen
Dokumenten, die ich auswerten muss, anzeigen lassen kann. In dieser
Spalte stehen ganzzahlige Werte von 0 bis 100. Mein Problem ist, dass
die Spalte in den Dokumenten verschiedene Anzahl von Zeilen hat:
einmal sind es 36999, dann 42789 o.ä. Deshalb kann ich keine konkrete
Zelle angeben, weil diese beim nächsten Dokument schon nicht mehr
stimmen würde. Gibt es dafür eine Lösung?
Danke im voraus
Viola
Markiere mal eine Zeile in Deiner Tabelle und drücke dann STRG + SHIFT + *
Dann sollte Deine ganze Tabelle markiert sein.
Das CurrentRegion-Objekt beinhaltet genau diesen Tabellenbereich, den Du
auch mit der oben genannten Tastenkombination markieren kannst.
Die letzte Zeile kannst Du so ermitteln:
Range("A1").CurrentRegion.Rows.Count
wobei A1 eine Zelle in der Tabelle sein muß, von der Du die letzte Zeile
ermitteln willst.
Gruß
Arne
"Viola Hämmer" <vhae...@web.de> schrieb im Newsbeitrag
news:ca3fb298.03041...@posting.google.com...
Viola Hämmer schrieb:
>
> Ich will mir durch ein Makro den letzten Wert einer Spalte ausgeben
> lassen. Per Makro deshalb, dass ich es komfortabel in allen
> Dokumenten, die ich auswerten muss, anzeigen lassen kann. In dieser
> Spalte stehen ganzzahlige Werte von 0 bis 100. Mein Problem ist, dass
> die Spalte in den Dokumenten verschiedene Anzahl von Zeilen hat:
> einmal sind es 36999, dann 42789 o.ä. Deshalb kann ich keine konkrete
> Zelle angeben, weil diese beim nächsten Dokument schon nicht mehr
> stimmen würde. Gibt es dafür eine Lösung?
Die letzte beschiebene Zeile de Spalte D erhältst Du z.B durch die folgende
VBA-Anweisung:
Dim lgLastRow As Long
lgLastRow = IIf(IsEmpty(Range("D65536")), _
Range("D65536").End(xlUp).Row, 65536)
--
Mit freundlichen Grüssen
Thomas Ramel
- MVP für Microsoft-Excel -
Hallo Thomas,
leider klappt auch das nicht auf Anhieb. Ich habe zwei verschiedene
Tabellenblätter: In "Spielverlauf" stehen die Daten, hier soll aus der
Spalte P der letzte Wert in die Zelle B6 des Tabellenblatts
"Auswertung eingetragen werden. Was mache ich denn mit dem Code von
Dir? Ich habe ihn kopiert und in ein Makro eingetragen, bloß leider
hatte die Ausführung nicht den gewünschten Effekt. Auch die Zeilen
einfach in die Formelzeile zu kopieren hat nicht funktioniert. Du
siehst, ich habe wirklich nicht viel Ahnung von Excel oder VBA -
vielleicht kannst Du mir ja noch einen leichter verständlichen Tipp
für mein Problem geben!
Danke im voraus
Viola
Den folgenden Code kannst Du in ein Makro einfügen:
Dim wbk as Excel.Workbook
Set wbk = ActiveWorkbook
Dim sht as Excel.Worksheet
set sht = wbk.Worksheets("Spielverlauf")
sht.cells(6, 2).value = sht.cells(sht.Range("P1").CurrentRegion.Rows.Count,
16).Value
Das bedeutet:
Wähle das Tabellenblatt "Spielverlauf" aus (set sht =
wbk.Worksheets("Spielverlauf"))
und weise der Zelle B6 (sht.cells(6, 2).value) den letzten Wert aus der
Spalte P zu (sht.cells(sht.Range("P1").CurrentRegion.Rows.Count, 16).Value)
Gruß
Arne Janning