Hi,
da ich deinen Code nicht kenne, mal ein simples Beispiel: in einem Standardmodul ist die Variable lngZeile als Public-Variable deklariert:
Option Explicit
Public lngZeile As Long
Im Codemodul des Tabellenblattes steht folgender Code:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "letzte Zeile war " & lngZeile
lngZeile = Target.Row
End Sub
Was soll der Code machen: bei Klick in eine Zelle wird eine MsgBox ausgegeben und darin soll die vorhergehende Zeilennummer angezeigt werden.
Was passiert: beim 1. Klick wird 0 ausgegeben, weil die Variable lngZeile noch nicht belegt ist. Bei jedem Klick in eine weitere Zelle wird die Zeile der vorhergehenden Zelle ausgegeben - mit anderen Worten: im Selection_Change-Ereignis wird nach Ausgabe der vorhergehenden Zeile die Zeile der angeklickten Zelle auf die Variable lngZeile geschrieben und steht beim nächsten Klick zur Verfügung.
Wenn du die Arbeitsmappe schließt und wieder öffnest, ist die Variable erstmal nicht belegt - falls du sie in dem Fall auch zwischenspeichern willst, sodass sie nach dem Öffnen belegt ist, dann müsstest du sie irgendwo in einem Tabellenblatt ablegen und nach dem Öffnen von dort zurücklesen, weil Variablen immer nur zur Laufzeit belegt sind.
Bis später, Karin