Zielordner ändern

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

Moderator: Moderatoren

Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Zielordner ändern

Beitrag von Jörg »

Hallo Fachleute
Mit nachstehendem Makro speichere ich zum Monatsende meine Tabelle als PDF in einem Jahresordner.
Zum Abschluß wird die aktive Tabelle per Inputbox in den neuen Monat umbenannt.
Ist dann der neue Monat der Januar, möchte ich abschließend per inputbox den Zielordner ändern.
Konkret: Im vorliegenden Makro ist der Zielordner

Code: Alles auswählen

"file:///E:/openoffice/Monatsabrechnungen/2015/" & sTabName & ".pdf"
Diesen Ordner möchte ich dann ändern

Code: Alles auswählen

if sNewName = "Januar" then
sNewUrl = inputbox ("Jahreswechsel?",0,"E:/openoffice/Monatsabrechnungen/2015/" & sTabName & ".pdf")'Bisheriger Ordner/Pfad, hab ich hier nur reinkopiert
in [code]"file:///E:/openoffice/Monatsabrechnungen/2016/" & sTabName & ".pdf"
end if[/code]

Code: Alles auswählen

sub PDFspeichern
rem ----------------------------------------------------------------------     
sTabName = Thiscomponent.currentcontroller.activesheet.name
msgbox (sTabName,_0, "Monatswechsel", 33)
rem----------------------------------------------------------------------
antwort = msgbox("Druckbereich kontrolliert?", 33,"Monatswechsel")
if antwort = 2 Then
		 exit sub
end if	
rem define variables
dim document   as object
dim dispatcher as object
myDoc = thisComponent
mySheet = myDoc.Sheets(3)


rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///E:/openoffice/Monatsabrechnungen/2015/" & sTabName & ".pdf"
args1(1).Name = "FilterName"
args1(1).Value = "calc_pdf_Export"
args1(2).Name = "FilterData"
args1(2).Value = Array(Array("UseLosslessCompression",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Quality",0,90,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ReduceImageResolution",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("MaxImageResolution",0,300,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTaggedPDF",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SelectPdfVersion",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportNotes",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarks",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenBookmarkLevels",0,-1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTransitionEffects",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsSkipEmptyPages",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsAddStream",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EmbedStandardFonts",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FormsType",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportFormFields",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("AllowDuplicateFieldNames",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerToolbar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerMenubar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerWindowControls",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ResizeWindowToInitialPage",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("CenterWindow",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenInFullScreenMode",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("DisplayPDFDocumentTitle",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialView",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Magnification",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Zoom",0,100,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PageLayout",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FirstPageOnLeft",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialPage",0,1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Printing",0,2,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Changes",0,4,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableCopyingOfContent",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableTextAccessForAccessibilityTools",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportLinksRelativeFsys",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PDFViewSelection",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ConvertOOoTargetToPDFTarget",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarksToPDFDestination",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("_OkButtonString",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EncryptFile",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPasswords",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("RestrictPermissions",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPermissionPassword",0,Array(),com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Selection",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE))

dispatcher.executeDispatch(document, ".uno:ExportToPDF", "", 0, args1())
rem ----------------------------------------------------------------------
ocalc = thisComponent
        osheet = ocalc.sheets(3)
         oCellRange = osheet.getCellRangeByName("A3:P250") 
         ocellRange.clearContents(com.sun.star.sheet.CellFlags.VALUE)
             oCellRange = osheet.getCellRangeByName("A3:P250") 
             ocellRange.clearContents(com.sun.star.sheet.CellFlags.STRING)
               oCellRange = osheet.getCellRangeByName("A3:P250")
                ocellRange.clearContents(com.sun.star.sheet.CellFlags.DATETIME)


rem-------------------------------------------------------------------------------------------
osheet = thiscomponent.currentcontroller.activeSheet
     sNewName = inputbox("Bitte neuen Blattnamen eingeben !","Monatswechsel","Neuer Abrechnungsmonat")
     osheet.name = sNewName
     rem------------------------------------------------------------------------
if sNewName = "Januar" then
sNewUrl = inputbox ("Jahreswechsel?",0,"E:/openoffice/Monatsabrechnungen/2015/" & sTabName & ".pdf")' bisheriger Ordner
end if
rem---------------------------------------------------------------------------------------------
mycell = osheet.getCellRangebyName("A1")
mycell.formulalocal ="=R1&"" ""&TEXT(T1;""MMMM JJJJ"")"
End Sub
Vielen Dank an Euch!
Gruß Jörg
Gruß Jörg

Win 10 Pro AOO 4.1.15
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Zielordner ändern

Beitrag von clag »

Hallo Jörg,

du brauchst doch nur in der "inputbox" 2015 in 2016 abändern,
und beim nächsten Speichern wird dieses Verzeichnis wenn nötig angelegt !?
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Re: Zielordner ändern

Beitrag von Jörg »

Hallo clag,

funktioniert so nicht.

Als Ergebnis sollte im Makro der neue Pfad stehen.

Code: Alles auswählen

dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///E:/openoffice/Monatsabrechnungen/2016/" & sTabName & ".pdf"
args1(1).Name = "FilterName"
args1(1).Value = "calc_pdf_Export"
args1(2).Name = "FilterData"
Gruß Jörg
Gruß Jörg

Win 10 Pro AOO 4.1.15
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Zielordner ändern

Beitrag von clag »

Hallo Jörg,

in den Code eines laufenden Makro kannst du nichts schreiben.!
Aber warum gehst du es nicht einfacher an und liest den String einfach aus einer Zelle aus,
das Datum/Jahreszahl hast du doch bestimmt irgendwo in der Tabelle stehen?


PS
für mich selbst löse ich das direkt mit DATE im URL String

Code: Alles auswählen

 storePath = Format(xDate, "YYYY-MM") & "####" 
wobei xDate ein aus der Tabelle gelesenes Datum ist
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Re: Zielordner ändern

Beitrag von Jörg »

Hallo clag,

ist es nicht egal, ob ich nun den Tabellennamen oder eine Zelle auslese?
Dies steht am Ende des vorhandenen Codes.

Code: Alles auswählen

osheet = thiscomponent.currentcontroller.activeSheet
     sNewName = inputbox("Bitte neuen Blattnamen eingeben !","Monatswechsel","Neuer Abrechnungsmonat")
     osheet.name = sNewName
     rem------------------------------------------------------------------------
if sNewName = "Januar" then
sNewFileUrl = inputbox ("Jahreswechsel?",0,"file:///E:/openoffice/Monatsabrechnungen/directory/2015/" & sTabName & ".pdf")
FileUrl= converttourl(sNewFileUrl)
end if
rem---------------------------------------------------------------------------------------------
Das funktioniert . Die inputbox wird nur aktiv, wenn der aktuelle Tabellenname "Januar" ist, ändert aber leider nicht wie gewünscht den Zielordner.
Dein Hinweis, daß man in ein laufendes Makro nicht schreiben kann, ist wohl entscheidender. D.h., dass ich anders herangehen muß.
Aber wie ??
Gruß Jörg
Gruß Jörg

Win 10 Pro AOO 4.1.15
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Zielordner ändern

Beitrag von F3K Total »

Hi,
beschäftige dich mit den Basic-Funktionen

Code: Alles auswählen

fileexists()
mkdir()
Mit fileexists() prüfst du, ob ein Verzeichnis vorhanden ist, wenn nicht, legst du es mit mkdir() an.
Ein Beispiel:

Code: Alles auswählen

Sub S_Create_Folder_Current_Year
    urlFolder = "C:\Users\<DEIN USERNAME>\Desktop\"
    nYear = Year(Date())
    if fileexists( urlFolder + nYear) then
        msgbox """" + urlFolder + """ gibt es"
    else
        msgbox """" + urlFolder + """ gibt es nicht, wird jetzt angelegt!"
        mkdir( urlFolder + nYear)
    endif
End Sub
Gruß R
Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Re: Zielordner ändern

Beitrag von Jörg »

Hallo. danke für den Hinweis.
Jedoch ist es noch nicht das, was ich meine.
Denn, wenn ich mir nun mit Hilfe von "mkdir" ein neues Verzeichnis anlege, ändert sich an der
Zeile im vorhandenen Code

Code: Alles auswählen

args1(0).Value = "file:///E:/openoffice/Monatsabrechnungen/2015/" & sTabName & ".pdf"
erst mal nix.
Meine ursprüngliche Frage aber war:
Wie kann ich diese Zeile mit einem Makro ändern, so dass man nicht extra in die Makroverwaltung muß.
Der Vollständigkeit halber hier nochmal der kpl. Code.

Code: Alles auswählen

sub PDFspeichern 
rem ----------------------------------------------------------------------     
sTabName = Thiscomponent.currentcontroller.activesheet.name
msgbox (sTabName,_0, "Monatswechsel", 33)
rem----------------------------------------------------------------------
antwort = msgbox("Druckbereich kontrolliert?", 33,"Monatswechsel")
if antwort = 2 Then
		 exit sub
end if	
rem define variables
dim document   as object
dim dispatcher as object
myDoc = thisComponent
mySheet = myDoc.Sheets(3)


rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///E:/openoffice/Monatsabrechnungen/2015/" & sTabName & ".pdf"
args1(1).Name = "FilterName"
args1(1).Value = "calc_pdf_Export"
args1(2).Name = "FilterData"
args1(2).Value = Array(Array("UseLosslessCompression",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Quality",0,90,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ReduceImageResolution",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("MaxImageResolution",0,300,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTaggedPDF",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SelectPdfVersion",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportNotes",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarks",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenBookmarkLevels",0,-1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTransitionEffects",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsSkipEmptyPages",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsAddStream",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EmbedStandardFonts",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FormsType",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportFormFields",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("AllowDuplicateFieldNames",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerToolbar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerMenubar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerWindowControls",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ResizeWindowToInitialPage",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("CenterWindow",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenInFullScreenMode",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("DisplayPDFDocumentTitle",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialView",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Magnification",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Zoom",0,100,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PageLayout",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FirstPageOnLeft",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialPage",0,1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Printing",0,2,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Changes",0,4,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableCopyingOfContent",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableTextAccessForAccessibilityTools",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportLinksRelativeFsys",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PDFViewSelection",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ConvertOOoTargetToPDFTarget",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarksToPDFDestination",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("_OkButtonString",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EncryptFile",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPasswords",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("RestrictPermissions",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPermissionPassword",0,Array(),com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Selection",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE))

dispatcher.executeDispatch(document, ".uno:ExportToPDF", "", 0, args1())


rem ----------------------------------------------------------------------
ocalc = thisComponent
        osheet = ocalc.sheets(3)
         oCellRange = osheet.getCellRangeByName("A3:P250") 
         ocellRange.clearContents(com.sun.star.sheet.CellFlags.VALUE)
             oCellRange = osheet.getCellRangeByName("A3:P250") 
             ocellRange.clearContents(com.sun.star.sheet.CellFlags.STRING)
               oCellRange = osheet.getCellRangeByName("A3:P250")
                ocellRange.clearContents(com.sun.star.sheet.CellFlags.DATETIME)

mycell = osheet.getCellRangebyName("A1")
mycell.formulalocal ="=R1&"" ""&TEXT(T1;""MMMM JJJJ"")"
rem-------------------------------------------------------------------------------------------
osheet = thiscomponent.currentcontroller.activeSheet
     sNewName = inputbox("Bitte neuen Blattnamen eingeben !","Monatswechsel","Neuer Abrechnungsmonat")
     osheet.name = sNewName
     rem------------------------------------------------------------------------

if sNewName = "Januar" then
sNewFileUrl = inputbox ("Jahreswechsel?",0,"file:///E:/openoffice/Monatsabrechnungen/2015/" & sTabName & ".pdf")

end if
rem---------------------------------------------------------------------------------------------

End Sub
Gruß Jörg
Gruß Jörg

Win 10 Pro AOO 4.1.15
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Zielordner ändern

Beitrag von Karolus »

Hallo
Meine ursprüngliche Frage aber war:
Wie kann ich diese Zeile mit einem Makro ändern,
Man möchte nicht Macrocode per Macro ändern, selbst dann nicht wenn man weiss wie es geht ( und schon gar nicht wenn man zB. wie du, offenbar überhaupt keine Ahnung von der Materie hat )

pflege die Jahreszahl als Variable ein, genauso wie du es bereits mit dem Monatsnamen machst oder ermittele beides zeitnahe dynamisch anhand des aktuellen Datums.

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Zielordner ändern

Beitrag von Stephan »

Höre bitte auf Karolus, denn er hat recht.

Am Einfachsten nutzt Du zur Variablenablage ein separates Tabellenblatt das Du versteckst. Lege also in der Datei ein Tabellenblatt namens "config" an, schreibe dort in A1 "aktuelles Jahr:" und in B1 "2015", dann verstecke das Blatt über Format-Tabelle ausblenden.

Ersetze nun im Makro die Zeile:

Code: Alles auswählen

args1(0).Value = "file:///E:/openoffice/Monatsabrechnungen/2015/" & sTabName & ".pdf"
durch folgende Zeilen:

Code: Alles auswählen

tmp = ThisCompoment.Sheets().getByName("config").GetCellRangeByName("B1").FormulaLocal
args1(0).Value = "file:///E:/openoffice/Monatsabrechnungen/" & tmp & "/" & sTabName & ".pdf"
sowie die Zeilen:

Code: Alles auswählen

if sNewName = "Januar" then
sNewFileUrl = inputbox ("Jahreswechsel?",0,"file:///E:/openoffice/Monatsabrechnungen/2015/" & sTabName & ".pdf")

end if
durch:

Code: Alles auswählen

if sNewName = "Januar" then
 sNewFileUrl = inputbox ("Geben Sie die gewünschte neue Jaheszahl ein. (bitte 4-stellig)", "Jahreswechsel?", Year(Now()))
 If Not (sNewFileUrl = "") Then 
	ThisCompoment.Sheets().getByName("config").GetCellRangeByName("B1").FormulaLocal = sNewFileUrl
 End If
End If

Gruß
Stephan
Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Re: Zielordner ändern

Beitrag von Jörg »

Hallo,
hab die Zeile nun so geändert:

Code: Alles auswählen

args1(0).Value = "file:///E:/openoffice/Monatsabrechnungen/ "& Year(Date())&"/" & sTabName & ".pdf"
So weit so gut.
Aber:
Angenommen der Monatswechsel Dezember zu Januar erfolgt erst im Januar 2016, dann "fliegt" die Tabelle "Dezember 2015" in den Ordner 2016.
Das gleiche würde m.E. auch geschehen, wenn ich das aktuelle Datum verwende.

Gruß Jörg
Gruß Jörg

Win 10 Pro AOO 4.1.15
Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Re: Zielordner ändern

Beitrag von Jörg »

Hallo Stephan,
entschuldige hab Deine Antwort erst jetzt gelesen.
Nichts liegt mir ferner, als Eure Hinweise zu ignorieren.
Richtig ist natürlich auch, daß ich von der Materie "keine" Ahnung habe.
Desto hilfreicher wären für mich dann auch Hinweise, warum ein von mir verfolgter Weg (Makroänderung durch Makro) nicht sinnvoll ist.

Nun werd ich mich mal um Deinen Vorschlag kümmern.
Vielen Dank erstmal.
Gruß Jörg
Gruß Jörg

Win 10 Pro AOO 4.1.15
Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Re: Zielordner ändern

Beitrag von Jörg »

Hallo nocheinmal,

@ Stephan

Code: Alles auswählen

tmp = ThisCompoment.Sheets().getByName("config").GetCellRangeByName("B1").FormulaLocal
Es erscheint die Fehlermeldung: Basic-Laufzeitfehler - Objektvariable nicht belegt

Gruß Jörg
Gruß Jörg

Win 10 Pro AOO 4.1.15
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Zielordner ändern

Beitrag von Stephan »

weil ich es falsch geschrieben hatte, nicht "ThisCompoment" sondern "ThisComponent"

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

Re: Zielordner ändern

Beitrag von Stephan »

Desto hilfreicher wären für mich dann auch Hinweise, warum ein von mir verfolgter Weg (Makroänderung durch Makro) nicht sinnvoll ist.
zumindest weil:
du kannst imho kein Makro-Modul mittels eines Makros verändern, welches Teil des Moduls ist, d.h. das Makro das die Änderung durchführt müsste in einem anderen Modul liegen.
Ob es dann geht und stabil läuft da bin ich mir auch nicht sicher, vielleicht sollte/muß man es sogar in eine andere Makrobibliothek verlegen.

Ich selber müsste das jetzt erst einmal testen, aber selbst wenn es funktionieren würde würde ich es so nicht lösen weil es keinerlei Vorteile zu einer 'konventionellen' Implementierung erkennen lässt.


Diese Gründe sind dann bedeutungslos wenn es trotzdem in der genannten Weise gelöst werden MUSS (dann musst Du das aber vor Dir selber gut begründen können) oder wenn Du Dich rein aus Interesse mit dieser Art der Implementierung beschäftigen willst um zu lernen.
Aus dem Kopf weiss ich das in der StarBasic-Faq einige einführende Dinge zur Manipulation von Modulen mittels Makro steht:
http://www.dannenhoefer.de/faqstarbasic ... schen.html
http://www.dannenhoefer.de/faqstarbasic ... ieren.html
Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Re: Zielordner ändern

Beitrag von Jörg »

Hallo,
hab wie folgt geändert.

Code: Alles auswählen

tmp = myDoc.Sheets().getByName("config").GetCellRangeByName("B1").Formulalocal

Code: Alles auswählen

 myDoc.Sheets().getByName("config").GetCellRangeByName("B1").FormulaLocal = sNewFileUrl
Jetzt alles chic.

Vielen Dank an alle.
Gruß Jörg

Win 10 Pro AOO 4.1.15
Antworten