Zellbezüge über Macro ändern

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

Moderator: Moderatoren

drogon
Beiträge: 5
Registriert: Mi, 29.08.2007 09:53

Zellbezüge über Macro ändern

Beitrag von drogon »

Hi,
ich stehe vor dem problem das ich zwei calc Tabellen miteinander verknüpft habe.
So weit sogut, allerdings werden diese tabellen programmgesteuert aus einer vorlage erstellt und nach bestimmten kriterien
umbenannt. Nach dem umbenennen stimmen näturlich die tabellennamen in den bezügen nicht mehr.

in Excel gibt es eine function mit der ich die datasource der bezüge auf einen rutsch ändern kann.
das sieht in excel so aus:

'Zellbezug vorher
'='C:\tmp\[Altername.xls]Personal'!E4

alinks = oExl.ActiveWorkbook.LinkSources(xlExcelLinks)

cNewLinkSource = "C:\tmp\NeuerName.xls"

If Not IsEmpty(alinks) Then

For i = 1 To UBound(alinks)
oExl.ActiveWorkbook.ChangeLink alinks(i), _
cNewLinkSource, xlExcelLinks
Next i
End If

'Zellbezug nachher
'='C:\tmp\[NeuerName.xls]Personal'!E4

Jetzt meine frage gibt es in calc ein gegenstück zur changelink funktion?
bin leider nicht fündig geworden.
Das ganze soll aus einer VB6 anwendung heraus laufen.

Herzlichen Dank
Drogon :?
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Zellbezüge über Macro ändern

Beitrag von komma4 »

Wenn Du Tabellenbezüge der Art

Code: Alles auswählen

='file:///zentrale/2007/oo2/calc_Tabelle.ods'#$Tabelle1.C2
meinst, so kannst Du die Suchen/Ersetzen-Funktion nutzen; in einem Makro in der Form SearchDescriptor, siehe den Einsatz in Füllwort-Liste


Zum Ändern von DDE-Links habe ich das Makro MassMoveDDE als Beispiel bereit gestellt.

Ist da was Gesuchtes darunter?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
drogon
Beiträge: 5
Registriert: Mi, 29.08.2007 09:53

Re: Zellbezüge über Macro ändern

Beitrag von drogon »

Danke für die Tips kann ich an anderer Stelle gebrauchen.

Mein Problem in VB6 konnte ich auf diese Weise lösen:

Set oEnum = oDoc.SheetLinks.createEnumeration
While oEnum.hasMoreElements
Set oLink = oEnum.NextElement
cNewLinkSourceForOO = cOO.Convertin(OOPath, cNewLinkSource)
oLink.URL = cNewLinkSourceForOO
Wend

MfG

:D
Antworten