Anzeige
Archiv - Navigation
1740to1744
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

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?

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
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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige