Hallo mikeleb,
danke für die Antwort. Genau in diesem Dokument habe ich ich schon etwas gefunden.
Code: Alles auswählen
Sub Datei_suchen
GesuchteDatei="einritte.ods"
Dim oDesktop As Object, oDocs As Object
Dim oDoc As Object, oComponents As Object
oComponents = StarDesktop.getComponents()
oDocs = oComponents.createEnumeration()
Do While oDocs.hasMoreElements()
oDoc = oDocs.nextElement()
datei=odoc.geturl()
FileN=FileNameoutofPath(datei)
if FileN=GesuchteDatei then
print "gefunden"
End If
Loop
End sub
Soweit ich es verstanden habe werden hier die die geöffneten Dateien durchsucht und geprüft ob die gesuchte dabei ist (ich habe den Code leicht modifiziert). In diesem Code kommt exakt die gleiche Zeile wie in dem von dir kopierten Code vor
FileN=FileNameoutofPath(datei)
Genau in dieser Zeile stürzt die Sub mit der Meldung: "Basic-Laufzeitfehler, Sub- oder Function-Procedur nicht definiert."
Dannenhöfer schreibt: "Dies geht mit FileNameoutofPath aus der Bibliothek Tools."
Er hat in seinem Dokument einen Abschnitt mit Tools aber dort habe ich nichts passendes gefunden. Ich weiß auch nicht wo es diese Bibliothek Tools gibt.
Ein weiteres Problem ist, dass ich wenn ich die Datei als geöffnet identifiziert habe nur eine Meldung sinden kann, die dem Anwender sagt, schließe zuerst diese Datei und starte das Makro neu. Das Widersinnige dabei ist, dass das Makro genau diese Datei dann selbst öffnet. Für mich logischer wäre es, wenn ich die URL schone kenne und weiß, dass diese Datei geöffnet ist, die gleich zu verwenden und dazu habe ich nichts gefunden. Ich weiß zwar wie man mit einer bekannten URL eine Datei öffnen kann
(oODS = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, myFileProp())
aber nicht wie ich die Variable oODS (in diesem Beispiel) bei einer bereits geöffneten Datei befüllen kann. Könnte ich das dann bräuchte ich keine Fehlermeldung und könnte die gesammte Verarbeitung durchführen, egal ob die Datei zu öffnen ist oder die bereits geöffnete verwendet wird.