Gelöst: Makro nur Ausführen, wenn Datei bestimmten Namen hat

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

Moderator: Moderatoren

Rupp
**
Beiträge: 46
Registriert: Mi, 27.01.2010 08:33
Kontaktdaten:

Gelöst: Makro nur Ausführen, wenn Datei bestimmten Namen hat

Beitrag von Rupp »

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
Zuletzt geändert von Rupp am Mi, 27.01.2010 22:50, insgesamt 1-mal geändert.
Heinz Bär
****
Beiträge: 130
Registriert: Mo, 28.03.2005 11:20
Wohnort: CH-6467 Schattdorf

Re: Makro nur Ausführen, wenn Datei bestimmten Namen hat

Beitrag von Heinz Bär »

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.

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)

Ich hoffe, dass es dir hilt, sonst melde dich wieder.

Gruss
Heinz
Rupp
**
Beiträge: 46
Registriert: Mi, 27.01.2010 08:33
Kontaktdaten:

Re: Makro nur Ausführen, wenn Datei bestimmten Namen hat

Beitrag von Rupp »

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
Rupp
**
Beiträge: 46
Registriert: Mi, 27.01.2010 08:33
Kontaktdaten:

Re: Makro nur Ausführen, wenn Datei bestimmten Namen hat

Beitrag von Rupp »

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!
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Makro nur Ausführen, wenn Datei bestimmten Namen hat

Beitrag von turtle47 »

Hallo Rupp,

schau mal auf Michaels Seite nach.

Viel Erfolg.

Jürgen
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
Heinz Bär
****
Beiträge: 130
Registriert: Mo, 28.03.2005 11:20
Wohnort: CH-6467 Schattdorf

Re: Makro nur Ausführen, wenn Datei bestimmten Namen hat

Beitrag von Heinz Bär »

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

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

Gruss
Heinz
Rupp
**
Beiträge: 46
Registriert: Mi, 27.01.2010 08:33
Kontaktdaten:

Re: Makro nur Ausführen, wenn Datei bestimmten Namen hat

Beitrag von Rupp »

So klappt es wunderbar :-)

Herzlichen Dank Heinz!

Rupp
Antworten