🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Makro; Wert aus Zwischenablage in bestimmte Zellen einfügen

Alles zur Programmierung im LibreOffice.
Antworten
johannn
Beiträge: 10
Registriert: Mi 19. Jan 2022, 16:00

Makro; Wert aus Zwischenablage in bestimmte Zellen einfügen

Beitrag von johannn » Di 5. Apr 2022, 11:00

hallo an alle,
ich versuche folgendes problem zu lösen:
im zwischenspeicher befindet sich ein wert (eine zahl die ich ausserhalb von LO gespeichert habe), diese möchte ich in LO zelle C3 einfügen wenn diese leer ist, sonst in zelle D3, oder falls diese bereits eine zahl enthält in zelle D3.
händisch funktioniert das problemlos, ich gehe in die nächste leere zelle (C,D oder E3) drücke strg+v, erledigt.
im beigefügten beispiel habe ich ein makro gebastelt soweit meine kenntnisse reichen.
leider funktioniert es nicht wirklich.....
villeicht kann mir hier jemand weiterhelfen,
besten dank!
Dateianhänge
beisp mem.ods
(10.7 KiB) 155-mal heruntergeladen

krueuw
Beiträge: 18
Registriert: Mo 9. Mai 2016, 13:26

Re: Makro; Wert aus Zwischenablage in bestimmte Zellen einfügen

Beitrag von krueuw » Fr 1. Jul 2022, 15:48

Ich habe hier mal ein abgewandeltes Beispiel zum Auslesen der Zwischenablage in eine Variable von Karolus, das bei mir funktioniert und welches du anpassen kannst:

Code: Alles auswählen

Sub ImportClipboard' Autor: Karolus
	Dim oClip, oClipContents, oTypes
   	Dim oConverter, convertedString$
   	Dim i%, iPlainLoc% 
   	iPlainLoc = -1
   	oClip = createUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
   	oConverter = createUnoService("com.sun.star.script.Converter")
   	oClipContents = oClip.getContents()
   	oTypes = oClipContents.getTransferDataFlavors()
   	Dim msg$, iLoc%, outS
   	msg = ""
   	iLoc = -1
   	For i=LBound(oTypes) To UBound(oTypes)
    	If oTypes(i).MimeType = "text/plain;charset=utf-16" Then
     	iPlainLoc = i
    	Exit For
   		End If
   	Next
   	If (iPlainLoc >= 0) Then
    	convertedString = oConverter.convertToSimpleType(oClipContents.getTransferData(oTypes(iPlainLoc)), com.sun.star.uno.TypeClass.STRING)
   	Else 
   		Fehlermeldung("ImportClipboard: Nichts zum Einfügen vorhanden",0,0)
   	End If
	aOTRS(0) = convertedString 'Ausgangsmaterial aus der Zwischenablage
End Sub
Ubuntu 24.4
APT-Version: 24.2.5.2 (X86_64) / LibreOffice Community
Build ID: 420(Build:2)
CPU threads: 4; OS: Linux 6.8; UI render: default; VCL: gtk3
Locale: de-DE (de_DE.UTF-8); UI: de-DE
Ubuntu package version: 4:24.2.5-0ubuntu0.24.04.2


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten