Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1752to1756
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

Makro während Zelländerung

Makro während Zelländerung
21.04.2020 14:02:16
Peter
Hallo zusammen,
ich habe eine Spalte in meiner Tabelle mit Dropdown-Listen. Aufgrund des Umfangs der Daten verwende ich eine Combobox mit Autoausfüllen. Dabei nutze ich eine modifizierte Version des Codes aus dieser Anleitung:
https://www.contextures.com/xlDataVal11.html
Jetzt habe ich folgendes Problem: Der Code läuft nur beim Ereignis BeforeDoubleClick. Ich verwendete zum Editieren von Zellen aber meistens die Tastatur (F2, Direkteingabe) nur gibt es dafür scheinbar kein Ereignis dass die Combobox auslöst. Ich habe es mit SelectionChange probiert aber dann taucht die Box auf wenn ich mit Pfeiltasten durch die Spalte navigiere, was ziemlich stört. Change ist zu spät, ich will die Box ja während der Eingabe haben und nicht wenn die Daten bereits in die Zelle sind.
Gibt es eine Möglichkeit, den Code auszulösen wenn ich eine Zelle editiere? Also quasi BeforeF2, BeforeDirekteingabe UND BeforeDoubleClick?
Gruß
Peter

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro während Zelländerung
21.04.2020 14:25:24
Daniel
HI
ich kenne keines.
während der Eingabe in eine Zelle kann man auch mit VBA nichts machen.
wenn du während der Eingabe was per Code ausführen willst, müsste die Eingabe in eine ActiveX-Text- oder -Combobox erfolgen (da du ein DropDown mit Auswahlliste hast, wahrscheinlich eher Combobox)
damit man nicht viele solcher Boxen erstellen und programmieren muss, kann eine einzige Combobox erstellen die man im SelectionChange-Event dem Anwender "unterschieben", in dem man sie einblendet, auf die angeklickte Zelle verschiebet und aktiviert, sowie die LinkedCell auf die ausgewählte Zelle setzt.
Wenn man das geschickt macht, dann merkt der Anwender im Normalfall fast keinen Unterschied (zumindest bei Mausschubsern, bei Cursorstastennavigieren wird's etwas komplizierter)
Gruß Daniel
Anzeige
AW: Makro während Zelländerung
21.04.2020 14:40:23
Peter
Hi,
das passiert bereits. Wenn ich auf eine Zelle Doppelklicke geht die Box in genau dieser Zelle auf und ich kann die Eingabe machen worauf er mir per autoausfüllen Vorschläge aus der hinterlegten Liste anbietet. Die Box tut genau das was sie soll. Mir geht es um den Auslöser für die Box.
Ich möchte ja nur dass das ganze NICHT NUR bei Doppelklick per Maus auf eine der Zellen ausgelöst wird sondern auch wenn ich F2 drücke oder sofort mit dem Tippen anfange... nur gibt es leider nur das Event BeforeDoubleClick, oder übersehe ich etwas?
Grüße
AW: Makro während Zelländerung
21.04.2020 16:01:59
Luschi
Hallo Peter,
die F2-Taste kannst Du doch erst bedienen, wenn die richtige Zelle ausgewählt/selektiert ist. Und dafür gibt es doch das Ereignis 'Worksheet_SelectionChange' - wozu dann noch die F2-Taste (das ist viel zu spät und besitzt selbst kein eigenes Event.
Gruß von Luschi
aus klein-Paris
PS: oder Du biegst die Standardaktion der F2-Taste um mit der Application.OnKey-Methode!
Anzeige
AW: Makro während Zelländerung
21.04.2020 17:26:40
Peter
Hi
SelectionChange funzt nur beim Zellenwechsel. Wenn ich aber bereits in der Zelle bin die ich bearbeiten will klappt das nicht.
Hier kann man im Vergleich sehen, wie sich beide Methoden mit meiner Combobox verhalten:
https://www.herber.de/bbs/user/136944.xlsm
Das mit Application.Onkey probiere ich gerade wobei er das Verhalten nur in der Range mit den Dropdownzellen ändern soll. Klappt bisher nicht, hab mit der Methode noch keine Erfahrung.
Wenn du ein funktionierendes Beispiel hast, wie ich in einer Range F2 oder auch alphanummerische Zeichen als Aktivator für den Code nutzen kann , wär das ne Hilfe
Gruß
Peter
Anzeige
AW: Makro während Zelländerung
21.04.2020 16:37:38
Daniel
Hi
ggf auch so:
- Auslösen der Combobox über Selection-Change
- Erweitere die Combobox mit einer zusätzlichen Steuerung im KeyDown-Event.
frage dort ab, welche Taste gedrückt wurde (du kannst dort auch die Steuertasten wie Cursor oder Return ermitteln)
Wenn jetzt beispielsweise eine Cursortaste gedrückt wurde, ohne das vorher eine alphanumerische Taste gedrückt wurde, dann verlasse die Combobox und selektiere die nächste Nachbarzelle entsprechend der gedrückten Cursortaste.
mit ein bisschen Aufwand solltest du das gewünschte Verhalten analog normaler Tastatursteuerung bei Zellen hinbekommen
Gruß Daniel
Anzeige
AW: Makro während Zelländerung
21.04.2020 16:51:29
Peter
Hi
Danke für die interessante Idee. Das probiere ich als Plan B :)
Gruß
Peter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige