"Linked Cell" eines Spin Buttons über Makro ansprechen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

azd
*
Beiträge: 10
Registriert: Mi, 17.06.2009 20:50

"Linked Cell" eines Spin Buttons über Makro ansprechen

Beitrag von azd »

Hey Leute!
Also ich habe mich jetzt ungelogen über mehrere Tage stundenlang durch das Forum geclickt aber finde absolut nichts hilfreiches zu meinem Problem..
Also entweder ist es derart simpel und ich bin einfach zu blöd, oder niemand vorher hatte diese Problemstellung...

Ich brauche dringend einen Beispielcode für ein Makro, welches ein Steuerelement, welches sich auf eine bestimmte Zelle bezieht (z.B. ein Drehfeld --> LinkedCell), ändert, sodass es sich auf eine andere Zelle bezieht, meinetwegen über einen Button.

Ich habe in meinem Fall ein Drehfeld, welches den Wert einer Zelle (meinetwegen A1; ergo: LinkedCell=A1) um 1 addiert..

Ich möchte jetzt, dass ich auf einen Button clicke (in meinem Fall "OK") und dann dieses Drehfeld Zelle A2 addiert...

Ich bin kompletter VBA Neuling und.. hab schon sämtliche Variationen probiert..
Beispiel:
ich gehe in den Entwurfsmodus, wähle den Button aus und gehe auf "Kontrollfeld".
Dort auf die Registerkarte "Ereignisse", auf das Event "beim Auslösen"
und hau da folgendes Makro rein:

Code: Alles auswählen

Private sub SpinButton1
          SpinButton1.Range = "A2"
End sub
So einfach ist es aber dann wohl doch nicht.
Ich dreh durch :( Wenn das ned klappt muss ich eine Millionen Spin Buttons für mein Dokument für jeden Wert einzelnd erstellen und bin bis an mein Lebensende zugange..
Für Hilfe wäre ich also sehr dankbar!

Mit freundlichen Grüßen,
azd
azd
*
Beiträge: 10
Registriert: Mi, 17.06.2009 20:50

Re: "Linked Cell" eines Spin Buttons über Makro ansprechen

Beitrag von azd »

Gibt es vielleicht sogar eine Liste mit allen "veränderbaren Werten" der Steuerelemente.. Dann könnte ich mir den Rest da herleiten..
Im nächsten Moment stellt sich nämlich die Frage, wie ich nicht nur den Zellbezug sondern auch die Position ändere.. damit das Drehfeld immer schön direkt Neben der Zelle, auf die es sich bezieht, befindet.
:s
In der englischen Version konnte man meist ja einfach die bereits fixen Wertebezeichnungen nehmen, aber in der deutschen klappt das bestimmt nicht, wenn man einfach Drehfeld1.Name = "Muh" hin schreibt?!?

Ich bin echt blutiger Anfänger, also verzeiht mir äußerst dumm gestellte Fragen.
grz.
azd
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: "Linked Cell" eines Spin Buttons über Makro ansprechen

Beitrag von turtle47 »

Hallo azd,
azd hat geschrieben:Gibt es vielleicht sogar eine Liste mit allen "veränderbaren Werten" der Steuerelemente
Suche hier im Forum mal nach "xray"
azd hat geschrieben:Ich habe in meinem Fall ein Drehfeld, welches den Wert einer Zelle (meinetwegen A1; ergo: LinkedCell=A1) um 1 addiert..
Ich möchte jetzt, dass ich auf einen Button clicke (in meinem Fall "OK") und dann dieses Drehfeld Zelle A2 addiert...
Hier mal ein Beispielcode welches die Zeile des Drehfeldes um 1 erhöht:

Code: Alles auswählen

Sub Set_ValueBinding
	Dim vField, vForm
	Dim oForm
	oDoc = thisComponent
	oForm = ThisComponent.Sheets(0).DrawPage.Forms.getByIndex(0)
	vField = oForm.getByName("Drehfeld")'Name anpassen
	oRow = vField.ValueBinding.BoundCell.Row 'Position Spalte auslesen
	Dim oLinkedCell as new com.sun.star.table.CellAddress
	oLinkedCell.Sheet  = 2	'Index Tabellenblatt
	oLinkedCell.Column = 0  'Spalte A
	oLinkedCell.Row    = oRow + 1  'Zeile um 1 erhöhen 
	Dim oNamedValue as new com.sun.star.beans.NamedValue
	oNamedValue.Name  = "BoundCell"
	oNamedValue.Value = oLinkedCell
	oCVB = oDoc.createInstance("com.sun.star.table.CellValueBinding")
	oCVB.Initialize(Array(oNamedValue))
	vField.setValueBinding(oCVB) 
End Sub
Hilft das weiter?

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

Re: "Linked Cell" eines Spin Buttons über Makro ansprechen

Beitrag von turtle47 »

Hi,

ich vermute, dass der Index zum Tabellenblatt nicht stimmt.
Beachte: Der Index fängt bei Null an zu zählen!
Erstes Tabellenblatt = Index 0
Zweites Tabellenblatt = Index 1
usw.

Schöne Grüsse.

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
Antworten