Automatischer Dateiname im selben Ordner

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

Moderator: Moderatoren

Klosedose
Beiträge: 2
Registriert: Mi, 12.05.2010 22:03

Automatischer Dateiname im selben Ordner

Beitrag von Klosedose »

Hallo,

wage gerade meine ersten Makro schritte und bin in diesem Thema noch Neuling.

Bin auf der Suche nach einer Möglichkeit eine Datei per Makro anhand von mehreren Zelleninhalten zu benennen und im selben Ordner wie die geöffnete Datei zu Speichern. Wenn möglich wäre es auch ganz praktisch wenn ein Unterordner entsprechend eines Zelleninhalts erstellt wird. Aber das ist erst mal nebensächlich.

Habe hier im Forum folgendes gefunden:

Code: Alles auswählen

Sub ReNummer_Speichern
   dim dummy()
   oDoc = ThisComponent
   oSheet = oDoc.Sheets.getByName("Tabelle1") 'Tabellenblattname
   oCell = oSheet.getCellRangeByName("A1") 'Zelle A1, in der Rechnungsnummer steht
   sReNummer = oCell.String 
   sLaufwerk = "F:/" 'Achtung: Für den Speicherort den Laufwerkspfad anpassen
   Filename = sReNummer
   neuerpfad = sLaufwerk + Filename + ".ods"
   dateiurl=converttourl(neuerpfad)
   odoc.storeAsUrl(dateiurl,dummy())
End Sub
Was muss ich tun um mehrere Zellen als Quelle zu nutzen ergänzt mit festem Text und eventuell auch Leerzeichen wenn möglich?
Beispiel: "Das Forum ist (A1) und die Leute (B4)" ;)
Wie schon erwähnt soll der aktuelle Ordner der Datei als Ziel genutzt werden.

Hoffe ich fordere hier nicht zu viel.
Schon mal danke im Vorraus
Newbiebuh2010
*
Beiträge: 17
Registriert: Mo, 10.05.2010 19:26

Re: Automatischer Dateiname im selben Ordner

Beitrag von Newbiebuh2010 »

Hi,
einen Teil kann ich dir vielleicht geben...
Der Schnipsel hier setzt die Informationen aus verschiedenen Zellen zu einem String zusammen, den du dann auch als Dateinamen verwenden kannst. Das Suffix muss natürlich noch angehängt werden.

Code: Alles auswählen

		
blatt=thiscomponent.sheets.getbyname("Tabelle1")
xa=""
'Verzeichnisname in der Zelle
azelle=blatt.getcellrangebyname("C20")
xa=azelle.string
'nun den Backslash
xa=xa+"\"
'Dateiname in der Zelle
azelle=blatt.getcellrangebyname("E20")
xa=xa+azelle.string+"\"
'Laufwerk und Pfad voranstellen
xa="C:\Oberhampel\Mittelhampel\Unterhampel\"+xa
Ich hoffe, das hilft ein wenig.
Viele Grüße
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Automatischer Dateiname im selben Ordner

Beitrag von Karolus »

Hallo

Code: Alles auswählen

Sub Speichern_A1_B1_C1
dim dummy()
with thiscomponent.sheets(0)'1.Blatt
	uordner = .getcellrangebyname("A1").string
	datname = "bla " & .getcellrangebyname("B1").string & " blubb "	& .getcellrangebyname("C1").string & ".ods"
end with
	surl = thiscomponent.url
	aurl = split(surl,"/")
	aurl(ubound(aurl)) = uordner  'ohne Unterordner hier : ... = ""
	spfad = join(aurl,"/")& "/" & datname
	spfad = converttourl(spfad)
	thiscomponent.storeToUrl(spfad,dummy()) 'storeToUrl verändert nicht den aktuellen Dateipfad
	'thiscomponent.storeasUrl(spfad,dummy()) 'storeasUrl verändert den akruellen Dateipfad
End Sub
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Klosedose
Beiträge: 2
Registriert: Mi, 12.05.2010 22:03

Re: Automatischer Dateiname im selben Ordner

Beitrag von Klosedose »

Karo, funktioniert Perfekt.
Also ich versteh zwar nur Bahnhof, aber zum Anpassen an meine Datei sollte es gerade noch so reichen.

Vielen Dank
Antworten