BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 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) 79-mal heruntergeladen

krueuw
Beiträge: 17
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

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten