Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1840to1844
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

Togglebutton

Togglebutton
06.08.2021 01:17:28
Fiz
Hallo zusammen -
ich glaube ich fang am besten ganz von vorne an...
ich möchte gerne über einen ToggleButton steuern ob geänderte Zellen hervorgehoben werden sollen oder nicht.
dh solange der ToggleButton aktiviert ist, sollen geänderte Zellen rot hinterlegt werden.
ist er deaktiviert, sollen geänderte Zellen ihr ursprüngliches Format behalten.
Für das Hervorheben von Änderungen habe ich bisher folgende Lösung - die lässt sich aber nicht ein und ausschalten.
(was blöd ist, weil ich Werte aus einer anderen Tabelle einfügen will und erst danach sollen Änderungen gekennzeichnet werden)

Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Intersect(Target, Range("a:xfd")) Is Nothing) Then
Target.Interior.ColorIndex = 4
End If
End Sub

Mein ToggleButton heißt "Markieren" - die Farbe kann er schon mal ändern :-)

Private Sub Markieren_Change()
If Markieren.Value Then
Markieren.Caption = "Änderungen werden nicht markiert"
Markieren.BackColor = vbRed
Else
Markieren.Caption = "Änderungen werden markiert"
Markieren.BackColor = vbGreen
End If
End Sub
Was ich glaube zu verstehen ist, dass der Code im Worksheet ja nun mal für das Worksheet gilt -
man muss ihn also abändern, (so dass er in allen Tabellenblättern gilt?) und dann kann er auch vom Togglebutton aufgerufen werden?
Ich habe zu wenig Durchblick um die Puzzleteile zu verbinden und Danke schon einmal für eure Mühe!

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Togglebutton
06.08.2021 05:55:18
Werner
Hallo,
wenn sich das im jeweiligen Blatt auf alle Zellen auswirken soll, warum dann Intersect ?
Und wenn du das Change für alle Blätter der jeweiligen Mappe willst, dann gibt es da im Codemodul von "DieseArbeitsmappe" dafür das
Workbook_SheetChange Event, das für alle Blätter gilt.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Target.Interior.Color = IIf(Target  "", 4, xlNone)
End Sub
Gruß Werner
AW: Togglebutton
06.08.2021 22:07:38
Fiz
Hallo Werner,
(Ich hatte den Code 'gestohlen' und er hat funktioniert...)
Danke, dein Code ist praktischer für mich... und funktioniert natürlich - aber ...
Finde ich einen Weg, wie ich dieses Feature ein und ausschalten kann?
Ich möchte nicht immer kennzeichnen, wenn ich etwas ändere. - Daher die Idee mit dem ToggleButton.
Vielen Dank für Deine Mühe!
LG Fiz
Anzeige
AW: Togglebutton
06.08.2021 22:18:54
Daniel
HI
den Togglebutton hat Excel schon für dich eingebaut.
in der Menüleiste "Entwicklertools" gibts den großen Button "Entwurfsmodus".
sobald dieser aktiviert ist, werden die Eventmakros wie das Change-Makro nicht mehr ausgeführt.
sobald der den Entwurfsmodus ausschaltest, läuft alles wie gewohnt.
Willst du die Events nicht komplett ausschalten sondern nur diese Funktionalität, dann kannst du auch deinen eigenen ToggleButton verwenden.
platziere diesen auf dem Blatt und erweitere dein Makro so:

If ToggleButtton1.Value = True then
Target.Interior.Color = IIf(Target  "", 4, xlNone)
End IF
solltest du das für alle Blätter haben wollen und sich daher das Makro im Modul "DieseArbeitsmappe" befinden, müsstest du den Namen des Blattes, auf dem der ToggleButton liegt, voranstellen: if Sheets("Tabelle1").ToggleButton1 = True
Gruß Daniel
Anzeige
AW: Togglebutton
06.08.2021 08:44:42
Daniel
Hi
1. lege ein zweites Tabellenblatt an und markiere dort mit WAHR die Zellen die im ersten Blatt geändert wurden.
Dazu im Change-Event des ersten Tabellenblatts dieser Code:

Sheets("Tabelle2").Range(Target.Adresse).value = True
2. verknüpfen den Togglebutton mit einer Ausgabezelle (Adresse bei LinkedCell in der Eigenschaftsliste eintragen), z.B A1
3. lege für das erste Tabellrnblatt für alle Zellen eine bedingte Formatierung mit folgender Formel als Regel an:

