Guten Morgen,
ich bin ein seit einigen Wochen begeisterter OpenOffice Nutzer und habe in Calc bereits eine komplette Fragebogenauswertung aus einem PDF-Formular FAST fertiggestellt. (Automatisches Importieren etc.).
leider bekomme ich zwei wahrscheinlich einfache Dinge in den Makros nicht hin. Ich vermute, dass sie so einfach sind, dass ich deswegen hier im Forum noch keine Lösung gefunden habe. So bitte ich Euch als Neuling ohne echte Programmierkenntnisse um Hilfe.
Hier nun die eine meiner Fragen (die andere stelle ich unter einem neuen Thema ein, damit es klarer ist, worum es geht):
Ich möchte dass ein Makro, dass den Import regelt, nur dann ausgeführt wird, wenn der Dateiname, aus der heraus das Makro gestartet wird, einen bestimmten Namen hat. Was ich brauche ist also die Befehlsseqenz für:
If "Dateiname der geöffneten Datei = xyz.ods" then
ganzes weiteres Makro wird ausgeführt
Else
es passiert gar nichts weiter.
Herzlichen Dank schon im Voraus für Eure Hilfe sagt
Rupp
Gelöst: Makro nur Ausführen, wenn Datei bestimmten Namen hat
Moderator: Moderatoren
Gelöst: Makro nur Ausführen, wenn Datei bestimmten Namen hat
Zuletzt geändert von Rupp am Mi, 27.01.2010 22:50, insgesamt 1-mal geändert.
Re: Makro nur Ausführen, wenn Datei bestimmten Namen hat
Hallo Rupp
Dazu brauchst du eine Makro.
Ich habe dir unten einen Teil einer Subroutine von mir angegeben, die etwas ähnliches macht. Schaue dir die Makro getUrl() an; ich habe sie markiert.
Ich hoffe, dass es dir hilt, sonst melde dich wieder.
Gruss
Heinz
Dazu brauchst du eine Makro.
Ich habe dir unten einen Teil einer Subroutine von mir angegeben, die etwas ähnliches macht. Schaue dir die Makro getUrl() an; ich habe sie markiert.
Code: Alles auswählen
REM ***** BASIC *****
Option Explicit
Sub ini_lesen
Dim myDoc As Object
myDoc=ThisComponent
Dim inifile as string
Dim bereich as string
Dim param as string
Dim OS as string
Dim Schraeger as string
Dim d_Url as string
Dim d_Pfad as string
dim zw_string as string
' Welches Betriebs-System wird verwendet?
OS = GetGUIType()
if OS = 1 then Schraeger = "\" ' Windows
if OS = 3 then Schraeger = "\" ' Mac
if OS = 4 then Schraeger = "/" ' Unix / Linux
' Pfad vom Programm bestimmen
dim dummy()
d_Url=myDoc.getUrl() ' <========================= In d_Url steht der Programm-Pfad inkl. Programm-Name
d_pfad=ConvertFromUrl(d_Url)
global_prog_pfad=DirectoryNameoutofPath(d_pfad,Schraeger) & Schraeger
global_prog_url=ConvertToUrl(global_prog_pfad)
Gruss
Heinz
Re: Makro nur Ausführen, wenn Datei bestimmten Namen hat
Hallo Heinz,
Danke für Deine rasche Antwort. habe versucht etwas von Deinem Code in mein Makro einzufügen. Klappt leider nicht. (Ich bin zu sehr Anfänger.) Ich bräuchte wohl direktere Hilfe.
Was genau müsste ich hier einsetzen? Damit das weitere Makro nur abläuft, wenn meine ODS-Datei, aus der heraus ich das Makro aufrufe, einen ganz bestimmten Namen hat. Lautet der Dateinmae anders, wird das Makro , obwohl es auch in der anderlautenden Datei enthalten ist, an der Stelle einfach abgebrochen.
Also sinngemäß:
If "Dateiname der gerade geöffneten Datei = xyz.ods" then
wird das ganzes weitere Makro ausgeführt
Else
es passiert gar nichts weiter (direkt zum MakroEnde)
Ich Danke Dir und allen anderen, die mir vielleicht auch noch helfen können, ganz herzlich für Eure Hilfe
Rupp
Danke für Deine rasche Antwort. habe versucht etwas von Deinem Code in mein Makro einzufügen. Klappt leider nicht. (Ich bin zu sehr Anfänger.) Ich bräuchte wohl direktere Hilfe.
Was genau müsste ich hier einsetzen? Damit das weitere Makro nur abläuft, wenn meine ODS-Datei, aus der heraus ich das Makro aufrufe, einen ganz bestimmten Namen hat. Lautet der Dateinmae anders, wird das Makro , obwohl es auch in der anderlautenden Datei enthalten ist, an der Stelle einfach abgebrochen.
Also sinngemäß:
If "Dateiname der gerade geöffneten Datei = xyz.ods" then
wird das ganzes weitere Makro ausgeführt
Else
es passiert gar nichts weiter (direkt zum MakroEnde)
Ich Danke Dir und allen anderen, die mir vielleicht auch noch helfen können, ganz herzlich für Eure Hilfe

