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

Automatische Änderung Buttonfarbe

Automatische Änderung Buttonfarbe
20.02.2021 17:51:54
Schma
Hallo zusammen,
ich bin Schma, neu hier in diesem Forum und ich hoffe, dass ihr mir bei meinem folgenden Problem helfen könnt:
Bei der angefügten Tabelle ( https://www.herber.de/bbs/user/144101.xlsm ) handelt es sich um eine Dienstplangestaltung unserer Freiwilligen Feuerwehr. Die einzelnen Blöcke stellen u.a. die Leitstelle und die einzelnen Fahrzeuge dar (Löschwagen, Rettungswagen etc.).
Es geht darum, die Leute, die rechtsseitig als Buttons aufgelistet sind, in den Dienstplan (linksseitig in die weißen Zellen) einzufügen und auf die einzelnen Fahrzeuge zu verteilen. Damit nicht alle Namen händisch eingegeben werden müssen, sollen sie per Klick eingefügt werden. Dabei muss die Verteilung in der Tabelle beliebig möglich sein, weil die Fahrzeugbesatzungen personell ja auch wechseln. D.h. man markiert per Klick die entsprechende Zelle in der Tabelle und fügt per Klick auf den Button den jeweiligen Namen ein.
Grundsätzlich funktioniert das mit der Konstruktion, wie ich die Buttons (Namen) angelegt habe, auch ohne Probleme.
Da es sich aber um rund 40 Leute handelt, die verplant werden müssen, verliert man auch schon mal schnell den Überblick, welche Leute man schon verplant hat. Von daher habe ich die Buttons so angelegt, dass sie sich beim Anklicken automatisch rot färben, so dass man den Überblick behält, welche Namen man schon eingefügt hat. Zusätzlich kann ich mit dem CommandButton "Felder neutralisieren" alle rot gefärbten Buttons mit einem Klick wieder grau färben und mit dem Button "Alles leeren" alle Daten aus der Tabelle mit einem Klick wieder löschen. Auch das klappt bisher gut.
Jetzt kommt es aber auch vor, dass man während der Erstellung der Dienstplanung nur einzelne Leute wieder aus der Planung rausnehmen, verschieben oder anderweitig verteilen muss, weil z.B. irgendwelche Stärken der Fahrzeugbesatzungen durch Krankmeldungen etc. nicht mehr passen. Und hier habe ich die Vorstellung, dass nur der jeweilige Button automatisch wieder grau wird, dessen verknüpften Namen ich aus der Liste lösche, damit ich sehe, dass der Name wieder "zur Verfügung" steht. Aktuell bleiben die Buttons weiter rot gefärbt, wenn ich die Namen aus der Tabelle lösche, was dann wieder zur Unübersichtlichkeit führt.
Wenn mein Vorhaben grundsätzlich nicht möglich ist, dann ist das ok, genau das ist meine Frage. Ich halte auch nicht an meinem bisherigen Konstrukt fest, wenn das Ziel anderweitig zu erreichen ist. Ich bin für jede Lösung offen.
In dieser Tabelle ( https://www.herber.de/bbs/user/144102.xlsm ) habe ich als Versuch die Buttons durch CommandButtons ersetzt. Ich habe es hinbekommen, dass sie sich bei Klick rot färben und beim Löschen der Eingabe wieder grau, aber sobald ich mehrere CommandButtons anlege, werden alle gemeinschaftlich rot oder grau, ich bekomme sie also nicht voneinander getrennt. Auch werden sie nicht wieder grau, wenn ich die Namen mittels "Alles leeren"-Button aus der Liste lösche (Da es sich um eine Beispieldatei handelt, funktioniert die Funktion nur in der Spalte C).
Ich hoffe, ich konnte mein Problem anschaulich darstellen.
Ich bin für jede Hilfe offen.
Danke und Grüße

32
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatische Änderung Buttonfarbe
20.02.2021 18:40:24
Herbert_Grom
Hallo Unbekannter (warum hast du Angst davor, deinen Namen zu nennen?),
schau dir mal meinen Vorschlag (Anton/Tom) an. Wenn du dazu noch Fragen hast, gib Bescheid:
https://www.herber.de/bbs/user/144107.xlsm
Servus
AW: Automatische Änderung Buttonfarbe
20.02.2021 19:32:03
Schma
Hallo Herbert,
vielen Dank für deine Antwort und deine Arbeit.
Ich habe in der Tat die ein oder andere Frage, denn bei mir funktioniert deine Datei nicht so, wie ich sie benötige:
- Deine eingefügten Buttons ändern ihre Farbe nicht von grau auf rot beim Anklicken. Von daher weiß ich auch nicht, ob sie auch ihre Farbe zurück ändern würden, wenn ich den entsprechenden Eintrag aus der Tabelle wieder löschen würde.
- Die Felder, in denen ich Anton oder Tom eintragen kann, sind schon festgelegt (in diesem Fall C1 für Anton und C2 für Tom). Ich brauche aber eine frei Wahl auf dem Datenblatt.
- Wofür ist der Befehl in Modul1 (Option Explicit)?
Und nein, ich habe keine Angst, meinen Namen zu nennen. ;-)
Danke und Grüße
Tim
Anzeige
AW: Automatische Änderung Buttonfarbe
21.02.2021 09:24:58
Herbert_Grom
Hallo,
ok, ich überarbeite meinen Vorschlag noch einmal diesbezüglich. Kann aber ein bisschen dauern.
Servus
AW: Automatische Änderung Buttonfarbe
21.02.2021 16:30:19
Herbert_Grom
Sorry, aber ich habe noch einmal etwas geändert, da du ja auch mal mit dem Button die "Felder aktualisieren" willst und dann aber trotzdem mit den anderen Buttons die Namen/Zahlen entfernen willst. Deshalb habe ich dir auch diese Möglichkeit noch mit eingebaut!
https://www.herber.de/bbs/user/144124.xlsm
Servus
Anzeige
AW: Automatische Änderung Buttonfarbe
21.02.2021 17:10:55
Schma
Hallo,
deine Arbeit geht schon in die richtige Richtung, vielen Dank dafür.
Allerdings ist mir aufgefallen, dass die Buttons nach Anklicken weiter rot bleiben, wenn ich die Namen mittles Rücktaste/Backspace aus der Tabelle lösche. Genauso, wenn ich den Button "Alles leeren" nutze.
Um den Namen (z.B. Anton) aus der Tabelle zu löschen und zeitgleich auch den Anton-Button wieder auf grau zu bekommen, muss ich die Zelle markieren, in der Anton eingetragen ist und dann auf den Button Anton klicken, nur so erfolgt zeitgleich das gewünschte Ergebnis. Die gewohnte Bedienung beim Löschen aus einer Tabelle erfolgt bei den allermeisten allerdings mittels Rücktaste oder Entfernen. Von daher gehe ich stark davon aus, dass die Benutzer der Tabelle genauso vorgehen und die ursprüngliche Problematik weiterhin bestehen bleibt, nämlich, dass die Buttons weiter rot bleiben, obwohl die Namen entfernt wurden. Zudem ergibt sich bei der aktuellen Vorgehensweise dir Problematik, dass wenn ich z.B. Anton aus der Tabelle löschen will, ich aber aus Versehen den sich darunter befindlichen Tom, den ich auch schon in die Tabelle eingefügt habe und der rot gefärbt ist, anklicke, dass der Button Tom grau wird, der Name Anton aber entfernt wurde.
Von daher wäre eine Lösung optimal, wenn sich genau die Buttons wieder grau färben, deren Namen auf dem üblichen Weg mittels Rücktaste / Entfernen aus der Tabelle gelöscht werden.
Anzeige
AW: Automatische Änderung Buttonfarbe
21.02.2021 17:31:17
Herbert_Grom
Ist es denn sicher, dass jeder Name nur 1x im ganzen Blatt vorhanden ist?
AW: Automatische Änderung Buttonfarbe
21.02.2021 18:06:53
Schma
Ja. Die entsprechenden Leute können ja nur 1x verplant werden. Entweder z.B. auf der Leitstelle, dem Löschwagen oder Rettungswagen. Von daher darf jeder Name auch nur 1x in der Dienstplanung auftauchen.
AW: Automatische Änderung Buttonfarbe
21.02.2021 18:09:55
Herbert_Grom
OK, dann schau ich mal, dass ich das hinbekomme!
AW: Automatische Änderung Buttonfarbe
21.02.2021 18:09:55
Herbert_Grom
OK, dann schau ich mal, dass ich das hinbekomme!
AW: Automatische Änderung Buttonfarbe
21.02.2021 18:44:37
Herbert_Grom
Probiers jetzt mal damit. Das klappt aber nur, wenn der Cursor auf den zu löschenden Namen gesetzt wird und dann sofort die "Entf"-Taste gedrückt wird:
https://www.herber.de/bbs/user/144127.xlsm
Servus
Anzeige
AW: Automatische Änderung Buttonfarbe
21.02.2021 18:49:45
Schma
Da klappt was nicht. Es kommt sofort eine Fehlermeldung, sobald ich eine Zelle anklicke, in die ein Name eingefügt werden soll.
AW: Automatische Änderung Buttonfarbe
21.02.2021 18:56:12
Herbert_Grom
Das schaue ich mir morgen mal an!
AW: Automatische Änderung Buttonfarbe
22.02.2021 10:14:30
Herbert_Grom
Sorry, das war mein Fehler! Ersetze in der Tab2 diesen Code
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
sTargetName = Target.Value
End Sub
durch diesen:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo ende
sTargetName = Target.Value
ende:
End Sub
Servus
AW: Automatische Änderung Buttonfarbe
22.02.2021 13:22:05
Schma
Moin Herbert,
mit dem Code taucht die Fehlermeldung tatsächlich nicht mehr auf, aber es bleibt dabei, dass die Buttons weiterhin rot bleiben, wenn ich die Namen mittels Backspace oder Entfernen aus der Tabelle lösche.
Anzeige
AW: Automatische Änderung Buttonfarbe
23.02.2021 20:03:29
Schma
Hallo Herbert,
meine Probleme sind alle gelöst worden.
Vielen Dank für deine Hilfe.
Grüße
AW: Automatische Änderung Buttonfarbe
20.02.2021 18:47:00
SF
Hola,
sagst du im anderen Forum bitte Bescheid dass es.jetzt hier weitergeht?
Gruß,
steve1da
AW: Automatische Änderung Buttonfarbe
20.02.2021 19:36:53
Schma
Hallo Steve,
ich wusste nicht, dass die Foren miteinander verknüpft sind. Ich habe gedacht, je mehr Schwarmwissen, umso besser. Schließlich ist meine Frage ja noch nicht abschließend beantwortet.
Wenn die Foren miteinander zusammenhängen und den gleichen Forenteilnehmerkreis haben, dann kann ich mir die doppelte Arbeit natürlich sparen. Da hast du recht.
Grüße
Anzeige
AW: Automatische Änderung Buttonfarbe
20.02.2021 19:51:59
Schma
Ja, absolut richtig. Sorry, muss da noch viel lernen. Werde umgehend eine Verlinkung einstellen.
Danke für den Hinweis.
AW: Automatische Änderung Buttonfarbe
20.02.2021 19:56:37
Oberschlumpf
Hi Tim,
genau, die Foren sind - nicht - miteinander verknüpft.
Wieso "wir" trotzdem wissen, dass du die gleiche Frage in mehreren Foren stellst?
Der eine oder andere Antworter ist in mehreren Foren aktiv und stellt so hin und wieder fest, wenn ein Frager eben mehrmals die selben Fragen stellt.
Und - JETZT kommt DER TEIL, den DU am aufmerksamsten lesen solltest:
Der Grund, wieso du darauf hingewiesen wurdest, jedes Forum darüber zu informieren, wo du die gleiche Frage stellst, ist nicht, um DIR Arbeit zu ersparen!
Es geht darum, dass ja in mehreren Foren mehr oder weniger zeitgleich von unterschiedlichen Menschen! versucht wird, dir gratis zu helfen.
Angenommen, im anderen Forum, in dem du diese Frage hier gestellt hast, erhältst du eine helfende Idee, wirst du sehr wahrscheinlich - nicht - hier bescheid geben, dass dein Problem gelöst wurde.
(so faul sind und bleiben leider die meisten Fragenden! - das ist keine Vermutung, sondern das Ergebnis von viel Forumerfahrung :-/)
So, somit wären dann alle hier erstellten Lösungsvorschläge für den digitalen Papierkorb - sogar dann, wenn auch die hier gezeigten Ideen dein Problem lösen würden - du brauchst die Ideen von hier ja nicht mehr...
Und deswegen wäre es mehr als fair, wenn jeder Fragende auf jedes jeweils andere Forum hinweist, in dem die selbe Frage gestellt wurde.
In welchem andern Forum hast du diese Frage denn noch gestellt?
Ciao
Thorsten
Anzeige
AW: Automatische Änderung Buttonfarbe
20.02.2021 19:58:59
Schma
Hallo Thorsten,
alles richtig. Verlinkung wird umgehend eingestellt.
Grüße
AW: Automatische Änderung Buttonfarbe
21.02.2021 21:24:20
Daniel
Hi
hier mal ein Beispiel, wie du das ohne Buttons und mit minmalem Code lösen kannst.
auch das Erweitern auf weitere Fahrzeuge geht damit recht einfach:
als Vorbereitung:
1. markiere alle Zellen des Dienstplanes, in die die Namen eingetragen werden können und weise den gesamten Zellbereich einem Namen zu
2. mache das gleiche mit dem Zellbereich, in dem die vorhandenen Namen aufgelistet sind
3. richte für den Zellbereich mit den Namen eine Bedingte Formatierung ein, die die Zelle umfärbt, wenn der Name im Dienstplan einmal vorkommt
4. richte für den Zellbereich mit den Namen eine Bedingte Formatierung ein, die die Zelle in einer anderen Farbe umfärbt, wenn der Name im Dienstplan zwei- oder mehrmals vorkommt.
5. schreibe diesen Code ins Modul des Tabellenblatts Tabelle1:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count  2 Then Exit Sub
If Intersect(Target, Range("Namen")) Is Nothing Then Exit Sub
If Intersect(Target, Range("Aufgaben")) Is Nothing Then Exit Sub
Intersect(Target, Range("Aufgaben")).Value = Intersect(Target, Range("Namen")).Value
End Sub
um jetzt einen Namen in den Dienstplan zu übertragen, klickst du erste die Zelle mit dem Namen und dann mit gedrückter STRG-Taste die Stelle im Dienstplan an. (das ganze funktioniert aber auch umgekehrt, dh der Code wird ausgelöst, wenn zwei Zellen selektiert sind und eine Zelle sich im Zellbereich "Aufgaben" und eine Zelle im Zellbereich "Namen" befindet.
der Name aus der Namenszelle wird dann in den Dienstplan geschrieben.
Das Umfärben übernimmt dann die Bedinge Formatierung.
in der Beispieldatei ist das ganze mal umgesetzt.
https://www.herber.de/bbs/user/144132.xlsm
Der Code ließe sich natürlich noch mit Sicherheitsabfragen und Hinweismeldungen erweitern (so dass es z.B nicht möglich ist, einen bereits zugewiesenen Namen nochmal zuzuweisen), aber das hier sind erstmal mal die Basics
Gruß Daniel
Anzeige
AW: Automatische Änderung Buttonfarbe
22.02.2021 13:19:48
Schma
Hallo Daniel,
vielen Dank für deinen Lösungsansatz. Da sind einige Funktionen dabei, die mir sehr zusagen, insbesondere dass sich die Namensfelder unterschiedlich färben, wenn der Name mehrmals in der Arbeitsmappe auftaucht.
Das Verzichten auf die Makros hat zudem den großen Vorteil, dass das Erstellen der Arbeitsmappe nicht soviel Zeit in Anspruch nimmt.
Und alle Funktionen klappen so, wie ich es mir grundsätzlich vorstelle.
Allerdings würde ich aus folgenden Gründen ungern auf die Buttons verzichten:
- man muss zum Einfügen der Namen schon recht viel hin- und herklicken, da man jedes Mal die entsprechenden Zellen immer wieder neu markieren muss. Meine Wunschvorstellung ist, dass beim Klick ein Name eingefügt wird und der Cursor automatisch zur nächsten Zelle springt, wo mit dem nächsten Klick direkt wieder der Name eingefügt wird usw.
- Größter Knackpunkt: bei verbundenen Zellen funktioniert das Einfügen der Namen nicht. Und es sind befinden sich in der Tabelle tatsächlich mehrere verbundene Zellen, in die ein Name eingetragen werden muss.
Von daher würde ich deinen Lösungsansatz in der Hinterhand behalten wollen, wenn meine Vorstellungen mit den Buttons nicht umsetzbar sind und das Problem mit den verbundenen Zellen irgendwie zu lösen wäre.
Grüße
Tim
Anzeige
AW: Automatische Änderung Buttonfarbe
22.02.2021 14:12:34
Daniel
HI
die Probleme kannst du einfach lösen, wenn du den Code etwas variierst.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Areas.Count  2 Then Exit Sub
If Intersect(Target, Range("Namen")) Is Nothing Then Exit Sub
If Intersect(Target, Range("Aufgaben")) Is Nothing Then Exit Sub
Intersect(Target, Range("Aufgaben"))(1).Value = Intersect(Target, Range("Namen")).Value
Application.EnableEvents = False
Intersect(Target, Range("Namen")).Offset(1, 0).Select
Application.EnableEvents = True
End Sub

damit sollte das Problem der Verbundzellen gelöst sein.
Auch wird der nächste (darunterliegende Name) selektiert, so dass du nur noch die nächste Zelle im Dinestplan mit gedrückter STRG-Taste anklicken musst und nicht mehr in die Namen wechseln brauchst (solange die Namen untereinander stehen).
auch wenn du mit Buttons arbeiten willst, gibt es eine einfache Lösung:
1. behalte die Zellen mit Namen und bedingter Formatierung.
2. erstelle von jeder Zelle mit Namen eine Verknüpfte Grafik (kopieren, Inhalte Einfügen - unten rechts)
diese Grafik stellt die Zelle dar, nicht nur Inhalt, sondern auch über die Bedingte Formatierung erzeugte Farben.
3. verwende diese Verknüpfte Grafik als Button um das Marko zu starten. Das funktioniert hier so wie Formularfeldsteuerelementen (über das Kontextmenü zuweisen). das geht auch nachträglich, wenn du alle Buttons selektiert hast in einem Schritt.
4. schreibe das Makro so, dann wird der Inhalt der Verknüpften Zelle als Name in die Aktive Zelle geschrieben, dh dieses Makro kannst du unverändert für alle Buttons verwenden, so dass du nur dieses eine Makro brauchst, dass du allen Buttons zuweisen kannst.
Sub Eintragen()
ActiveCell.Value = Evaluate(ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.Formula)
End Sub

das Reicht im Prinzip, das Umfärben so eines Buttons geht dann vollautomatisch über die bedingte Formatierung der verküpften Zelle, also auch wenn den Dienstplan nicht per Makro, sondern von Hand bearbeitest (dh Namen einträgst oder löschst).
ggf solltest du noch eine Sicherheitsabfrage einbauen, ob die Aktive Zelle auch innerhalb des Zellbereichs der Eingabezellen des Dienstplans liegt, aber das bekommst du sicherlich alleine hin.
wenn du weitere Buttons brauchst, kannst du auch einfach einen vorhandenen kopieren und einfügen, und dann einfach auf eine andere Zelle "umbiegen", in dem du ihn markierst und den Zellbezug in die Bearbeitungszeile einträgst.
Gruß Daniel
AW: Automatische Änderung Buttonfarbe
23.02.2021 15:27:29
Schma
Hallo Daniel,
ich habe alles so wie von dir vorgeschlagen umgesetzt und ich muss sagen, es klappt ganz wunderbar.
Das Ergebnis siehst du hier:
https://www.herber.de/bbs/user/144174.xlsm
Ich habe die Namenszellen auf einer separaten Tabelle gelegt und nur die Buttons auf der eigentlichen Gliederung. Funktioniert ohne Probleme.
Die Funktion mit den unterschiedlichen Färbungen ist grandios und Gold wert. Hilft ungemein, den Überblick zu behalten.
Ich habe einige Zellen noch mit einem Befehl versehen, so dass die passende Nummer oder Ausrüstung immer mit angezeigt wird. So spart man sich unnötige Klicks.
Damit nach einer Eingabe in einer Zelle direkt die darunter liegende Zelle angesteuert wird, habe ich im Modul1 deinen Code noch ergänzt.
Da hätte ich aber noch folgende Frage: Aktuell bezieht sich der Code, immer eine Zeile noch unten zu springen, immer auf alle Namen. Kann man dies auch separieren?
Wie du in der Gliederung siehst, müssten in dem oberen Bereich (Zeilen 3-31) die Namen ein Feld überspringen, da im darunterliegenden Feld die Telefonnummer kommt, im unteren Bereich der Gliederung (Zeilen 33-40) jedoch nicht. Kann man das noch irgendwie ergänzen und mit den Zellen oder den Namen verknüpfen?
Wenn nicht, dann halb so schlimm, ich bin jetzt schon mehr als zufrieden.
Ansonsten danke ich dir schon mal recht herzlich für deine Mühe.
Grüße
Tim
AW: Automatische Änderung Buttonfarbe
23.02.2021 16:20:52
Daniel
Hi
schön dass es klappt.
1. die nicht mehr benötigten Codes (das selection-Change-Event) würde ich löschen, nicht das da bei einer fehlbedinung noch was passiert.
2. die Nummern spielst du ja automatisch per Formel zu, daher würde ich für die Nummern auch keine Buttons anlegen, sonst klickt da noch einer drauf und du hast die Nummer anstelle des Namens in er Liste stehen.
3. würde ich die Zellen, die eine Formel enthalten auch nochmal farblich anders formatieren als die Zellen, in die der Name kommt.
dh weiß würde ich nur alle Zellen lassen, die nicht gesperrt sind und die man von Hand ausfüllen kann.
das Problem mit dem Springen löst du vielleicht am besten, in dem du nicht die darunter liegende Zelle selektierst, sondern per Code auf die "Pfeil runter"-Taste drückst.
Dabei wird dann berücksichtigt, welche Zelle angsprungen werden darf und welche nicht.
ersetzte also das ActiveCell.Offset(1, 0).Select durch SendKeys "{DOWN}"
gruß Daniel
AW: Automatische Änderung Buttonfarbe
23.02.2021 20:01:15
Schma
Hallo Daniel,
auch diese Tipps wurden entsprechend umgesetzt und funktionieren super.
Vielen Dank dafür und auch für deine Hilfe.
Das meine Vorstellungen alle so "einfach" und mit insgesamt nur 2-3 Codes umsetzbar sind, hätte ich im Leben nicht gedacht.
Herzliche Grüße, bleib gesund und sobald ich wieder ein Problem habe, melde ich mich. :-)
AW: Automatische Änderung Buttonfarbe
23.02.2021 20:20:37
Daniel
Vieles geht in Excel erstaunlich einfach, wenn man die unterschiedlichen Methoden, die Excel bietet, kreativ kombiniert.
Gruß Daniel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige