Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1596to1600
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
Inhaltsverzeichnis

Fadenkreuz setzen/entfernen

Fadenkreuz setzen/entfernen
10.12.2017 22:09:50
Gerhard
Hallo,
mit diesem Code (von Nepumuk) markiere ich mit bedingter Formatierung
=ZEILE()=ZE meine ausgewählte Zeile per TAB oder Return. Das funktioniert gut.
Was mir fehlt: wenn ich in eine andere Zelle/Zeile klicke, dann soll die vorherige Zeile wieder entfärbt werden. Also, die bed. Format. soll entfernt werden.
Ist es für jmd. möglich, dies im Code zu ergänzen?
Gruß
Gerhard
https://www.herber.de/bbs/user/118245.xlsm
Option Explicit
Private Declare PtrSafe Function GetAsyncKeyState Lib "user32.dll" ( _
ByVal vKey As Long) As Integer

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If GetAsyncKeyState(vbKeyReturn)  0 Or GetAsyncKeyState(vbKeyTab)  0 Then
ActiveWorkbook.Names.Add Name:="ZE", RefersToR1C1:=Target.Row
End If
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ergänzung: Fadenkreuz setzen/entfernen
10.12.2017 22:21:24
Gerhard
zum besseren Verständnis:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
ActiveWorkbook.Names.Add Name:="ZE", RefersToR1C1:=Target.Row
Application.ScreenUpdating = True
End Sub
mit diesem Code wird die Färbung nur per Klick gesetzt und auch wieder entfernt.
Aber in meiner Anwendung werden viele benachbarte Zellen ausgefüllt. Dann wird bei jedem Klick gerechnet (viele abhängige Formeln...). Deshalb ist die Lösung mit TAB oder Return wesentlich schneller. Die Datei wird in einem langsamen Netzwerk eingesetzt:
Gerhard
Anzeige
AW: Ergänzung: Fadenkreuz setzen/entfernen
11.12.2017 00:07:39
fcs
Hallo Gerhard,
probiere es mal so.
Der Name "ZE" wird nur neu gesetzt/angelegt, wenn er fehlt oder die Zeilennummer der selektierten Zelle ungleich dem Wert von "ZE" ist.
Somit wird "ZE" nur bei Zeilenwehsel neu gesetzt und das Problem mit dem Neuberechnen der bedingen Formatierungen sollte sich reduzieren.
Gruß
Franz
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If fncCheckName("ZE") = True Then
If Target.Row  Val(Mid(ActiveWorkbook.Names("ZE").Value, 2)) Then
Application.ScreenUpdating = False
ActiveWorkbook.Names("ZE").RefersToR1C1 = Target.Row
Application.ScreenUpdating = True
End If
Else
Application.ScreenUpdating = False
ActiveWorkbook.Names.Add Name:="ZE", RefersToR1C1:=Target.Row
Application.ScreenUpdating = True
End If
End Sub
Function fncCheckName(sName As String) As Boolean
Dim objName As Name
fncCheckName = False
On Error GoTo Fehler
Set objName = ActiveWorkbook.Names("ZE")
fncCheckName = True
Fehler:
End Function

Anzeige
AW: Ergänzung: Fadenkreuz setzen/entfernen
11.12.2017 00:35:08
Gerhard
Hallo Franz,
Danke für die Antwort zu später/früher Stunde! In der Testdatei funktioniert das gut.
Werde diese Lösung auch in der umfangreichen Orig.-Datei testen.
Ich gebe dann nochmals Bescheid.
Gruß
Gerhard
Kurzer Code
11.12.2017 09:37:55
RPP63
Moin!
Alternative:
Formel der bed. Form.: =ZEILE()=AktiveZeile
Im Bereich B18:J33 wird die aktive Zeile markiert.
Beim Verlassen des Bereichs wird nix markiert:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("B18:J33")) Is Nothing Then
ThisWorkbook.Names.Add Name:="AktiveZeile", RefersToR1C1:=Target.Row
Else
On Error Resume Next
ThisWorkbook.Names("AktiveZeile").Delete
On Error GoTo 0
End If
End Sub
Gruß Ralf
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige