Makro Speichern unter.. vorhandenen Ordner prüfen

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

Moderator: Moderatoren

DirexAlex
Beiträge: 4
Registriert: Fr, 06.10.2023 18:04

Makro Speichern unter.. vorhandenen Ordner prüfen

Beitrag von DirexAlex »

Hallo,
ich bin ein 100%iger Newbie in Sachen Calc und Makros. Ich habe mir folgenden Code zusammengestückelt:

sub speichern

odoc=thiscomponent
oblatt=odoc.sheets(0)
sname=oblatt.getcellrangebyname("K17").string
spfad1=oblatt.getcellrangebyname("i16").string
spfad2=oblatt.getcellrangebyname("j16").string
spfad3=oblatt.getcellrangebyname("p16").string
surl=converttourl(spfad1 & spfad2 & spfad3 & sname & ".ods")
dim dummy()
odoc.storeasurl(surl,dummy())

end sub


Das heißt der Speicherpfad wird aus 3 Zellen zusammen gesucht + Dateiname aus einer Zelle.
Das funktioniert auch alles sehr gut, allerdings erstellt er den Dateipfad neu obwohl dieser schon existiert. Dieser sollte allerdings immer schon existieren da dieser vorher angelegt werden muss.

Wie kann ich Folgendes erreichen?:
1. Prüfung ob der Dateipfad existiert, wenn nein dann soll eine Meldung kommen á la "Bitte zuerst Pfad erstellen"
2. Prüfung ob der Dateipfad existiert, wenn ja dann ob der Dateiname schon exisitiert. Wenn nein, soll er die Datei unter dem Dateinamen (sname) dort speichern
3. Prüfung ob der Dateipfad existiert, wenn ja dann ob der Dateiname schon exisitiert. Wenn ja soll der Dialog "Speichern unter" aufgehen.

Ich habe keine Ahnung ob sowas überhaupt funktioniert, wenn ja wäre es toll wenn mir jemand von euch helfen könnte.

Vielen Dank schon mal und liebe Grüße

Alex
Karolus
********
Beiträge: 7442
Registriert: Mo, 02.01.2006 19:48

Re: Makro Speichern unter.. vorhandenen Ordner prüfen

Beitrag von Karolus »

Das funktioniert auch alles sehr gut, allerdings erstellt er den Dateipfad neu obwohl dieser schon existiert. Dieser sollte allerdings immer schon existieren da dieser vorher angelegt werden muss.
Häh?

wenn
3. …
das ist was du eigentlich möchtest, dann soltest du das tun was du eigentlich möchtest … nämlich →Datei→Speichern unter aufrufen, statt das irgendwie uneigentlich in ein Makro zu packen!
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
DirexAlex
Beiträge: 4
Registriert: Fr, 06.10.2023 18:04

Re: Makro Speichern unter.. vorhandenen Ordner prüfen

Beitrag von DirexAlex »

Hallo,

vielen Dank für deine Antwort.

Allerdings funktioniert es jetzt, ich weiß aber leider nicht wieso. Ich habe nur die 3 Zellen die den Pfad ergeben in einer weiteren Zelle zusammengefasst, jetzt geht´s.

Gruß Alex
Hiker
******
Beiträge: 591
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: Makro Speichern unter.. vorhandenen Ordner prüfen

Beitrag von Hiker »

Hast Du Dir mal per MsgBox angesehen, was bei
spfad1 & spfad2 & spfad3 & sname & ".ods"
erzeugt wurde?
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
DirexAlex
Beiträge: 4
Registriert: Fr, 06.10.2023 18:04

Re: Makro Speichern unter.. vorhandenen Ordner prüfen

Beitrag von DirexAlex »

Hallo,

wie macht man sowas? Ich denke ich muss mir mal zunächst grundlegende Dinge aneignen. Gibt es da irgendwo einen Online-Wirkshop oder so?

Vielen Dank und Gruß
Alex
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Makro Speichern unter.. vorhandenen Ordner prüfen

Beitrag von F3K Total »

Auch wenn ich Karolus zustimme,
versuche mal dieses:

Code: Alles auswählen

sub speichern

    odoc=thiscomponent
    oblatt=odoc.sheets(0)
    sname=oblatt.getcellrangebyname("K17").string
    spfad1=oblatt.getcellrangebyname("i16").string
    spfad2=oblatt.getcellrangebyname("j16").string
    spfad3=oblatt.getcellrangebyname("p16").string
    sFolderUrl = converttourl(spfad1 & spfad2 & spfad3)
    inputbox(,, convertFROMurl(sFolderUrl))
    if fileexists(sFolderUrl) then
        msgbox "ja"
    else
        msgbox "nein"
    endif
    sFileurl = converttourl(sFolderUrl & sname & ".ods")
    msgbox sFileurl
    if fileexists(sFileurl) then
        msgbox "ja"
    else
        msgbox "nein"
    endif
    dim dummy()
    'odoc.storeasurl(surl,dummy())

end sub
Gruß R
DirexAlex
Beiträge: 4
Registriert: Fr, 06.10.2023 18:04

Re: Makro Speichern unter.. vorhandenen Ordner prüfen

Beitrag von DirexAlex »

Hallo,
vielen Dank für deine Antwort.

Gruß Alex
Antworten