Seite 1 von 1

Re: per Doppelklick auf Zelle -> Inhalt in Zwischenablage

Verfasst: Sa, 23.05.2015 17:54
von Karolus
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!

Re: per Doppelklick auf Zelle -> Inhalt in Zwischenablage

Verfasst: Sa, 23.05.2015 17:56
von Stephan
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

Re: per Doppelklick auf Zelle -> Inhalt in Zwischenablage

Verfasst: So, 24.05.2015 09:23
von Stephan
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

Verfasst: So, 24.05.2015 12:49
von Stephan
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