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.
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.
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:
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