Dateiname aus Zelle(n) erzeugen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Kelly-Propelly
Beiträge: 4
Registriert: Sa, 20.01.2007 19:08

Dateiname aus Zelle(n) erzeugen

Beitrag von Kelly-Propelly »

Ist mein erster Beitrag, deshalb erstmal ein Hallo an alle.

Meine Frage: Gibt es eine Möglichkeit, aus einer oder mehreren Zellen automatisch den Dateinamen zu generieren, wenn ich auf speichern klicke.

Beispiel: Zelle A1 enthält einen Namen, Zelle C8 enthält einen Ort. Bei Klick auf Speichern entsteht eine Datei namens Name_Ort.ods

Falls es schon einen Thread zu diesem Thema gibt, habe ich ihn nicht gefunden. Viele Grüße und danke...
Karolus
********
Beiträge: 7517
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

Hallo

Schau dir dir mal dies an, dürftest du dir auf deine Wünsche anpassen können.http://www.ooo-portal.de/index.php?modu ... topic=3155
Bei Problemen frag noch mal nach.

Gruß Karo
Kelly-Propelly
Beiträge: 4
Registriert: Sa, 20.01.2007 19:08

Beitrag von Kelly-Propelly »

Danke für die extrem schnelle Antwort, Karo. Ich kann dank Deiner Hilfe jetzt Dateien mit dem Namen eines Feldes erzeugen. Ich bekomm's aber nicht hin, dass Calc den Inhalt von zwei Feldern kombiniert. Also A1_C3.ods

Bin leider der totale Nullblicker, wenn's um Programmier- oder Skriptsprachen aller Art geht. Wäre für weitere Hilfe natürlich dankbar, versuch jetzt aber auch einfach weiter dran zu knobeln.
euroandi
**
Beiträge: 30
Registriert: Sa, 11.03.2006 16:32

Beitrag von euroandi »

Hallo,


zum Verbinden von mehreren Zellinhalten einfach in eine andere Zelle folgende Formel schreiben.

=A1&"_"&C3&".ods"

Immer wichtig: &
Zellinhalt: z.B von A1 und C3
Alles was nicht in den Zellen steht mit: " am Anfang und Schluß

Gruß Andreas
Karolus
********
Beiträge: 7517
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

Hallo

Ist doch im Prinzip nur eine Zeile in der du C8 als Variable definierst .
Am Stück:

Code: Alles auswählen

Sub speichern_unter_A1_und_C8
dim dummy()
myDoc = thisComponent
mySheet = myDoc.sheets(0) '1. Tabellenblatt
namenszelle = mysheet.getCellRangeByName("A1")
ortszelle = mysheet.getCellRangeByName("C8")
'Lesen der Werte
Dateiname= namenszelle.string &"_" & ortszelle.string

dateipfad="dein/Verzeichniss/Pfad/"& Dateiname &".ods"
'dein Pfad muss ^^^^^^^^^^^^^^^ dort innerhalb der "-Anführungszeichen stehen !
dateiurl=converttourl(dateipfad)
mydoc.storeasurl(dateiurl,dummy())
rem oder
rem mydoc.storetourl(dateiurl,dummy())
End Sub
In der Zeile: 'dateipfad.... ' musst du noch deinen Verzeichnisspfad eintragen.
Zum Speichern verknüpsft du am besten dieses Makro mit einer Schaltfläche im Dokument.
Eine Anleitung findest du hier:http://www.ooowiki.de/MakrosMitEinemKlick

Gruß Karo
Kelly-Propelly
Beiträge: 4
Registriert: Sa, 20.01.2007 19:08

Beitrag von Kelly-Propelly »

Danke an Euch beide. Es funktioniert mit beiden Methoden. Habe nur noch das Problem, das er mir jetzt beim Starten des Dokuments einen Laufzeitfehler in folgender Zeile bringt:

Code: Alles auswählen

mySheet = myDoc.sheets(0)
Danke schon mal für die schnelle und gezielte Hilfe. Ihr habt echt Tage des verzweifelten Ausprobierens beendet.
gripslund
***
Beiträge: 82
Registriert: So, 04.06.2006 09:46

Beitrag von gripslund »

Ist "myDoc" schon zugewiesen? Sind alle verwendeten Variablen (korrekt) deklariert?
gripslund
Kelly-Propelly
Beiträge: 4
Registriert: Sa, 20.01.2007 19:08

Beitrag von Kelly-Propelly »

Das ist der Code des Makros:

Code: Alles auswählen

