Speichern unter Makro

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Speichern unter Makro

Re: Speichern unter Makro

von Stephan » Di, 09.02.2016 11:43

wenn ich das richtig verstanden hab
Nein, hast Du leider nicht
(wie schon "nikki" schreibt scheinst Du nicht einmal unter dem Link nachgelesen zu haben, denn dort steht quasi das glatte Gegenteil)

aber praktisch:

Es ist ungewöhnlich das Du hier die Pfade:

C:\Users\Admin\Daten und C:\Xyz\Admin\Daten

als Beispiel benennst denn das ist nicht der Windows-Default, denn dieser wäre quasi:

C:\Users\Admin\Daten und C:\Users\Xyz\Daten


Falls doch letzterer Fall vorläge wäre es einfach da dann Folgendes genügt:

Code: Alles auswählen

Sub Pfad_ausgeben()
  Msgbox Environ("USERPROFILE") & "\Daten"
End Sub


das würde unter Windows auf beliebigen PC immer liefern:

C:\Users\<Benutzername>\Daten


Falls hingegen Deine Pfadangaben zuträfen wäre das Ganze komplizierter und wie man es löst von der genaueren Situation abhängig.

Generell sparst Du Dir solcherlei Verrenkungen wenn Du die Makros plus Dokumentvorlagen gleich per Extension verteilst denn dann ist der Pfad jederzeit leicht über die Extension selbst ermittelbar unter Rückgriff auf:
http://www.openoffice.org/api/docs/comm ... geLocation

z.B.:

Code: Alles auswählen

aService = GetDefaultContext().getByName("/singletons/com.sun.star.deployment.PackageInformationProvider") 
verzeichnis = aService.getPackageLocation("org.joesch.mottco")
wobei "org.joesch.mottco" der Indentifier-String der Extension ist so wie er auch in der description.xml eingetragen ist:
https://wiki.openoffice.org/wiki/Docume ... ns/Example



Gruß
Stephan

Re: Speichern unter Makro

von nikki » Di, 09.02.2016 11:18

Hallo,
tam-tam hat geschrieben:wenn ich das richtig verstanden hab, muss ich ja an jeden PC dran und da was ändern?!? Das geht leider nicht
falls Du damit die Umgebungsvariablen meinst, dann hast Du die verlinkte Seite offensichtlich nicht gelesen. Dort steht u. a., ich zitiere:

Windows stellt standardmäßig einige Umgebungsvariablen (Environmentvariablen) zur Verfügung. Diese Variablen können in Loginscripts und Batch-Programmen verwendet werden. Im vorliegenden Fall wäre dies %HOMEPATH%.

Beispiel:
  • - Tastenkombination Win+R (Run) drücken.
    - Beim Eingabefeld Öffnen %homepath% eingeben und Eingabetaste drücken, bzw. auf Schalter OK klicken.
    - Das aktuelle Benutzerverzeichnis des angemeldeten Benutzers wird angezeigt.

Re: Speichern unter Makro

von nikki » Mi, 03.02.2016 12:25

tam-tam hat geschrieben:Danke, aber das geht leider nicht, der Pfad ist immer anders.... die Datei wird von mehreren Personen auf unterschiedlichen PC's genutzt.
C:\Users\Admin\Daten wäre zb mein Pfad, beim anderen C:\Xyz\Admin\Daten usw.
Ist ein wenig kompliziert das zu erklären.
eine Umgebungsvariable kann nicht benutzt werden ?

Re: Speichern unter Makro

von Jörg » Mi, 03.02.2016 11:03

Hallo,
so wie ich es sehe:

ändere:

Code: Alles auswählen

dialog.DisplayDirectory = ConvertToURL("D:\Daten\")
in

Code: Alles auswählen

dialog.DisplayDirectory = ConvertToURL("Hier Deinen Pfad angeben")
Gruß Jörg

Re: Speichern unter Makro

von Karolus » Di, 02.02.2016 09:29

Hallo

Den Spaltenindex auf 1
den Zeilenindex auf 3

Re: Speichern unter Makro

von BritzFox » So, 20.12.2015 16:10

Supi, das funktioniert...
Danke.

Re: Speichern unter Makro

von Stephan » So, 20.12.2015 15:11

Hinweis:
args1(0).Value = "StarOffice XML (Calc)"
der richtige Filter ist eigentlich:

Code: Alles auswählen

args1(0).Value = "calc8"
"StarOffice XML (Calc)" entspricht (wenn ich mich momentan richtig erinnere) dem *.sxc Format, von OOo 1.x und StarOffice 6.

Dieser Filter ("calc8") kann aber auch entfallen, da er Default ist. Es genügt also:

Code: Alles auswählen

oDoc=thisComponent
  Sheet = oDoc.Sheets(0) '[erstes Arbeitsblatt]
  Cell = Sheet.getCellByPosition(12, 12)  '[Zelle A1]
  Filename = Cell.String
  Path = "file:///d:/daten/" 
  oDoc.storeasurl(Path &  Filename & ".ods", Array())
End Sub
Was muss ich denn ändern, damit hier nicht automatisch gespeichert wird, sondern der Dialog aufgeht mit dem Dateinamen aus Zelle B13 als Vorgabe zum speichern ?
z.B.:

Code: Alles auswählen

sub save2
  oDoc=thisComponent
  Sheet = oDoc.Sheets(0) '[erstes Arbeitsblatt]
  Cell = Sheet.getCellByPosition(12, 12)  '[Zelle A1]
  Filename = Cell.String
  dim args1(0) as new com.sun.star.beans.PropertyValue
  args1(0).Name = "FilterName"
  args1(0).Value = "calc8"

  arg = Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION) 
  dialog = CreateUnoService("com.sun.star.ui.dialogs.OfficeFilePicker")
  'Hinweis: der Dialog "com.sun.star.ui.dialogs.FilePicker" hat einen Bug bei .DisplayDirectory
  '         deshalb muss hier der OO-eigene Dialog .OfficeFilePicker genutzt werden
  dialog.Initialize(arg()) 
  dialog.appendFilter( "ODF Tabellendokument (*.ods)", "*.ods" )
  dialog.SetMultiselectionMode(False)
  dialog.DisplayDirectory = ConvertToURL("D:\Daten\")
  dialog.DefaultName = Filename
  ok = dialog.execute()
  if ok = 1 Then   
	datei = dialog.getFiles() 
	URL = datei(0) 
    oDoc.storeasurl(URL, args1())
  end if

end sub

Gruß
Stephan

Speichern unter Makro

von BritzFox » So, 20.12.2015 15:00

Hi,
hatte schon aus versehen im falschen Bereich gepostet...
Bin absolut neu, was OpenOffice Makros angeht.

Ich möchte ein Dokument per Makro speichern unter, aber noch die Möglichkeit haben den Dateinamen anzupassen.
Den Dateinamen nehme ich aus einer Zelle.
Mein bisheriges Makro...

Code: Alles auswählen

sub save2
  oDoc=thisComponent
  Sheet = oDoc.Sheets(0) '[erstes Arbeitsblatt]
  Cell = Sheet.getCellByPosition(12, 12)  '[Zelle B13]
  Filename = Cell.String
  Path = "file:///d:/daten/"
  dim args1(0) as new com.sun.star.beans.PropertyValue
  args1(0).Name = "FilterName"
  args1(0).Value = "StarOffice XML (Calc)"
  oDoc.storeasurl(Path &  Filename & ".ods",args1())
end sub
Was muss ich denn ändern, damit hier nicht automatisch gespeichert wird, sondern der Dialog aufgeht mit dem Dateinamen aus Zelle B13 als Vorgabe zum speichern ?

Nach oben