[gelöst] Verknüpfte Zelle einer Liste per Makro ändern

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [gelöst] Verknüpfte Zelle einer Liste per Makro ändern

Re: [gelöst] Verknüpfte Zelle einer Liste per Makro ändern

von F3K Total » Di, 09.07.2013 21:49

Klasse,
wie bist du darauf gekommen?
Gruß R

Re: Verknüpfte Zelle einer Liste per Makro ändern

von delta9 » Di, 09.07.2013 11:15

Jetzt habe ichs rausgefunden. Wenn man den anstatt

Code: Alles auswählen

 aBinding = odoc.createinstance("com.sun.star.table.CellValueBinding") 
schreibt:

Code: Alles auswählen

  aBinding = odoc.createinstance("com.sun.star.table.ListPositionCellBinding")
dann wird der Index (Position) des ausgewählten Eintrags in die Zelle geschrieben und nicht der in der Listbox angezeigte Text.

Stefan

Re: Verknüpfte Zelle einer Liste per Makro ändern

von delta9 » Mi, 03.07.2013 09:05

Hallo R.
danke! Hat auf Anhieb funktioniert, da wäre ich nie drauf gekommen.
Noch einen Schönheitsfehler hat das ganze:
Man kann, wenn man händisch auf die Eigenschaften der Listbox geht wählen:
Inhalt der Verknüpften Zelle: Der Ausgewählte Eintrag
Inhalt der Verknüpften Zelle: Position des ausgewählten Eintrags

Ich habe die Position, leider ändert das Makro aber in ausgeählter Eintrag.
Beim röntgen finde ich keine Eigenschaft, die dieser entsprechen könnte.

Stefan

Re: Verknüpfte Zelle einer Liste per Makro ändern

von F3K Total » Di, 02.07.2013 21:55

Hi,
ist etwas komplizierter, hier habe ich eine Lösung von komma4 für ein Kombinationsfeld gefunden, geht auch für ein Listenfeld:

Code: Alles auswählen

Sub S_change_Boundcell
    Dim oboundcelladdress  as new com.sun.star.table.CellAddress
    Dim oNamedValue as new com.sun.star.beans.NamedValue
    oboundcelladdress.sheet = 1'neues Blatt
    oboundcelladdress.column = 1'neue Spalte
    oboundcelladdress.row = 1'neue Zeile
    oNamedValue.Name  = "BoundCell"
    oNamedValue.Value = oboundcelladdress
    odoc = thiscomponent
    aBinding = odoc.createinstance("com.sun.star.table.CellValueBinding")
    aBinding.Initialize(Array(oNamedValue))
    olst1 = thiscomponent.Sheets.Tabelle1.drawpage.forms.Formular.lst1'Listboxmodel
    olst1.setvaluebinding(aBinding)
End Sub
Viel Erfolg
Gruß R

Re: Verknüpfte Zelle einer Liste per Makro ändern

von Stephan » Di, 02.07.2013 18:12

Die Letzte Zeile meldet den Fehler: "Lesefehler, Eigenschaft ist schreibeschützt"
naja, .BoundCell ist eine schreibgeschützte Eigenschaft, sagt zumindest die IDL-Referenz:
http://www.openoffice.org/api/docs/comm ... #BoundCell


Zu der Ausgangsfrage kann ich hingegen nichts sagen weil ich nicht verstehe worum es geht.


Gruß
Stephan

Re: Verknüpfte Zelle einer Liste per Makro ändern

von delta9 » Di, 02.07.2013 17:49

Ich glaube, ich bin einen kleinen Schritt weiter, indem ich die Zelle als Strukt (?) definiere.

Code: Alles auswählen

dim VerknZelle as NEW com.sun.star.table.CellAddress
VerknZelle = Objekt.ValueBinding.BoundCell
VerknZelle.Sheet = 10
Objekt.ValueBinding.BoundCell = VerknZelle
Die Letzte Zeile meldet den Fehler: "Lesefehler, Eigenschaft ist schreibeschützt"

Stefan

Re: Verknüpfte Zelle einer Liste per Makro ändern

von delta9 » Di, 02.07.2013 16:05

Hallo Lorbass,
nein, das hat nichts mit meinem Problem zu tun.
Ich möchte eine Eigenschaft ändern, die ich auslesen kann aber aus irgendeinem Grund nicht überschreiben kann.
Stefan

Re: Verknüpfte Zelle einer Liste per Makro ändern

von lorbass » Di, 02.07.2013 15:55

Schau mal, ob dir Michael Dannenhöfers StarBasic / OpenOffice.org Basic FAQ dienlich ist: Wie kann man per Makro ein Arbeitsblatt aktiveren?. Der Kontext ist zwar ein anderer, aber vielleicht hilft's…

Gruß
lorbass

[gelöst] Verknüpfte Zelle einer Liste per Makro ändern

von delta9 » Di, 02.07.2013 15:23

Hallo,
beim manuellen Kopieren eines Arbeitsblattes bleibt die Verknüpfung einer darin enthaltenen Liste auf die Zelle im alten Blatt bestehen.
Das will ich per Makro ändern. Zugriff auf die Liste habe ich , sie heisst bei mir "Objekt".
mit

Code: Alles auswählen

Objekt.ValueBinding.BoundCell.Sheet = Blattnummer
will ich die ermittelte aktuelle Blattnummer zuordnen.
Das Makro läuft ohne Fehlermeldung, es ändert sich aber nichts.
Über xray habe ich auch Zugriff auf die Struktur, aber es ändert sich eben nichts.

Wer hat einen Tipp?
Stefan

Nach oben