Hallo Liebe Gemeinde,
ich hab Euch schon längere Zeit nicht mehr mit Problemen genervt
, 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 (24.52 KiB) 2552 mal betrachtet
Wenn ich im Code
durch das ersetze
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