Seite 1 von 1
Relative Pfade, Excel-Kompatibilität und Start-Button
Verfasst: Mi, 13.04.2011 18:53
von Basti
Hallo.
Ich habe drei Fragen zu OOo-Makros:
1. Wie gebe ich relative Pfadangaben an? (geht um einen CSV-Export aller Blätter; das Makro muss sowohl unter UNIX, als auch unter Windows laufen)
2. Ist ein OOo-Makro in einer XLS-Datei auch unter Excel lauffähig?
3. Gibt es einen einfachen Weg, ein Makro zu aktivieren, also z.B. ein Button?
Gruß.
Re: Relative Pfade, Excel-Kompatibilität und Start-Button
Verfasst: Mi, 13.04.2011 19:36
von Karolus
Hallo
1. Ich nehme mal an du möchtest die Makros "mit einem Dokument" transportieren ? Das Dokument hat "seinen Pfad" in der Variablen 'thisComponent.url' → Damit kannst du arbeiten.
2. Nein
3. Ja
Gruß Karo
Re: Relative Pfade, Excel-Kompatibilität und Start-Button
Verfasst: Mi, 13.04.2011 19:49
von Basti
Hallo Karo.
Vielen Dank!
Karolus hat geschrieben:
1. Ich nehme mal an du möchtest die Makros "mit einem Dokument" transportieren ? Das Dokument hat "seinen Pfad" in der Variablen 'thisComponent.url' → Damit kannst du arbeiten.
Die exportierten CSV-Dateien sollen einfach in ein Unterverzeichnis gespeichert werden, im selben Ordner liegt (oder angelegt wird, falls das geht…), in dem das Dokument selbst liegt. Jetzt hab ich noch das Problem, dass ich bei jedem Export durch das Makro einen Dialog geöffnet bekomme, mit der Info, dass nur das aktuelle Blatt gespeichert wird. Lässt sich dieser unterdrücken oder per Makro triggern?
2. Nein
Gibt es hier Alternativen? Ich sehe, dass es anscheinend auch Python- und JavaScript-Makros gibt. Lässt sich mit denen ein solcher Export MS-Kompatibel basteln? Nochmal konkret: Eine XLS-Tabelle enthält mehrere Blätter und ich will einfach nur jedes dieser Blätter je in eine eigene CSV-Datei exportieren.
Gruß.
Re: Relative Pfade, Excel-Kompatibilität und Start-Button
Verfasst: Mi, 13.04.2011 22:06
von Stephan
Jetzt hab ich noch das Problem, dass ich bei jedem Export durch das Makro einen Dialog geöffnet bekomme
Tja, die Frage ist dann nur was "das Makro" ist, ich sehe hier nämlich keinen Code ...
Gibt es hier Alternativen?
Du könntest VBA verwenden, ggf. mußt Du in den Code eine Weiche einbauen damit für Calc und Excel auf einen anderen Code verzweigt wird, prinzipiell also:
Code: Alles auswählen
Sub test()
On Error Goto xls
x = ThisComponent.URL
'weiterer Code für Calc
xls:
'Code für Excel
End Sub
Klar sollte natürlich sein das VBA nur in Excel in der entsprechenden Datei speicherbar ist, die Datei also in Excel erzeugt werden muß.
Gruß
Stephan
Re: Relative Pfade, Excel-Kompatibilität und Start-Button
Verfasst: Mi, 13.04.2011 22:18
von Karolus
Hallo
Evtl. ist
das etwas für dich - geht aber nur mit ~.ods
Gruß Karo
Re: Relative Pfade, Excel-Kompatibilität und Start-Button
Verfasst: Mi, 13.04.2011 22:36
von Stephan
geht aber nur mit ~.ods
eigentlich nicht, denn das Makro funktioniert im Gegenteil nur mit *.xls. Zum Einen steht das als Kommentar im Code:
Code: Alles auswählen
This Open Office macro will
' - read all the .xls files located in the cFolder defined some line below
aber auch im eigentlichen Code ist es so implementiert:
wobei das Ganze nur eine Lapalie ist denn man könnte das ja schnell um *.ods ergänzen
Code: Alles auswählen
If LCase( Right( cFile, 4 ) ) = ".xls" OR LCase( Right( cFile, 4 ) ) = ".ods" Then
Gruß
Stephan
Re: Relative Pfade, Excel-Kompatibilität und Start-Button
Verfasst: Do, 14.04.2011 09:40
von Basti
Vielen Dank.
Mit der verlinkten Extension kann ich mir etwas zusammen basteln. Mit VBA muss ich mich dann später mal beschäftigen, gibt hier womöglich auch schon fertige Makros, die ich anpassen kann.
Gruß.
Re: Relative Pfade, Excel-Kompatibilität und Start-Button
Verfasst: Do, 14.04.2011 09:50
von Karolus
Hallo
Wenn die Extension sowohl auf .xls als auch auf .ods anpassbar ist, benötigst du eine VBA-lösung aus Excel heraus doch nicht unbedingt ?
Gruß Karo
Re: Relative Pfade, Excel-Kompatibilität und Start-Button
Verfasst: Do, 14.04.2011 09:53
von Basti
Das Makro soll immer auf eine .xls-Datei angewandt werden und sowohl in OOo, als auch in Excel laufen.