oFunctionAccess->IF->file-Verknüpfung geht nicht

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

Moderator: Moderatoren

Benutzeravatar
balu
********
Beiträge: 3543
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

oFunctionAccess->IF->file-Verknüpfung geht nicht

Beitrag von balu » Di, 24.09.2013 23:53

Hallo Liebe Gemeinde,

ich hab Euch schon längere Zeit nicht mehr mit Problemen genervt :wink:, doch jetzt ist es mal wieder so weit (leider).


Also der Betreff soll in langform folgendes sagen.

Ich will die Calc Funktion WENN im Makro mittels oFunctionAccess = createUnoService( "com.sun.star.sheet.FunctionAccess" ) nachbauen. Bei einer einfachen Vergleichoperation finktioniert das auch. Aber ich kann damit keine File-Verknüpfung so wie im Tabellenblatt vornehmen. Und ich versteh nicht warum mir das nicht gelingt.

Im Tabellenblatt Tabelle1 Zelle A1 würde das ja beispielsweise so aussehen.

Code: Alles auswählen

=WENN('file:///C:/Temp/Datei1.ods'#$Tabelle1.A1=11;"OK";"FEHLER")
Das funktioniert so wie es soll. Ich kann aber das so nicht ins Makro übernehmen, oder ich mach da irgendwas falsch. Der Code sieht momentan so aus.

Code: Alles auswählen

    Private filepicker

Sub IF_File
	Dim argF(2) As Variant
	dim oFunctionAccess as object
	oFunctionAccess = createUnoService( "com.sun.star.sheet.FunctionAccess" )
		fName = FileOpenDialog ("Datei auswählen")
		fAsti = "='" & fName & "'#$Tabelle1.A1"

		argF(0) = fAsti = 11
		argF(1) = "OK"
		argF(2) = "FEHLER"

	print oFunctionAccess.callFunction( "IF", argF() ) 
end sub	    
'
'--------------------------------------------------------------------------------
'
function FileOpenDialog(title as String) as String
    filepicker = createUnoService("com.sun.star.ui.dialogs.FilePicker")
    filepicker.Title = title
    filepicker.execute()
    files = filepicker.getFiles()
    FileOpenDialog = files(0)
End function
Das Ergebnis sieht dann so aus.
Fehler.png
Fehler.png (24.52 KiB) 1724 mal betrachtet

Wenn ich im Code

Code: Alles auswählen

		args(0) = fAsti = 11
durch das ersetze

Code: Alles auswählen

		args(0) = 3*8 = 24
dann wird korrekterweise "OK" ausgegeben.
Aber die File-Verknüpfung gelingt mir nicht, obwohl durch einen einfachen Print Befehl mir angezeigt wird das der Pfad samt Datei genau so aussieht wie im Tabellenblatt geschrieben, siehe Code weiter oben.

Es ist also irgendwie ein Problem mit der Variablen fAsti. Besser gesagt bin ich mir momentan überhaupt gar nicht sicher das das Verfahren wie ich es dort anwende, korrekt ist. Ich vermute mal das ich da noch irgendwas vergessen habe damit das funktioniert. Nur was, das weiß ich nicht.

Bevor ich es vergesse; Nein. Ich will keine alternative mit loadComponentFromURL, da ich die Datei nicht laden will, sondern einfach die WENN-Formel im Makro nachbauen.


Fragen an Euch
- Kann das überhaupt generell so funktionieren, oder geht das überhaupt nicht auf diese Art und Weise?
- Wie müsste ich das Makro umbauen damit es funktioniert?
- Wer kann mir behilflich sein?



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste