Seite 1 von 1

Speichern unter... mit Makros!?

Verfasst: Do, 02.08.2007 19:08
von xboxkill
Guten Tag alle zusammen,
ich habe ein Problem. Und zwar weiß ich nicht, wie ich ein Makro anlegen kann, welches die Datei in einem bestimmten Ordner mit Buchstaben speichert.

So soll das in etwa aussehen:

Bsp1:
Name: Mustermann
Vorname: Max
Buchstabe: M
Dateiname: Mustermann_max.ods
Ordner: M

Bsp2:
Name: Gandorf
Vorname: Irene
Buchstabe: G
Dateiname: Gandorf_irene.ods
Ordner: G

Ich hoffe ihr könnt mir weiterhelfen!!!

Danke schonmal im voraus.

Greetz
xboxkill

Re: Speichern unter... mit Makros!?

Verfasst: Fr, 03.08.2007 10:09
von komma4
[Nörgelmodus on]
Verwende die (undokumentierte) Funktion GetPathSeparator() zum Ermitteln des Pfad-Trennzeichens: es gibt auch andere Systeme ausser Win/Dos

Nutze die Funktion ConvertToURL um einen Namen für eine Dateioperation zu generieren (OOo verwendet und erwartet die URL-Schreibweise); und ...
nach meinen Versuchen erkennt OOo automatisch den Dateityp; ein Setzen des MediaType ist nicht erforderlich. Code sollte/könnte hier dann lauten:

Code: Alles auswählen

BasicLibraries.LoadLibrary("Tools")
ThisComponent.storeToURL( ConvertToURL( Filename ) , Array() )
Dein Zähler Nr ist als Integer deklariert, aber nicht initialisiert:
* die erste Variante heisst dann "C:\Name_Vorname-0.ods"
* nach 32767 Varianten ist Schluss (Überlaufsfehler) - wahrscheinlich braucht ein Anwender nicht so viele Kopien (Schreibversuche).
[Nörgelmodus off]
Ich danke Dir Rainer auf jeden Fall aber für die Antwort: mir war die Frage zu schwammig formuliert um zu antworten... Dein Beispiel ist ausbaufähig. Mal sehen, ob der XBox-Killer damit etwas anfangen kann.

Re: Speichern unter... mit Makros!?

Verfasst: Sa, 11.08.2007 21:11
von xboxkill
\\EDIT: Bin jetzt soweit, dass keine Fehler mehr in Basic sind. Nur, wenn ich das Makro teste, dann funktioniert es trotzdem nicht.

Soll ich euch die Datei mal hochladen?

Greetz

Re: Speichern unter... mit Makros!?

Verfasst: Di, 14.08.2007 20:11
von xboxkill
Hier im Anhang habe ich die Datei hochgeladen

Re: Speichern unter... mit Makros!?

Verfasst: Di, 14.08.2007 23:24
von turtle47
Hi Xboxkill,

hier mal ein "Grundgerüst" welches bei mir funktioniert:

Code: Alles auswählen

Sub Speichern_Anamnese
   Dim oDoc As Object
   Dim oSheet As Object
   Dim oSheets As Object
   Dim oCell As Object
   Dim sName As String
   Dim sVorname As String
   Dim TempName As String
   Dim Dirname As String
   Dim sLaufwerk As String
   Dim Nr As Integer
   dim dummy()
   oDoc = ThisComponent
   oSheet = oDoc.Sheets.getByName("Anamnese")
   'Falls der Name in einer Zelle abgelegt wurde:
   oCell = oSheet.getCellByPosition(1, 0) 'Tabellenfeld, in dem der Name steht
   sName = oCell.String
   oCell = oSheet.getCellByPosition(1, 1) 'Tabellenfeld, in dem der Vorname steht
   sVorname = oCell.String
   sLaufwerk = "C:/"
   Filename = sName & "_" & sVorname
   Dirname =  Left(sName,1)
   neuerpfad = sLaufwerk + Dirname + "/" + Filename + ".ods"
   dateiurl=converttourl(neuerpfad)
   odoc.storetourl(dateiurl,dummy())
End Sub
Den Rest kannst Du ja selber wieder einbauen. :shock:
Mir ist es jetzt zu spät dafür . :(

Viel Erfolg.

Jürgen

Re: Speichern unter... mit Makros!?

Verfasst: Mi, 15.08.2007 08:00
von xboxkill
Jawoll!!!

Eine riesiges DANKESCHÖN an euch beide!!!

Greetz

Re: Speichern unter... mit Makros!?

Verfasst: Mi, 15.08.2007 16:52
von turtle47
Hallo Xboxkill,

wie sieht denn Dein fertiger Code jetzt aus?

Ich möchte gerne auch noch was lernen. 8)

Schöne Grüße.

Jürgen

Edit: Es kann ja auch schon mal Namensgleichheit bei verschieden Personen auftreten.
Peter Schmitz zum Beispiel gibt es in Kölle (Köln) wie Sand am Meer.
Es würde vielleicht helfen das Geburtsdatum in den Dateinamen mit einzubinden was ich in dem folgenden Code gemacht habe.
Voraussetzung ist, dass in in Zelle B5 das Geburtsdatum im Format "TT.MM.JJJJ" steht.
Ist nur so ne Idee.

Code: Alles auswählen

Sub Speichern_Anamnese_1
   Dim oDoc As Object
   Dim oSheet As Object
   Dim oSheets As Object
   Dim oCell As Object
   Dim sName As String
   Dim sVorname As String
   Dim TempName As String
   Dim Dirname As String
   Dim sLaufwerk As String
   Dim Nr As Integer
   dim dummy()
   oDoc = ThisComponent
   oSheet = oDoc.Sheets.getByName("Anamnese")
   'Falls der Name in einer Zelle abgelegt wurde:
   oCell = oSheet.getCellByPosition(1, 0) 'Tabellenfeld, in dem der Name steht
   sName = oCell.String
   oCell = oSheet.getCellByPosition(1, 1) 'Tabellenfeld, in dem der Vorname steht
   sVorname = oCell.String
   oCell = oSheet.getCellByPosition(1, 4) 'Tabellenfeld, in dem das Geburtsdatum steht (Format TT.MM.JJJJ)
   sGebdatum= oCell.String
   sGebdatTag=left(sGebdatum,2)
   sGebdatMonat1=left(sGebdatum,5)
   sGebdatMonat=right(sGebdatMonat1,2)
   sGebdatJahr=right(sGebdatum,4)
   sGebdat= sGebdatTag & "_"& sGebdatMonat & "_" & sGebdatJahr
   sLaufwerk = "C:/"
   Filename = sName & "_" & sVorname
   Dirname =  Left(sName,1)
   neuerpfad = sLaufwerk + Dirname + "/" + Filename +"_" + sGebdat + ".ods"
   dateiurl=converttourl(neuerpfad)
   odoc.storetourl(dateiurl,dummy())
End Sub
Der gespeicherte Dateiname sieht dann folgendermaßen aus:

Code: Alles auswählen

Schmitz_Peter_21_01_1958.ods

Re: Speichern unter... mit Makros!?

Verfasst: Do, 16.08.2007 08:27
von xboxkill
Also ich habe jetzt den Code von turtle47 genommen. Er funktioniert einwandfrei perfekt^^
Im moment ist es 'noch' nicht nötig, die Geburtsdaten einzufügen [mein Glück^^]

Greetz