per Doppelklick auf Zelle -> Inhalt in Zwischenablage

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: per Doppelklick auf Zelle -> Inhalt in Zwischenablage

Re: per Doppelklick auf Zelle -> Inhalt in Zwischenablage

von Stephan » So, 24.05.2015 12:49

gut "ZEILE" habe ich gross geschrieben
das war nicht das Problem was ich meinte, ich habe nur übersehen das "zeile" überhaupt einen Wert hatte
Im letzten Tread habe ich nur den Wert der angeklickten Zelle benötigt.
auf welchen Thread bezieht sich das?
Daher soll diesmal das Ergebnis ("Stringverkettung") der beiden Zellen
in die Zwischenablage kopiert werden.
um einen String in die Zwischenablage zu bekommen wirst Du ungefähr so vorgehen müssen wie in diesem Beispiel:

http://openoffice.2283327.n4.nabble.com ... 68930.html


Gruß
Stephan

Re: per Doppelklick auf Zelle -> Inhalt in Zwischenablage

von Stephan » So, 24.05.2015 09:23

der Code enthält Fehler bzw. Probleme

Code: Alles auswählen

arow  = adataarray(ZEILE)
ZEILE ist nirgends definiert und mit Inhalt belegt

Code: Alles auswählen

varname = Trim(arow(0)) + "_" + Trim(arow(7))
problematisch weil (zumindest) arow(7) garniucht existieren muss, da abhängig von der Position der Zelle auf welche doppelgeklickt wird

Code: Alles auswählen

dispatcher.executeDispatch(varname, ".uno:Copy", "", 0, Array())
funktioniert grundsätzlich nicht, hatten wir doch gerade erst in:
viewtopic.php?f=18&t=65823


Gruß
Stephan

Re: per Doppelklick auf Zelle -> Inhalt in Zwischenablage

von Stephan » Sa, 23.05.2015 17:56

Eigentlich benötige ich nur den Event mit den Parametern Zeile/Spalte.
Wenn Du hinter den Makronamen in Klammern einen Variablennamen schreibst übernimmt diese Variable das EReignisobjekt und es kann im Makro benutzt werden, z.B.:

Code: Alles auswählen

Sub action(tmp)
	If ThisComponent.CurrentSelection.supportsService("com.sun.star.sheet.SheetCell") Then
		With tmp.RangeAddress
			spalte = .StartColumn
			zeile = .StartRow
		End With
		Msgbox "Spalte: " & spalte & CHR(13) & _
			"Zeile: " & zeile
	Else
		Msgbox "Fehler, mehr als eine Zelle markiert"	
	End If	
End Sub
Gruß
Stephan
Dateianhänge
Doppelklick-Einzelzelle.ods
(9.23 KiB) 106-mal heruntergeladen

Re: per Doppelklick auf Zelle -> Inhalt in Zwischenablage

von Karolus » Sa, 23.05.2015 17:54

hallo

→RechtsklickTabellenreiter→Tabellenereignisse→Doppelklick →→→

Code: Alles auswählen

sub copy

dim document   as object
dim dispatcher as object

document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

end sub
das entspricht der Aufzeichnung von strg+c
Wenn ich die Zelle nur editieren will, wird trotzdem der Inhalt in die Zwischenablage kopiert
Es zwingt dich keiner dazu eine Zelle grundsätzlich per Doppelklick auszuwählen!

Nach oben