Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Funktion mit Button EIN/AUs schalten

VBA Funktion mit Button EIN/AUs schalten
11.01.2023 15:16:24
oliver
Hallo zusammen,
ich bin neu und habe von VBA fast keine Ahnung und hoffe das mir hier jemand helfen kann.
Ich habe eine VBA Code in meine exceltabelle kopiert mit der ich beim anklicken einer Zelle die ganze Zeile markiere ohne die Formatierung zu überschreiben. Da ich diese Funktion aber nicht jedes mal benötige, möchte ich diese gerne mit einem Button ein und ausschalten können. Kann mir jemand hierbei bei helfen und zeigen wie das geht?
hier der Code
Dim r As Integer, c As Integer, rng As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Farbe As Long
Farbe = ActiveWorkbook.Colors(14) '=Colorindex 14 oder z.B. Farbe = 123456
'Ausführung in den Hintergrund schalten
Application.ScreenUpdating = False
Application.EnableEvents = False
'Hilfssheet zum Speichern des Zeilenformats anlegen
On Error Resume Next
If Sheets("Formatspeicher").Name = "" Then
Set fsp = Sheets.Add(After:=Sheets(Sheets.Count))
fsp.Name = "Formatspeicher"
Me.Select
fsp.Visible = False
Else: Set fsp = Sheets("Formatspeicher"): End If
'prüfen ob Hintergrundfarbe absichtlich geändert wurde und übernehmen dieser
If Not rng Is Nothing Then
If rng.Cells(1).Interior.Color  Farbe Then
With fsp.Range(fsp.Cells(1, rng.Column), fsp.Cells(rng.Rows.Count, rng.Column _
+ rng.Columns.Count - 1)).Interior 'geänderte Farbe in die Kopie übernehmen
If rng.Cells(1).Interior.ColorIndex = xlNone Then .ColorIndex = xlNone _
Else .Color = rng.Cells(1).Interior.Color
End With
End If
End If
If r  Target.Row Then 'Wenn Zeile ungleich vorheriger Selection
If r > 0 Then
fsp.Rows(1 & ":" & c).Copy 'Holen aus Formatspeicher
Rows(r & ":" & r + c - 1).PasteSpecial xlPasteFormats 'Format wiederherstellen
Target.Select
End If
r = Target.Row: c = Target.Rows.Count 'Merken welche Zeile aktuell ist
Rows(r & ":" & r + c - 1).Copy 'Zeilenformat kopieren und
fsp.Rows(1 & ":" & c).PasteSpecial xlPasteFormats 'im Formatspeicher ablegen
Rows(r & ":" & r + c - 1).Interior.Color = Farbe 'Zeilenhintergrund einheitlich
End If
Set rng = Target
Application.CutCopyMode = False
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Vorab vielen Dank
Gruß Olli
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Funktion mit Button EIN/AUs schalten
11.01.2023 15:25:18
Rudi
Hallo,
füge einen ToggleButton (Umschaltfläche) in dein Blatt ein.
Code:

Private Sub ToggleButton1_Click()
With ToggleButton1
If .Value Then
.Caption = "An"
Else
.Caption = "Aus"
End If
End With
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ToggleButton1 Then
'dein Code
End If
End Sub
Gruß
Rudi
Anzeige
AW: VBA Funktion mit Button EIN/AUs schalten
11.01.2023 15:43:06
Oliver
Hi,
danke für die schnelle Antwort,
leider funktioniert der code nicht richtig. ich kann nicht ausschalten und bekommen eine Fehlermeldung.
bei mir geht das.
11.01.2023 15:52:55
Rudi
wahrscheinlich, weil ich alles richtig mache ;-)
Gruß
Rudi
AW: VBA Funktion mit Button EIN/AUs schalten
11.01.2023 15:52:37
Oliver
Hi,
danke für die schnelle Antwort,
leider funktioniert der code nicht richtig. ich kann nicht ausschalten und bekommen eine Fehlermeldung.
Anzeige
AW: VBA Funktion mit Button EIN/AUs schalten
11.01.2023 15:59:53
Daniel
Hi
Bei keine Ahnung von VBA sollte man möglichst wenig VBA benutzen
Lösche den Code des Makros und ersetze ihn durch diesen einen Befehl:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("A1").Value = Target.Row
End Sub
Markiere dann die Zellen und füge eine Bedingte Formatierung mit dieser Regel ein:

=Zeile()=$A$1
Fertig ist die Zeilenmarkierung, die vorhandene Formate nicht löscht.
Wenns Schaltbar sein soll, erweitere die Formel so:

=Und($B$1="x";Zeile()=$A$1)
Dann kannst du über das x in B1 steuern, ob die Markierung angezeigt wird oder nicht.
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige