Frage von Maskera, 30

In Excel 2013 Eine Zelle durchs Anklicken einer anderen Bearbeiten?

Ich stell mir das so vor: Ich klicke auf eine Zelle in der zum Beispiel ein Wochentag steht, dies ist Zelle A1, sobald ich darauf klicke wird in der Zelle B1 ein Kreuz geschrieben, dies soll so weitergehen von Montag(A1) bis Freitag(E1) und zum Schluss dann ein Feld in dem "Alle" steht in F1, ich weiss das etwas ähnliches möglich ist mit Makros, wie genau funktioniert jetzt aber meine hier erwünschte Version...? Danke an alle Excel Profis die mir Helfen!

Antwort
von PWolff, 13

Ohne Makros kannst du nur mit Zellen nicht auf Markierungs-Ereignisse u. ä. reagieren.

Das ginge mit "Steuerelementen".

(Um die einzufügen, brauchst du die "Entwicklertools" - siehe https://support.office.com/de-de/article/Anzeigen-der-Registerkarte-Entwicklerto...)

Unter "Entwicklertools" klickst du auf "Einfügen" und dann unter "Formularsteuerelemente" oder "Active-X-Steuerelemente" auf "Kontrollkästchen" (ist bei mir - Office 2010 - jeweils das 3. von links, obere Zeile). Der Mauszeiger ändert sich in ein Fadenkreuz; damit kannst du auf die Tabelle ein Rechteck "malen", wo das Steuerelement erscheint.

(Ich bevorzuge Active-X-Controls, weil die sich leichter einstellen lassen, man braucht nur den Entwurfsmodus einzuschalten und sich die Eigenschaften von dem Ding anzeigen zu lassen, dann hat man alle einstellbaren Eigenschaften auf einen Blick. Bei den Formular-Steuerelementen muss man mit Rechtsklicks sein Glück versuchen.)

Beispiel:

Du legst über die Zellen A1 bis A6 bzw. A1 bis F1 jeweils ein Kontrollkästchen und gibst ihnen die entsprechenden Eigenschaften - insbesondere "Caption" ("Titel"): "Montag" bis "Freitag" und "LinkedCell" ("Verbundene Zelle") - hier bietet sich die darunterliegende Zelle an.

Bei Kontrollkästchen brauchst du auch keine Extra-Zelle mit einem "X" mehr, das hat das Kontrollkästchen schon. (Das Kästchen verschiebst du nach rechts über die "Alignment"-Eigenschaft.)

Ein gewisses Problem stellt noch das Kästchen "Alle" dar - wenn du das anklickbar haben willst, brauchst du ein Makro. Sonst stell seine "Enabled"-Eigenschaft auf "False" und trag in die verbundene Zelle die Formel

=UND(A1:A5)

bzw.

=UND(A1:E1)

ein. (Nachteil: das Feld erscheint grau. - Leider habe ich bei Excel keine Möglichkeit gefunden, einen "Container" für Steuerelemente einzubauen, sodass man "Enabled" und "ausgegraut" unabhängig voneinander einstellen kann. - Mit Enabled=True überschreibt das Steuerelement bei Klick die Formel der verbundenen Zelle.)

Expertenantwort
von Ninombre, Community-Experte für Excel, 12

ich sehe, dass Iamiam schon die Makrovariante beschrieben hat. Einen Hinweis kann ich aber nicht untern Tisch fallen lassen - per Klicken Tabelleninhalte zu setzen läuft der Excellogik total entgegen. Man kann über Datengültigkeit bspw. auch sicherstellen, dass nur bestimmter Inhalt in ein Feld kommt bzw. dort eine Art Dropdown erstellen.

Excel ist sehr flexibel und lässt sich in diverser Weise ge- und missbrauchen - in letzterem Fall wird es halt irgendwann unübersichtlich und fehleranfällig. In Deinem Fall dudelt dann ein Makro im Hintergrund, das bei jeder Änderungen im Tabellenblatt anspringt. Wenn Du die Tabelle verschiebst ohne das Makro anzupassen, kommt ein komisches Ergebnis raus. Daher nur mein Hinweis ggf. zu hinterfragen, ob der Weg, der einem vorschwebt, alternativlos ist.

Kommentar von Iamiam ,

dem kann ich nur zustimmen. Die Bindung an das Worksheet-Selectionchange-Ereignis -selbst mit Bereichseinschränkung-
kann  ich guten Gewissens allenfalls für Neuberechnung, Zufallszahlen oder umlaufende Bereichsauswahlen empfehlen (...der nächste bitte...), nur in Spezialfällen was anderes! (weshalb ich auch auf das Worksheet_Change-Ereignis hingewiesen hab)

Expertenantwort
von Iamiam, Community-Experte für Excel, 16

 Mit Bezugseinschränkung auf einen Zellbereich folgendes µ:

Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not intersect(Target, Range("A1:A11") _
is nothing then Target.offset(0, 1).Value = "X"
End Sub '.value ist Vorgabeargument u.könnte entfallen
Beachte:
das µ gehört ins Modulblatts des Worksheets
und bezieht sich auch nur auf dieses (reicht normalerweise, (Du kommst da rein, wenn Du auf den Blattnamen rechtsklickst, dann Code anzeigen wählst).
Das Leer_ist lediglich eine Umbruchanweisung im VBA-Code, die hier nur aus Darstellungsgründen eingefügt wurde kannst Du im Modul löschen [entf]
Du musst aber wissen, dass das bei einfachem Auswählen der Zelle anspricht. Soll es -was meist sinnfoller wäre- nur auf eine Eingabe ansprechen, musst Du den Worttei Selection im Namen streichen

Antwort
von valvaris, 15

Ohne Makros wirst du das nicht hinkriegen. Excel selber hat keine Funktionshandler

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten