Hallo,
wenn du eine intelligente Tabelle benutzt und du die auf "Vorrat" dimensioniert hast, sprich du hast am Ende Leerzeilen, dann funktioniert das Feststellen der letzten belegten Zelle auf diese Weise nicht. Du bekommst als Wert immer das Ende der intelligenten Tabelle angezeigt.
Beispiel: Deine intelligente Tabelle geht bis Zeile 100. Der letzte Werteeintrag ist in D10. Du bekommst in deiner Variablen den Wert 100 angezeigt, da die intelligente Tabelle bis Zeile 100 geht.
Übrigens sollte man das bei intelligenten Tabellen nicht machen. Das widerspricht ja ihrem eigentlichen Sinn. Die Tabelle ist/sollte immer so viele Zeilen haben, wie es auch Einträge gibt.
Sinn dieser intelligenten Tabelle ist es ja, dass sie sich automatisch erweitert, wenn am Ende ein neuer Eintrag angelegt wird.
Zudem deklarierst du deine Variable für die letzte Zeile als String - das ist Unsinn. Diese Variable enthält die Zeilennummer und das ist nun mal kein Text sondern eine Zahl. Deshalb Datentyp Long verwenden.
Versuch es mal so:
Option Explicit
Sub DatenAnAntrag()
Dim letzteZeile As Long
letzteZeile = Tabelle1.Columns("D").Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious).Row
Tabelle5.Range("B25").Value = Tabelle1.Cells(letzteZeile, "D").Value
Debug.Print Now
End Sub
Gruß Werner
|