Rupp
Re: Makro nur Ausführen, wenn Datei bestimmten Namen hat
So jetzt habe ich noch mehr ausprobiert:
Habe einfach
If FileExists(Filename) Then
eingesetzt. Das klappt jetzt gut. Aber ich muss den ganzen Pfad eingeben. Ich möchte ja aber, dass es nicht überprüft, ob die Datei im besagten Pfad vorhanden ist, sondern, ob die Datei, aus der heraus ich das Makro starte, einen bestimmten Namen hat (unabhängig davon, aus welchem Ordener heraus die gestartet wird.
Vielleicht helfen diese Angaben ja noch weiter, um mir zu helfen. Danke!
Habe einfach
If FileExists(Filename) Then
eingesetzt. Das klappt jetzt gut. Aber ich muss den ganzen Pfad eingeben. Ich möchte ja aber, dass es nicht überprüft, ob die Datei im besagten Pfad vorhanden ist, sondern, ob die Datei, aus der heraus ich das Makro starte, einen bestimmten Namen hat (unabhängig davon, aus welchem Ordener heraus die gestartet wird.
Vielleicht helfen diese Angaben ja noch weiter, um mir zu helfen. Danke!
Re: Makro nur Ausführen, wenn Datei bestimmten Namen hat
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Makro nur Ausführen, wenn Datei bestimmten Namen hat
Hallo Rupp
Ich habe eine Testmakro erstellt, welche läuft. Füge sie in ein Calc- oder Writer-Dokument ein und teste dies.
Mein Writer-Dok hat den Namen "Prog_Name.odt".
Gruss
Heinz
Ich habe eine Testmakro erstellt, welche läuft. Füge sie in ein Calc- oder Writer-Dokument ein und teste dies.
Mein Writer-Dok hat den Namen "Prog_Name.odt".
Code: Alles auswählen
REM ***** BASIC *****
Option Explicit
Public FileN as string
Sub test_prog
Dim myDoc As Object
myDoc=ThisComponent
dim d_Url as string
d_Url = myDoc.getUrl()
FileN = FileNameoutofPath(d_Url)
msgBox "Programm-Name: " & FileN
if FileN = "Prog_Name.odt" then
bearbeiten_dat1
end if
if FileN = "datei2.ods" then
bearbeiten_dat2
end if
End Sub
Sub bearbeiten_dat1
' Bearbeitung für Datei "Prog_Name.ods"
msgBox "Bearbeitung für " & FileN
End Sub
Sub bearbeiten_dat2
' Bearbeitung für Datei "datei2.ods"
End Sub
Heinz
Re: Makro nur Ausführen, wenn Datei bestimmten Namen hat
So klappt es wunderbar 
Herzlichen Dank Heinz!
Rupp

Herzlichen Dank Heinz!
Rupp