per Doppelklick auf Zelle -> Inhalt in Zwischenablage

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: per Doppelklick auf Zelle -> Inhalt in Zwischenablage

Beitrag 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!
Zuletzt geändert von Karolus am Sa, 23.05.2015 17:57, insgesamt 1-mal geändert.
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: per Doppelklick auf Zelle -> Inhalt in Zwischenablage

Beitrag 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
Dateianhänge
Doppelklick-Einzelzelle.ods
(9.23 KiB) 105-mal heruntergeladen
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: per Doppelklick auf Zelle -> Inhalt in Zwischenablage

Beitrag 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
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: per Doppelklick auf Zelle -> Inhalt in Zwischenablage

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