mit Doppelklick Programm starten
Moderator: Moderatoren
mit Doppelklick Programm starten
In einer Spalte stehen Dateinamen. Mit einem (Doppel-)Klick auf eine Zelle mit einem Dateinamen möchte ich ein Programm aufrufen und ihm als Parameter den Zellinhalt übergeben.
In Vbasic lautet der Aufruf (wenn die Dateinamen in der 7. Spalte stehen): "Shell "C:\Programme\bildbearbeitung.exe " & Cells(Target.Row, 7)"
Fragen:
* Wie sieht der shell- Funktionsaufruf aus?
* Wie sieht der Event-Handler aus für den Doppelklick ("Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) ??")?
* Wie schränke ich ein, dass nur die 7. Spalte einen Funktionsaufruf bewirken soll ("If Target.Column = 2 Then.."??)?
Danke!
Radi
In Vbasic lautet der Aufruf (wenn die Dateinamen in der 7. Spalte stehen): "Shell "C:\Programme\bildbearbeitung.exe " & Cells(Target.Row, 7)"
Fragen:
* Wie sieht der shell- Funktionsaufruf aus?
* Wie sieht der Event-Handler aus für den Doppelklick ("Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) ??")?
* Wie schränke ich ein, dass nur die 7. Spalte einen Funktionsaufruf bewirken soll ("If Target.Column = 2 Then.."??)?
Danke!
Radi
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: mit Doppelklick Programm starten
Willkommen im Forum.
Hier findest Du Hilfe zur Selbsthilfe!
Wenn dann noch Fragen offen sind... suche hier im Forum (alle Deine Fragen sind hier schon beantwortet worden).
Wenn Du Nachfragen hast - oder konkrete Probleme beim Umsetzen... nur zu.
Viel Erfolg!
Hier findest Du Hilfe zur Selbsthilfe!
Besorge Dir Andrews Makro-Dokument.Radi hat geschrieben: * Wie sieht der shell- Funktionsaufruf aus?
* Wie sieht der Event-Handler aus für den Doppelklick ("Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) ??")?
* Wie schränke ich ein, dass nur die 7. Spalte einen Funktionsaufruf bewirken soll ("If Target.Column = 2 Then.."??)?
Wenn dann noch Fragen offen sind... suche hier im Forum (alle Deine Fragen sind hier schon beantwortet worden).
Wenn Du Nachfragen hast - oder konkrete Probleme beim Umsetzen... nur zu.
Viel Erfolg!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: mit Doppelklick Programm starten
Klasse Anwort, und hilfreich!
Laut Forumauskunft besteht also ein Eventlistener besteht bei OO aus mind. 30 Zeilen Code -- bei VBasic ist es eine.
Radi
Laut Forumauskunft besteht also ein Eventlistener besteht bei OO aus mind. 30 Zeilen Code -- bei VBasic ist es eine.
Radi
Re: mit Doppelklick Programm starten
Hallo Radi,
Beigefügt mal eine Datei die ich mal erstellt habe zur Verwaltung von verschiedenen FTP-Zugängen.
Dort wird mit einen Einfach-Klick-Listener in den Spalten "Action" auf "Connect" oder "Close" reagiert.
Da das Programm Filezilla sicherlich nicht auf Deinem Rechner installiert ist wird eine Fehlermeldung angezeigt.
Der Code sollte Dir aber veranschaulichen wie so etwas aussehen kann.
Der Listener wird über den Eintrag in: Menue > Extras > Anpassen > Reiter Ereignisse initialisiert.
Viel Erfolg.
Jürgen
Richtig.Radi hat geschrieben:Laut Forumauskunft besteht also ein Eventlistener besteht bei OO aus mind. 30 Zeilen Code
Wenn Du darauf bestehst dann solltest Du bei Excel bleiben.Radi hat geschrieben:bei VBasic ist es eine
Beigefügt mal eine Datei die ich mal erstellt habe zur Verwaltung von verschiedenen FTP-Zugängen.
Dort wird mit einen Einfach-Klick-Listener in den Spalten "Action" auf "Connect" oder "Close" reagiert.
Da das Programm Filezilla sicherlich nicht auf Deinem Rechner installiert ist wird eine Fehlermeldung angezeigt.
Der Code sollte Dir aber veranschaulichen wie so etwas aussehen kann.
Der Listener wird über den Eintrag in: Menue > Extras > Anpassen > Reiter Ereignisse initialisiert.
Viel Erfolg.
Jürgen
- Dateianhänge
-
- FileZillaConnectionManager.ods
- (24.67 KiB) 55-mal heruntergeladen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
-
- ****
- Beiträge: 195
- Registriert: Sa, 24.04.2010 15:51
- Wohnort: Basel [CH]
Re: mit Doppelklick Programm starten
Coole Sache. 
lg, Marci

