Seite 1 von 1
Dateiname an Variable übergeben
Verfasst: Do, 02.12.2004 20:49
von mecki_45
Hallo zusammen,
gibt es eine Möglichkeit, den Dateinamen einer geöffneten Datei an eine Variable zu übergeben?
Wie kann der Name eines Sheets eines Calc-Dokuments an eine Variable übergeben werden?
Danke
Gruß
Alex
Verfasst: Do, 02.12.2004 21:54
von Stephan
gibt es eine Möglichkeit, den Dateinamen einer geöffneten Datei an eine Variable zu übergeben?
Code: Alles auswählen
Sub Main
i = 1
Do
datei_name = Right(ConvertToURL(ThisComponent.URL), i)
i = i + 1
Loop While Left(datei_name, 1) <> "/"
msgbox Right(datei_name,LEN(datei_name) - 1)
End Sub
Wie kann der Name eines Sheets eines Calc-Dokuments an eine Variable übergeben werden?
Der Name ist in der name-Eigenschaft des Blattes, also wenn das Sheet-Objekt definiert ist als "ein_bestimmtes_Blatt" dann ist der Name:
und Übergabe an Variable:
Gruß
Stephan
Verfasst: Fr, 03.12.2004 23:40
von mecki_45
Hallo Stephan,
irgendwie klappt es mit dem Sheet-Namen nicht.
Hab's so probiert:
Sub Sheet_to_Name
DIM Sheet As Object
DIM Document As Object
Document = ThisComponent
blatt = Sheet.name
msgBox "Blatt: " + blatt
End Sub
Es erscheint immer die Fehlermeldung "Objektvariable nicht definiert".
Was ist falsch?
Gruß und Danke
Alex
Verfasst: Sa, 04.12.2004 01:26
von Stephan
Du hast doch 'Sheet' gar kein Objekt zugewiesen darum kommt die Fehlermeldung.
Ich verstehe ja das Du den Namen des Tabellenblattes willst, bloß von welchem? In der Arbeitsmappe sind üblicherweise mehrere und da müßtest Du Dich dann zunächst entscheiden für welches Du den Namen brauchst, kommt ebend drauf an. Z.B.: das linke, das gerade aktive, das wo in einer Zelle ein bestimmter Wert steht usw.
Dieses Makro liefert die Namen aller Tabellenblätter hintereinander:
Code: Alles auswählen
Sub Main
For i = 0 To ThisComponent.Sheets().Count - 1
msgbox ThisComponent.Sheets(i).Name
Next
End Sub
Gruß
Stephan
Verfasst: Sa, 04.12.2004 09:07
von Stephan
Hallo Alex,
Code: Alles auswählen
Sub Main
Dim a as String
a = ThisComponent.currentcontroller.activesheet.name
msgbox a
End Sub
Wenn es hiermit:
denn das möchte ich dann mit dem Sheet-Namen speichern
noch Probleme gibt, melde Dich nochmal.
Gruß
Stephan
Verfasst: Sa, 04.12.2004 21:46
von mecki_45
Hallo Stephan,
hab's umgesetzt, aber es gibt noch ein kleines Problem.
Hier das Makro:
-----------------------------------
Sub File_to_PDF
DIM Datei_Pfad As String
DIM Doc_Name As String
DIM File_Name As String
DIM PDF_Pfad As String
DIM Document As Object
DIM ExportEigenschaften(1) As New com.sun.star.beans.PropertyValue
PDF_Pfad = "file:///D:/transfer/"
I = 1
Do
Doc_Name = Right(ConvertToURL(ThisComponent.URL), I)
I = I + 1
Loop While Left(Doc_Name, 1) <> "/"
File_Name = right(Doc_Name, Len(Doc_Name) -1)
' --- Dateiname ohne EXTENSION erzeugen
File_Name = left (File_Name, Len(File_Name) -4)
msgBox "Datei: "+ File_Name
' --- Pfad und Dateiname zusammensetzen
Datei_Pfad = PDF_Pfad + File_Name + ".pdf"
msgbox "Name: " + Datei_Pfad
Datei_Pfad = ConvertToUrl (Datei_Pfad)
' --- Alles zum speichern zusammensetzen
FilterName = "calc_pdf_Export"
ExportEigenschaften(0).Name = "FilterName"
ExportEigenschaften(0).Value = FilterName
ExportEigenschaften(1).Name = "CompressMode"
ExportEigenschaften(1).Value = 0
Document.storeToUrL (Datei_Pfad, ExportEigenschaften())
End Sub
Und in der letzten Zeile bei "document.storetourl..." kommt eine Fehlermeldung >>Objektvariable nicht belegt<<
Ich frag mich welche?
Hast Du 'ne Idee?
Grüßle
Alex
Verfasst: Sa, 04.12.2004 22:14
von Stephan
Hast Du 'ne Idee?
-->Document !
mußt Du entweder noch einfügen:
oder:
oder gleich:
Code: Alles auswählen
ThisComponent.storeToUrL (Datei_Pfad, ExportEigenschaften())
ich habs nicht getestet aber das sollte der Fehler sein.
Gruß
Stephan
Verfasst: Sa, 04.12.2004 23:52
von mecki_45
Hallo Stephan,
leider bringt keine deiner 3 Anregungen eine Besserung.
Es erscheint jedesmal die Meldung:
"Basic-Laufzeitfehler: Es ist eine Exception aufgetreten - com.sun.star.io.IOException message"
Ich hab bereits ein Makro zum speichern der Datei als PDF am laufen, das klappt. nur jetzt, wenn ich die Datei nachträglich als PDF speichern will, so wie das Makro es ausweist, dann kommt der Fehler.
Eigenartig.
Ich hoffe, die Meldung hilft Dir etwas weiter.
Grüßle
Alex
Verfasst: So, 05.12.2004 09:14
von mecki_45
Hallo Stephan,
Fehler gefunden!
Die Fehlermeldung tritt auf, wenn eine leere Datei abgespeichert werden soll.
Und genau das hab ich gemacht. Nachdem ich etwas eingetragen habe, klappte es problemlos.
Danke für Deine Mühe und einen schönen Sonntag
Alex