Discussion:
VBA-Doppelklick-Ereignis in anderem Dokument
(zu alt für eine Antwort)
Dan
2009-10-29 13:25:20 UTC
Permalink
Hallo Zusammen

Ich möchte per VB eine weitere Excel-Datei öffnen, dort per
Doppelklick eine Zelle auswählen, deren Range speichern und dann die
Datei wieder schliessen.

Datei auswählen, öffnen und schließen klappt gut ...ABER die
Doppelklickerkennung funktioniert nur auf meiner Tabelle und nicht auf
dem geöffneten Datei (ist ja so auch standardmäßig sinnvoll).

Gibt es eine Möglichkeit die Funktion "Worksheet_BeforeDoubleClick"
auf das neu geöffnete Dokument anzuwenden und NICHT auf das
ursprüngliche? Die zu öffnenden Tabellen kann ich leider nicht
verändern ... der ganze Code muss also in meinem Dokument sein.

Viiiiiielen Dank für Tipps!
Claus Busch
2009-10-29 14:01:12 UTC
Permalink
Hallo Dan,
Post by Dan
Datei auswählen, öffnen und schließen klappt gut ...ABER die
Doppelklickerkennung funktioniert nur auf meiner Tabelle und nicht auf
dem geöffneten Datei (ist ja so auch standardmäßig sinnvoll).
Gibt es eine Möglichkeit die Funktion "Worksheet_BeforeDoubleClick"
auf das neu geöffnete Dokument anzuwenden und NICHT auf das
ursprüngliche? Die zu öffnenden Tabellen kann ich leider nicht
verändern ... der ganze Code muss also in meinem Dokument sein.
die geöffnete Mappe sollte im VB-Editor im Projektexplorer zu finden sein.
Mach dort auf das entsprechende Tabellenblatt einen Doppelklick und wähle
dann
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
aus.
Diese Ereignisprozedur gehört in das Codemodul des entsprechenden
Tabellenblattes.


Mit freundlichen Grüssen
Claus Busch
--
Win XP PRof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2
Andreas Killer
2009-10-29 14:08:19 UTC
Permalink
Post by Dan
Ich möchte per VB eine weitere Excel-Datei öffnen, dort per
Doppelklick eine Zelle auswählen, deren Range speichern und dann die
Datei wieder schliessen.
...
Post by Dan
Gibt es eine Möglichkeit die Funktion "Worksheet_BeforeDoubleClick"
Ja das geht, dazu brauchst Du 2 zusätzliche Codeteile:

--- schnipp ---
Public WithEvents App As Application

Private Sub App_SheetBeforeDoubleClick( _
ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

'Sind wir es selbst?
If ActiveWorkbook.Name = ThisWorkbook.Name Then Exit Sub

'Hier Dein "Range speichern"-Code
End Sub
--- schnapp ---

Der Code muss in ein Klassenmodul, wie's geht steht hier:
http://www.online-excel.de/excel/singsel_vba.php?f=44#s6

Wenn Du den Code eingefügt hast drückst Du F4 und bennenst es von
"Klasse1" in "EventsApplication" um.

--- schnipp ---
Dim eApp As New EventsApplication

Private Sub Workbook_Open()
Set eApp.App = Application
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Set eApp.App = Nothing
End Sub
--- schnapp ---

Der Code muss in das Codemodul der Mappe, wie's geht steht hier:
http://www.online-excel.de/excel/singsel_vba.php?f=44#s3

Damit funktioniert der Doppelklick in allen Mappen die geöffnet sind,
sobald Du die Mappe öffnest.

Andreas.
unknown
2009-10-29 16:54:04 UTC
Permalink
Hallo Dan,
doppelklicke im Projekt-Explorer auf das Modul "DieseArbeitsmappe" und
füge im Modulkopf die Zeile hinzu:

Public WithEvents app As Application

Im Codefenster rechts wählst du aus dem linken Listenfeld "app" aus.
Es wird das Standardereignis "app_NewWorkbook" eingefügt; entferne es.
Stattdessen wähst du im rechten Listenfeld des Codefensters
"app_SheetBeforeDoubleClick".
Wähle im linken Listenfeld jetzt "Workbook" aus. Es wird das
Standardereignis "Workbook_Open" eingetragen. Vervollständige das
Ereignis wie folgt:

Private Sub Workbook_Open()
Set app = Application
End Sub

Entweder nach dem Speichern und erneuten Öffnen der Arbeistmappe oder
mit der Taste F5 wird der Code in diesem Ereignis ausgeführt und
stellt die applikationsweiten Ereignisse zur Verfügung und damit die
Funktionalität von "app_SheetBeforeDoubleClick".

Private Sub app_SheetBeforeDoubleClick(...)
' dein Code
Cancel = True
End Sub

Ein zusätzliches Klassenmodul ist nicht notwendig, da das Modul
"DieseArbeitsmappe" bereits ein Klassenmodul darstellt.


Mit freundlichem Gruß aus der Rattenfängerstadt Hameln
Frank Arendt-Theilen
--
(ehem. MVP für Excel)
Website: www.xl-faq.de
Microsoft - Excel, Bedingte Formatierung, ISBN: 978-3-86645-806-2
Dan
2009-10-30 09:17:55 UTC
Permalink
Super - vielen Dank an alle für die Tipps - werde mich gleich mal
durcharbeiten :-)

Loading...