Sub Speichern_als_Zellname
dim dummy()
myDoc=thisComponent
mySheet=myDoc.sheets(0)
myCell=mySheet.getCellByPosition(3,0)
myString=myCell.string
datei="D:/Rechnungen/"& myString &".ods"
dateiurl=converttourl(datei)
odoc=thisComponent
odoc.storeasurl(dateiurl,dummy())
rem oder
rem odoc.storetourl(dateiurl,dummy())
Das Makro läuft in einer Dokumentenvorlage und ist dem Ereignis ""Geändert"-Status wurde geändert" zugewiesen.

Funktioniert einwandfrei, ich muss aber jedesmal den Debugger wegklicken, wenn ich das Dokument starte.

Ach ja, ich benutze Openoffice 2.1.

Vielen Dank für Eure Hilfe!
Mani
Beiträge: 7
Registriert: Fr, 08.10.2010 12:39
Wohnort: Österreich

Re: Dateiname aus Zelle(n) erzeugen

Beitrag von Mani »

Hallo
Ich habe OO3 mit win XP und 7 bei mir funktioniert leider keiner der Makros die ihr Gepostet habt.
Ich hätte noch eine Anforderung ans Makro ich möchte immer einen einen fixen Text dazufügen
z.b. "A1"_text.ods


Lg Mani


Moderation,4: es reicht, wenn Du hier in diesem Thread nachfragst. Deshalb habe ich Dein anderes Posting gelöscht. Die Antwort von Karolus hätte ich Dir auch gegeben. Also bitte: Deinen Lösungsversuch hier posten und die Fehler(-meldungen) beisteuern; Danke
Danke für eure Geduld
Karolus
********
Beiträge: 7517
Registriert: Mo, 02.01.2006 19:48

Re: Dateiname aus zelle erstellen

Beitrag von Karolus »

Hallo
Grundsätzlich funktioniert das, wenn du aber lediglich die Information "es geht nicht" lieferst, kann dir keiner helfen.

Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Mani
Beiträge: 7
Registriert: Fr, 08.10.2010 12:39
Wohnort: Österreich

Re: Dateiname aus Zelle(n) erzeugen

Beitrag von Mani »

Leider sind diese Makros für mich zu kompliziert das ich sie für meine Zwecke adaptieren kann,
ich bin erst Anfänger in Sachen Programmieren.
Lg Mani
Danke für eure Geduld
Karolus
********
Beiträge: 7517
Registriert: Mo, 02.01.2006 19:48

Re: Dateiname aus Zelle(n) erzeugen

Beitrag von Karolus »

Hallo

mglw. gibts da ein Problem mit den :Doppelpunkten im Dateinamen, stell mal die Formatierung der Zelle G72 um, zb. auf einen Zeit-format-code HH"_"MM"_"SS

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Karolus
********
Beiträge: 7517
Registriert: Mo, 02.01.2006 19:48

Re: Dateiname aus Zelle(n) erzeugen

Beitrag von Karolus »

Hallo

Was jetzt,vor einer knappen Woche war alles gut, und jetzt plötzlich Win10 und "geht nicht"

Meine Glaskugel ist noch zur Erholungskur auf Madeira!
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Dateiname aus Zelle(n) erzeugen

Beitrag von Stephan »

Wenn ich das MAkro nun starte liest es anscheinend die Zellen nicht mehr aus und es speichert unter "__" also einfach die beiden Unterstriche die zwischen name _Datum_Uhrzeit stehen .

Hat Win 10 wieder andere Dateinamenskonventionen ?!?
Was soll es denn mit einer Dateinamenskonvention zu tun haben wenn nichts gelesen wird?
Sorry, nur das sind Deine Worte und da aus Deinen Gesamtausführungen (für mich) keine Fehlerursache ersichtlich ist, scheint mir diese Frage deshalb sinnvoll weil Du Dir ja etwas bei der Aussage gedacht haben musst und wenn wir wüssten was führt das vielleicht zu einer Lösung.

Ansonsten versuche ich mich einmal im Raten:
der Fehler ist das das Tabellenblatt mit dem Index 0 ein Anderes ist als vorher (z.B. weil ein neues Blatt in die Datei eingefügt wurde) und auf dem jetzt aktuellen Tabellenblatt mit Index 0 die betreffenden Zellen leer sind.


Gruß
Stephan
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Dateiname aus Zelle(n) erzeugen

Beitrag von Stephan »

genau das ....
Und was ist "das"?
Das MAkro speichert zwar im richtigen Pfad .... jedoch ohne Name Datum und Uhrzeit .... nur die beiden Trenn-Unterstriche sind da als Dateiname
das hattest Du bereits geschrieben


Wenn Du keine weiteren Informationen hast kann Dir niemand helfen, das Makro ansich ist einwandfrei und da alles darauf hindeutet das aus den Zellen keine Werte gelesen werden können hatte ich auch bereits eine Mutmaßung geäußert was dafür die Ursache sein kann.



Gruß
Stephan
Antworten