Seite 1 von 1
makro in externen docs?[erledigt]
Verfasst: Mi, 20.04.2011 13:41
von schnubber
hi
mich würde interessieren ob man ein makro in einer externen daei auführen kann
die Zutaten: ein funktionierendes makro , und 2 offene dokumente gespeichert unter doc1.ods und doc2.ods
im makro werden bestimmte aktionen im doc2.ods ausgeführt , dazu müsste ich es aber ansprechen
wie?
macht man es per name zb "oDoc = doc2.ods"? oder ich habe gelesen dass es noc per url geht weis aber nich die richtige schrebweise dazu
auf jeden fall ist das makro in 2 docs gleichzeitig aktiv, damit das möglich ist muss ich das 2. doc irgendwie ansprechen können
Gruß schnubber
Re: makro in externen docs?
Verfasst: Mi, 20.04.2011 14:02
von Karolus
Re: makro in externen docs?
Verfasst: Mi, 20.04.2011 14:06
von schnubber
hallo karo
habe ich schon probiert
leider nein..das dokument öffnet sich ja und jedes mal wenn ich das makro ausführe kommt ein neues doc auf..das doc 2 ist aber schon offen..dort soll mitels makro was gemacht werden
trotzdem danke für die mühe
gruß schnubber
Re: makro in externen docs?
Verfasst: Mi, 20.04.2011 14:10
von Karolus
Hallo
Dann zeig mal was du bisher an Code hast, und schreib am besten gleich was eigentlich getan werden soll.
Gruß Karo
Re: makro in externen docs?
Verfasst: Mi, 20.04.2011 14:23
von schnubber
ich will einfach nur das zweite dokument ansprechen können
mit dem aktiven(jetzigen) macht man das ja mit
Code: Alles auswählen
Sub dokument_ansprechen
dim oDoc as Object
dim oSheet as abject
odoc = ThisComponent
oSheet = oDoc.Sheets.getByIndex(0)
end sub
damit würde ich doc1.ods ansprechen7als aktiv festlegen
will aber dann mittels des selben makros auf daten aus doc2.ods zugreifen(was schon offen ist)
wenn ich jetz mein quellcode posten würde währe das viel zu viel arbeit ....will auch mal selba was basteln ...weis auch schon ungefähr wie ...bloß dazu will ich ein anderes dokument in das makro einbinden können
wie man das mit sheets macht ....kann man ja mit getbyname() machen und dann ist das makro im jeweiligen blatt aktiv...das müsste auch eigentlich für ganze docs gehen oder?
will einfach nur ein script über 2 docs "gleichzeitig" laufen lassen
ablauf : im ersten doc wird was gemacht, es kommt ein befehl der auf das 2. doc zugreift, vor dort informationen holt und anhand dieser wird wieder im 1. doc weitergemacht..möchte hier keine riesen scripts posten...die leute könen ja net denganzen tag davorhuppen, sondern haben auch andere sachen zu tun )
...es sei denn es geht wirklich nicht anders oder ohne den script versteht man nicht was ich will...aber ich habe alles versucht um es zu beschreiben und ich denke man versteht was ich meine
Re: makro in externen docs?
Verfasst: Mi, 20.04.2011 15:50
von Stephan
Du mußt aus allen aktuell existierenden Elementen von Stardesktop, die geöffneten Dokumente auf den gewünschten Namen der Datei prügfen und bei Übereinstimmung das aktuelle Dokument an eine Objektvariable, zur weiteren Verwendung, zuweisen:
Code: Alles auswählen
alles = StarDesktop.getComponents()
elemente = alles.createEnumeration()
Do While elemente.HasMoreElements
aktuell = elemente.NextElement()
If HasUnoInterfaces( aktuell, "com.sun.star.frame.XModel" ) Then
If aktuell.hasLocation() Then
if Right(ConvertFromURL(aktuell.GetLocation),8) = "doc2.ods" Then
odoc2 = aktuell
oSheet2 = odoc2.Sheets.getByIndex(0)
end if
end if
end if
Loop
Gruß
Stephan
Re: makro in externen docs? [erledigt]
Verfasst: Mi, 20.04.2011 15:52
von schnubber
Du mußt aus allen aktuell existierenden Elementen von Stardesktop, die geöffneten Dokumente auf den gewünschten Namen der Datei prügfen
lachkrampf xD
danke für die antwort ^^ werds versuchen
Re: makro in externen docs?[erledigt]
Verfasst: Do, 21.04.2011 08:01
von schnubber
weil ich ich zuerst prügeln gelesen habe, und weil die if-schleife voll brutal für mein hirn ist...aber es klappt =)
Re: makro in externen docs?[erledigt]
Verfasst: Do, 21.04.2011 08:49
von Karolus
Hallo
Es gibt keine if-Schleifen, da ist nur eine do....loop-schleife.
Gruß Karo
Re: makro in externen docs?[erledigt]
Verfasst: Fr, 29.04.2011 15:47
von schnubber
Es gibt keine if-Schleifen, da ist nur eine do....loop-schleife.
wieder was gelernt^^