=Und($A$1;Tabelle2!A1)
Wobei $A$1 die Ausgabezelle des Togglebuttons ist und Tabelle2!A1 die parallelzelle der aktiven Zelle auf dem Zweiten Blatt.
Gruß Daniel
Anzeige
AW: Togglebutton
06.08.2021 22:41:32
Fiz
Hallo Daniel,
Danke für deinen Input! Leider komm ich nicht zum gewünschten Ergebnis.
Es wird etwas bunt, aber nicht das geänderte... und bei mehrmaligen ToggleButton klicken bleiben die Änderungen nicht erhalten.
Hab das Beispiel nach deinem Vorschlag mal hier hochgeladen. https://www.herber.de/bbs/user/147493.xlsm
Vielleicht hab ich was falsch verstanden...
Meine Vorstellung ist die folgende: (Wir packen Biogemüsekistln und wollen das Handhaben von Sonderwünschen erleichtern....)
ich habe ein Tabellenblatt, in das ich Werte (einen Bestellvorschlag) einfüge. (dh das Makro soll nciht immer laufen)
Ein Teil der Werte bleibt unverändert (stammt eben aus einem vorhergehenden Bestellvorschlag)
Einen Teil dieser Werte muss ich aber auf einen fixen Wert ändern, (der Kunde will immer 1 Basilikum)
ein dritter Teil ist variabel (ich kann bei Karotten etc. das Gewicht anpassen um den Richtpreis nicht zu übersteigen)
und die Änderungen sollen dann farblich hinterlegt werden, dh ich will sehen, was ich schon geändert habe.
So will ich die Fixwerte kennzeichnen, die ich nicht mehr ändern darf; - sonst fällt mir beim Zusammenkürzen der Bestellung der Fixwunsch eventuell weg.
Daher die Idee das Feature über einen Button aus und einzuschalten...
Ich bin dankbar, für jede Lösung, die zum Ergebnis führt. Danke für Deine Mühe.
LG FIz
Anzeige
AW: Togglebutton
06.08.2021 23:04:48
Daniel
Hi
dann ändere das mal so ab
im Makro:

Sheets("Tabelle2").Range(Target.Address).value = True
und die Formel:

=UND($A$1;Tabelle2!A1=WAHR)
wobei ich das jetzt so verstanden habe, dass die Änderungen immer markiert werden und du über den Toggelbutton umschalten kannst, ob die Änderungsmarkierungen angezeigt werden sollen oder nicht, dh du kannst damit die Markierungen ein- und ausblenden.
wie du ein -und ausschalten kannst, dass die Änderungen überhaupt markiert werden, habe ich dir ja an andere Stelle im Thread bereits beschrieben.
im Prinzip kannst du auch beides kombinieren, wenn du willst, entweder über einen zweiten Toggelbutton oder über das aktivieren des Entwurfsmodus.
Gruß Daniel
Anzeige
AW: Togglebutton
06.08.2021 23:11:15
Fiz
Hallo Daniel,
ich hab deinen vorherigen Input übersehen!! Jetzt bekomm ichs hin!
Vielen Dank!! - ich poste dann gleich das gelöste Beispiel.
LG Fiz
AW: Togglebutton
06.08.2021 23:50:52
Fiz
Hallo Daniel,
fast geschafft. Nur bekomm ich die Farbe nicht hin :-( kannst du mir nochmal helfen?
(ich hab einen schwarzen Adler auf schwarzem Grund... und hätt gern grün)
Danke und LG Fiz

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sheets("ToggleButton").Markieren.Value = True Then
Target.Interior.Color = IIf(Target  "", 4, xlNone)
End If
End Sub

Anzeige
AW: Togglebutton
07.08.2021 01:33:10
Fiz
Done!!! Vielen Dank!!

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sheets("ToggleButton").Markieren.Value = True Then
Target.Interior.Color = IIf(Target  "", vbGreen, xlNone)
End If
End Sub
https://www.herber.de/bbs/user/147494.xlsm
AW: Togglebutton
07.08.2021 01:33:51
Daniel
Hi
Statt der 4 die Funktion RGB(a, b, c)
Und für a,b,c darft du jeweils eine Zahl von 0-255 angeben, um so eine beliebige Farbe zu erzeugen.
Gruß Daniel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige