Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema ToggleButton
BildScreenshot zu ToggleButton ToggleButton-Seite mit Beispielarbeitsmappe aufrufen

VBA, Zeilenmarkierung farbig, an oder aus


Betrifft: VBA, Zeilenmarkierung farbig, an oder aus von: Dieter(Drummer)
Geschrieben am: 21.09.2017 18:10:49

Guten Abend Spezialisten,

mit folgendem Code unter "DieseArbeitsmappe", wird aktive Zeile gelb und das funktioniert sehr gut.

Nun möchte ich die Farbmarkierung per einem Button einschalten können und mit einem anderen Button abschalten können.
Wie muss der Code für die zwei Buttons dann sein?
Mit der Bitte um Hilfe, grüßt,
Dieter(Drummer)
Jetziger Code:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Rows.Interior.ColorIndex = xlColorIndexNone
Rows(Target.Row).Interior.ColorIndex = 6
End Sub

  

Betrifft: AW: VBA, Zeilenmarkierung farbig, an oder aus von: ChrisL
Geschrieben am: 21.09.2017 18:27:20

Hi

Da würde ich ein Kontrollkästchen aus den Steuerelementen Formular nehmen und mit Zelle verküpfen. Dann brauchst du nur noch den WAHR/FALSCH Wert aus der Zelle abfragen. (Eine Variable ginge spätestens beim Schliessen/Öffnen verloren.)

If Worksheets("XY").Range("A1") Then Rows(Target.Row).Interior.ColorIndex = 6

cu
Chris


  

Betrifft: AW: Danke Chris, funktioniert perfekt ... von: Dieter(Drummer)
Geschrieben am: 21.09.2017 18:39:08

noch einen schönen Abend.
Gruß, Dieter(Drummer)


  

Betrifft: AW: VBA, Zeilenmarkierung farbig, an oder aus von: Daniel
Geschrieben am: 21.09.2017 18:43:21

Hi
das Thema wurde schon oft diskutiert.
1. such dir zwei freie Zellen auf deinem Blatt (beispielsweise A1 und A2)

2. Erstelle einen ActiveX-ToggleButton (den mit den 2 Zuständen) und verknüpfe die Ausgabezelle (Eigenschaft LinkedCell) mit einer der beiden Zellen (z.B. A1)
in dieser Zelle steht jetzt WAHR wenn der Button aktiv ist und FALSCH, wenn nicht

3. Ändere dein Selection-Change-Event so ab, dass nur noch die Zeilennummer der aktiven Zeile in die zweite Zelle (A2) geschrieben wird:
Range("A2").Value = Target.Row

4. richte für alle benötigten Zellen eine Bedingte Formatierung ein mit folgender Formel als Regel:
=Und(A1;Zeile()=$A$2)
und der gewünschten Hintergrundfarbe.

fertig.
über den Togglebutton kannst du jetzt die Markierung jederzeit ein- und auschalten.
Diese Methode hat zudem den Vorteil, dass die Zellen zusätzlich normal mit einer Hintergrundfarbe formatiert sein dürfen und diese Formatierung erhalten bleibt (bei deiner Methode würde diese dann gelöscht)

in deiner Excelversion dürfen die beiden Zellen auch auf einem anderen Blatt liegen wenn sie dich stören.

Wenn die Anzeige nicht korrekt aktualisert wird, ergänze das Selection-Change-Event am Ende noch um den Befehl Application.ScreenUpdating = True


statt dem ToggleButton kannst du auch eine Checkbox verwenden, die funktionert genauso, ist aber vielleicht deutlicher mit der entsprechenden Beschriftung ("Zeilenmarkierung ein")

Gruß Daniel


  

Betrifft: AW: Danke Daniel, gute Tipps und ... von: Dieter(Drummer)
Geschrieben am: 21.09.2017 18:53:24

... Hinweise. Werde es in Ruhe umsetzen.
Danke und einen schönen Abend.

Gruß, Dieter(Drummer)