Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
964to968
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
964to968
964to968
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Jew. vorletzten Wert (abgel. aus Target) speichern

Jew. vorletzten Wert (abgel. aus Target) speichern
03.04.2008 21:37:00
Andreas
Hallo herber Fans,
wie ist es möglich, den jeweils vorletzten Wert (abgeleitet aus Target, in diesem Falle Target.Row) als Variable zu speichern und dementsprechend auch abrufen zu können?
Dim ZielZeile, vorlZielZeile as Long
ZielZeile = Target.Row
vorlZielZeile = (vorl.)Target.Row
Beispiel:
Klick in Zelle A5: ZielZeile = 5
Klick in Zelle A6: ZielZeile = 6, vorlZielZeile = 5
Klick in Zelle B17: ZielZeile = 17, vorlZielZeile = 6
Bei der Suche von Textstrings kenne ich die Findnext Methode die mit Set kombiniert wird, um das zu erreichen. Aber für Target weiß ich nichts vergleichbares zur Umsetzung.
Wie kann ich das realisieren?
Vielen Dank für Eure Anregungen!
Grüße, Andreas

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Jew. vorletzten Wert (abgel. aus Target) speic
03.04.2008 22:08:56
Erich
Hallo Andreas,
probier mal diesen Code (in den Code einer leeren Tabelle kopieren).
In den Spalten A bis D werden die Zeilennummern vorlZielZeile und ZielZeile
jeweils für Change und SelectionChange protokolliert.

Option Explicit
Dim lngLastChange As Long, lngLastSel As Long
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngZ As Long
lngZ = Cells(Rows.Count, 1).End(xlUp).Row + 1
'   MsgBox "A lngLastChange " & lngLastChange
Application.EnableEvents = False
Cells(lngZ, 1) = lngLastChange
lngLastChange = Target.Row
Cells(lngZ, 2) = lngLastChange
Application.EnableEvents = True
'   MsgBox "B lngLastChange " & lngLastChange
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lngZ As Long
lngZ = Cells(Rows.Count, 3).End(xlUp).Row + 1
'   MsgBox "X lngLastSel " & lngLastSel
Application.EnableEvents = False
Cells(lngZ, 3) = lngLastSel
lngLastSel = Target.Row
Cells(lngZ, 4) = lngLastSel
Application.EnableEvents = True
'   MsgBox "Y lngLastSel " & lngLastSel
End Sub

Wichtig ist hier nur, dass die beiden Last-Variablen oberhalb der Prozeduren deklariert werden.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Jew. vorletzten Wert (abgel. aus Target) speic
03.04.2008 22:12:16
Josef
Hallo ANdreas,
meinst du so?
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit
Public lastRow As Long
Public ntlastRow As Long

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ntlastRow = lastRow
lastRow = Target(1, 1).Row

MsgBox "Letzte Zeile: " & vbTab & lastRow & vbLf & _
    "Vorletzte Zeile :" & vbTab & ntlastRow
End Sub


Gruß Sepp



Anzeige
AW: @ Sepp
03.04.2008 22:27:32
Erich
Hallo Sepp,
was hältst du von diesen beiden Versionen?

Option Explicit
Dim lastRow As Long     ' braucht nicht Public zu sein
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "Letzte Zeile: " & vbTab & Target.Row & vbLf & _
"Vorletzte Zeile :" & vbTab & lastRow
lastRow = Target(1, 1).Row
End Sub
' oder
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ntlastRow As Long   ' kann lokal deklariert sein
ntlastRow = lastRow
lastRow = Target(1, 1).Row
MsgBox "Letzte Zeile: " & vbTab & lastRow & vbLf & _
"Vorletzte Zeile :" & vbTab & ntlastRow
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: @ Sepp
03.04.2008 22:57:14
Josef
Hallo Erich,
ich sehe eigentlich keinen Unterschied zu meinem Code.
"Public" habe ich die Variablen deshalb deklariert, weil ich ja nicht weiß, wie Andreas diese weiterverwenden will.

Gruß Sepp



AW: @ Sepp wg. "Public"
04.04.2008 11:16:09
Erich
Hallo Sepp,
das "Public" könnte in die Irre führen.
Wenn die Deklaration im Modul einem Klassenmodul (einer Tabelle oder der Mappe) steht,
ist sie trotzdem in anderen Modulen nicht erreichbar.
Die Public-Deklaration müsste in einem "normalen" Modul stehen, dann steht sie global zur Verfügung.
Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: @ Sepp wg. "Public"
04.04.2008 11:29:00
Andreas
Hallo Ihr beiden fleißigen Antworter,
vielen Dank für Eure Lösungen. Beide funktionieren sehr gut! Das mit der Variablen Deklaration und deren Einfluß auf die (globale) Weiterverwendungsmöglichkeit habe ich just in dieser Woche begriffen. Konnte also auch Eurer bilateralen Fachdiskussion folgen.
Habt beide ein schönes Wochenende.
Grüße, Andreas

Danke für Rückmeldung - auch schönes WoEnde! (oT)
04.04.2008 11:47:00
Erich

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige