Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Sendkeys in Userform verwenden

Forumthread: Sendkeys in Userform verwenden

Sendkeys in Userform verwenden
22.02.2020 13:45:47
Benny
Ich habe in Excel eine Art Navigationstool erstellt. z.B. links rechts hoch runter usw.. Nun möchte ich einen Löschen Button erstellen. Ich nutze hier sendkeys da dieser Befehl auch verbundene zellen löscht;-)
Der code funktioniert mit dem Button als normales makro ausserhalb der userform sehr gut. _
Jedoch soblad ich den code mit einem Button in der userform aufrufe passiert gar nichts. Man _
kann Ihn drücken aber es passiert einfach nichts in der aktiven zelle, es wird nichts gelöscht ( _ show modal ist deaktiviert;-). Hier der code:

Private Sub LoesechenButton_Click()
SendKeys ("{DEL}"), True
End Sub

Hat jemand eine Idee?
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sendkeys in Userform verwenden
22.02.2020 14:00:47
EtoPHG
Hallo Benny,
Idee: Ganz auf SendKeys verzichten!
Grund für das Fehlverhalten: Sendkeys sendet die Tastenkombi an die UF, egal ob modal oder nicht!
Was machen: Sauber programmieren, denn ob die eine Zelle oder ein Zellverbund 'aktiv' ist spielt für das Löschen des Zellinhalts (.Clearcontent) keinen Tango.
Gruess Hansueli
Anzeige
AW: Sendkeys in Userform verwenden
22.02.2020 15:36:36
Daniel
Hi
das Problem dürfte sein, dass für Windows die Userform as aktive Objekt ist und daher das SendKeys auf die Userform angewendet wird.
wenn Verbundzellen das Problem sind, liegt es in der Regel daran, dass es bei Verbundzellen oft notwendig ist, den gesamten Zellverbund zu bearbeiten.
dieses Problem zu lösen dürfte einfacher sein, als die Exceltabelle temporär für Windows zum aktiven Element zu machen.
du kannst also entweder
- eine Methode verwenden, die auch bei Zellverbünden auf Einzelzellen angewendet werden kann, in deinem Fall zum Zelle löschen wäre das
Cells(...).Value = "" anstelle von Cells(...).ClearContents
- den zu bearbeitenden Zellbereich auf den ganzen Zellverbund erweitern, dazu gibts MergeArea:
Cells(...).MergeArea.ClearContents
Gruß Daniel
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