Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
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

Zeile markieren

Zeile markieren
07.07.2018 12:31:29
Nicolaj
möchte in einer Exel Tabelle eine Zeile markieren wenn in die Zelle A1 gefüllt ist
(brauche dann nicht die Zeile mit einem Gummieband markieren um in dieser zu arbeiten)
(In einer so markierte Zeile kann ich eine einzelne Zelle nicht kopieren)
(wenn ich eine Zelle kopieren möchte, muß ich diese Funktion wieder abschalten)
daher möchte ich diese Funktion abschalten, wenn die Zelle A1 leer ist.
Beim Aufruf eines Reiters mit dem Befehl "Code anzeigen" habe ich folgendes eingetragen:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If TypeOf Target Is Range Then
Target(1, 1).EntireRow.Select
Target(1, 1).Activate
End If
End Sub

Wie kann ich diese Funkion bei Bedarf abschalten? A1 leer oder A1 gefüllt(z.B.mit xx
vielen Dank
Nicolaj

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Doppelklick schon probiert ... owT
07.07.2018 12:41:37
Matthias
AW: Zeile markieren
07.07.2018 12:45:31
Daniel
Hi
mit der zusätzlichen Abfrage:
If Cells(Target.Row, 1) = "xx" then
kleiner Tip noch am Rande:
diese Eventmarkos können sich selbst aufrufen.
Dh wenn du im Makro selbst die Selektion veränderst, wird dieses Makro nochmal gestartet.
wenn man dann nicht sauber programmiert, kann das zu unerwünschen Effekten (flackern, Verzögerung) bis in zu einer Endlosschleife führen.
Deswegen solltest du die Automatischen Events abschalten, bevor du die ganze Zeile selektierst.
dazu gibt es den Befehl: Application.EnableEvents = False
hinterher musst du die Events natürlich wieder aktivieren:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If TypeOf Target Is Range Then
if Cells(Target.Row, 1) = "xx" then
Application.EnableEvents = False
Target(1, 1).EntireRow.Select
Target(1, 1).Activate
Application.EnableEvents = True
end if
End If
End Sub

sollten die Events mal ausgeschaltet bleiben, z.b. beim Testen nach einem Fehler, oder weil du es vergessen hast, musst du das Application.EnableEvent = true einmal im Direktfenster ausführen.
Gruß Daniel
Anzeige
temporär abschalten -> Entwurfsmodus
07.07.2018 12:49:14
Daniel
Hi
wenn du diese Funktion für eine bestimmt Aktion ausschalten willst, dann klicke im Menüpunkt
Entwicklertools - Steuerelmente - Entwurfsmodus
wenn dieser aktiv ist, werden die Eventmakros wie dein Selection-Change nicht ausgeführt.
Gruß Daniel
oder einfach so ...
07.07.2018 13:00:54
Matthias
Hallo
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Cells(Target.Row, 1)  "xx" Then
If TypeOf Target Is Range Then Target(1, 1).EntireRow.Select: Target(1, 1).Activate
End If
End Sub
Der Doppelklick bleibt Dir ja trotzdem zur Verfügung
Gruß Matthias
hatte ich ja auch schon vorgeschlagen...
07.07.2018 13:20:10
Daniel
außerdem, wenn die Abfrage:
If TypeOf Target Is Range
tatsächlich erforderlich sein sollte um Fehlerabbrüche zu vermeiden, weil auf dem Blatt ein Objekt existiert, welches keine Zelle ist, aber trotzdem beim Anklicken das selection-Change-Event auslöst und als Target übernommen wird,
dann muss diese Abfrage auf jeden fall vor dem If Cells(Target.Row, 1) "xx" Then erfolgen, um den Fehlerabbruch zu vermeiden..
Ansonsten könnte man diese Sicherheitsabfrage auch einfach weglassen.
mir fällt grad kein Objekt ein, das da infrage käme.
Gruß Daniel
Anzeige
hatte ich ja auch schon vorgeschlagen...
07.07.2018 13:20:11
Daniel
außerdem, wenn die Abfrage:
If TypeOf Target Is Range
tatsächlich erforderlich sein sollte um Fehlerabbrüche zu vermeiden, weil auf dem Blatt ein Objekt existiert, welches keine Zelle ist, aber trotzdem beim Anklicken das selection-Change-Event auslöst und als Target übernommen wird,
dann muss diese Abfrage auf jeden fall vor dem If Cells(Target.Row, 1) "xx" Then erfolgen, um den Fehlerabbruch zu vermeiden..
Ansonsten könnte man diese Sicherheitsabfrage auch einfach weglassen.
mir fällt grad kein Objekt ein, das da infrage käme.
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige