Seite 1 von 1

Makro; Wert aus Zwischenablage in bestimmte Zellen einfügen

Verfasst: Di 5. Apr 2022, 11:00
von johannn
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!

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

Verfasst: Fr 1. Jul 2022, 15:48
von krueuw
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