lg, Marci
[Win 10 Pro x64/Downgrade 7, AOO 4.1.6 und LO 6.3.0.4]
Re: mit Doppelklick Programm starten
Danke!
---
Mutter Germania gebar in legitimer Ehe mit dem Geist der Zeit drei Söhne, den Konfektionsreisenden, den Oberlehrer und den Radfahrer. (Erich Mühsam)
---
Mutter Germania gebar in legitimer Ehe mit dem Geist der Zeit drei Söhne, den Konfektionsreisenden, den Oberlehrer und den Radfahrer. (Erich Mühsam)
Re: mit Doppelklick Programm starten
* Wie sieht der shell- Funktionsaufruf aus?
Code: Alles auswählen
Shell("C:\Programme\bildbearbeitung.exe ", 4, <Zellinhalt>)
Du mußt einen MouseClickHandler-Listener:* Wie sieht der Event-Handler aus für den Doppelklick ("Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) ??")?
http://api.openoffice.org/docs/common/r ... ndler.html
registrieren und dann auf die Ereignisse reagieren, z.B.:
Code: Alles auswählen
Global d_klick As Object
Sub start_listener()
d_klick = createUnoListener("dk_list_", "com.sun.star.awt.XMouseClickHandler")
ThisComponent.currentController.addMouseClickHandler(d_klick)
Msgbox "Bitte doppelklicken Sie eine Zelle in Spalte G"
End Sub
Sub stop_listener()
On Error Resume Next
ThisComponent.currentController.removeMouseClickHandler(d_klick)
On Error Goto 0
End Sub
Sub dk_list_disposing(par)
'
End Sub
Function dk_list_mousePressed(par) As Boolean
dk_list_mousePressed = False
End Function
Function dk_list_mouseReleased(par) As Boolean
On Error Goto err
If par.ClickCount = 2 AND ThisComponent.CurrentSelection.getCellAddress.Column = 6 Then
With ThisComponent
zeile = .CurrentSelection.getCellAddress.Row
tabelle = .CurrentSelection.getCellAddress.Sheet
inhalt = .Sheets(tabelle).getCellByPosition(6, zeile).String
'Shell("C:\Programme\bildbearbeitung.exe ", 4, inhalt)
Msgbox("Shell(""C:\Programme\bildbearbeitung.exe"", 4, " & CHR(34) & inhalt & CHR(34) & ")", 0, "Ausgeführt würde:")
End With
End If
err:
On Error Goto 0
dk_list_mouseReleased = False
End Function
z.B. indem Du überprüfst das Du in dieser Spalte bist:* Wie schränke ich ein, dass nur die 7. Spalte einen Funktionsaufruf bewirken soll ("If Target.Column = 2 Then.."??)?
Code: Alles auswählen
If ThisComponent.CurrentSelection.getCellAddress.Column = 6 Then
'...
End If
Wo steht das?Laut Forumauskunft besteht also ein Eventlistener besteht bei OO aus mind. 30 Zeilen Code
Der Umfang des Codes ist dadurch bestimmt was Du machen willst, der Mindestzeilenumfang eines Listenercodes ist jedoch theoretisch/formal: Anzahl der möglichen Ereignisse des Listeners plus 9, denn Listener-Registrierung und Abmeldung brauchen (mindestens) je 3 Zeilen ("Sub ...", Codezeile, "End Sub") plus 2 Zeilen für das immer vorkommene Ereignis "dispose" des Listeners plus je 2 Zeilen pro mögliches Listener-Ereignis des speziellen Listeners plus mindestens 1 Zeile code für irgendeine auszuführende Listener Aktion.
?bei VBasic ist es eine
Wie denn? Das ist meiner Meinung nach nur mit VBA in einer Zeile möglich.
Gruß
Stephan
- Dateianhänge
-
- doppelklick.ods
- (8.89 KiB) 58-mal heruntergeladen
Re: mit Doppelklick Programm starten
Herzlichen Dank für die Antworten auf meine Fragen!
(Mein VBA-Code besteht aus 5 Zeilen, weshalb ich davon ausging, bei OOBasic etwas völlig missverstanden zu haben. Dank der Hilfe kann ich mich nun mit Zuversicht auf OOBasic stürzen.)
(Mein VBA-Code besteht aus 5 Zeilen, weshalb ich davon ausging, bei OOBasic etwas völlig missverstanden zu haben. Dank der Hilfe kann ich mich nun mit Zuversicht auf OOBasic stürzen.)
Re: mit Doppelklick Programm starten
Mein VBA-Code besteht aus 5 Zeilen,
Das heißt dann es ging bei der einen Zeile tatsächlich doch um VB? Dann würde mich der Code schon etwas interessieren.
Naja, es wäre schon von Interesse zu erfahren welches Forum 30 Zeilen als Mindestcode für einen Eventlisterner benannt hat - deshalb fragte ich ja danach.weshalb ich davon ausging, bei OOBasic etwas völlig missverstanden zu haben.
Gruß
Stephan