Wennabfrage in einem Makro

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: Wennabfrage in einem Makro

Re: Wennabfrage in einem Makro

von Gabriel123 » Mi, 16.01.2008 15:59

Hallo ich habe folgenden Code in Base leider nicht so recht zum laufen gebracht.

Code: Alles auswählen

Sub Button_Changed
   '--Status abprüfen
'
   If oDlg.getControl("cbx1").getModel.state=1 then
      oDlg.getControl("PushButton1").getModel.enabled=true
      oDlg.getControl("PushButton2").getModel.enabled=true
   ElseIf oDlg.getControl("cbx1").getModel.state=0 then
      oDlg.getControl("PushButton1").getModel.enabled=false
      oDlg.getControl("PushButton2").getModel.enabled=false   
   end if

End Sub
ich wollte darauf aufbauen aber bekomme "Objektvariable nicht belegt". Eigentlich suche ich nur einen Weg, eine Abfrage zu machen. Wenn Checkbox angeklickt dann Button / Feld deaktiviert.

Re: Wennabfrage in einem Makro

von kannenklaus » Fr, 04.01.2008 15:49

hallo stommy,

das geht - so glaube ich - nicht. mach dir doch einen eigenen dialog. dort kannst du die schaltflächen bequem steuern. s.a.

http://www.starbasicfaq.de/Dialoge.html

grüße

klaus

Re: Wennabfrage in einem Makro

von stommy7 » Fr, 04.01.2008 15:26

Die Buttons sind einfach nur eingefügte Schalftflächen. Über Option SetVisible wird mir nicht sehr weitergeholfen.

Ich habe 3 Buttons und möchte die zweite Zeile samt 2. Button ausblenden. Damit rutscht die dritte Zeile hoch, der 3. Button bleibt aber wo er ist. Der zweite Button muss halt komplett verschwinden und der dritte hochrutschen. Beim Einblenden der 2. Zeile muss alles wieder runter rutschen.

Re: Wennabfrage in einem Makro

von kannenklaus » Fr, 04.01.2008 15:16

hallo stommy,

du musst mal sagen, ob die buttons bestandteil eines dialoges sind oder in das sheet eingefügte schaltflächen. wahrscheinlich letzteres. im fall von kontrollelementen eines dialoges gibt es die methode setvisible=true oder =false.

Code: Alles auswählen

Sub Main
  odoc=thisComponent
  oSheet=odoc.sheets(0)
  odraw1=oSheet.drawpage
  form1=odraw1.forms.getbyIndex(0)
oPush1=form1.getByName("PushButton")
xray oPush1

End Sub
mit o.g. makro habe ich den pushbutton im sheet xray zur erkundung übergeben. dort findet sich nach einer ersten schnellen betrachtung keine methode, die die schaltfläche unsichtbar schaltet.

grüße

klaus

Re: Wennabfrage in einem Makro

von stommy7 » Fr, 04.01.2008 12:51

Okay danke das hilft erstmal etwas weiter.
Aber habe ich auch die Möglichkeit die Buttons ganz auszublenden? Kann man die Buttons irgendwie ganz verstecken? Ich habe es schon probiert die Zeilen, in denen die Buttons sind auszublenden, aber das funktioniert leider nicht. Die Buttons bleiben trotzdem sichtbar.

Danke im Voraus!

Re: Wennabfrage in einem Makro

von kannenklaus » Fr, 04.01.2008 11:37

hallo stommy,

das geht indem du abhängig von einem ereignis den button aktivierst. so z.b.

Code: Alles auswählen

Sub Button_Changed
	'--Status abprüfen
'
	If oDlg.getControl("cbx1").getModel.state=1 then

		oDlg.getControl("PushButton1").getModel.enabled=true
		oDlg.getControl("PushButton2").getModel.enabled=true

	ElseIf oDlg.getControl("cbx1").getModel.state=0 then

		oDlg.getControl("PushButton1").getModel.enabled=false
		oDlg.getControl("PushButton2").getModel.enabled=false	

	end if

End Sub
in dem o.g. beispiel werden je nach status der checkbox "cbx1" die pushbuttons 1 und 2 aktiviert bzw. deaktiviert. damit dies geht. musst du checkbox "cbx1" dieses makro mit dem ereignis "status geändert" zuweisen. zu finden mit der rechten maus auf dem kontrollelement die karte ereignisse. verwende auch das xray-tool. um den sicher den status deiner kontrollelemente zu ermitteln.

http://sourceforge.net/project/download ... p&83207485

gürße

klaus

Re: Wennabfrage in einem Makro

von stommy7 » Fr, 04.01.2008 08:05

Okay danke erstmal das funktioniert soweit einwandfrei! Hab es mir so angepasst wie ich es brauche.

Jetzt nur noch eine Frage. Ich habe drei Buttons, die alle nicht aktiviert sind. Wie kann ich über ein Makro einen der Buttons aktiv setzen? Die Buttons sind als "PushButton1" bis "PushButton3" bezeichnet?

Re: Wennabfrage in einem Makro

von kannenklaus » Do, 03.01.2008 16:24

hallo stommy,

verschiedene varianten sind denkbar. vorher solltest du klären, ob es sich um einen string oder zahlenwert handelt. folgendes beispiel geht von einem string aus:

Sub Vergleich
Dim aktivesBlatt as Object, oZelle as Object
Dim SuString as string

Code: Alles auswählen

aktivesBlatt=thisComponent.CurrentController.getActiveSheet
oZelle=aktivesBlatt.getCellRangeByName("C1")
SuString= "Suchwort"
	if oZelle.string=SuString then
	msgbox("Gefunden")
	else
	msgbox("nicht gefunden")
	end if

end sub
es gibt auch noch andere möglichkeiten.

grüße

klaus

Re: Wennabfrage in einem Makro

von Toxitom » Do, 03.01.2008 16:23

Hey stommy,

was hast du denn schon geschafft? Wir helfen gerne weiter, wenn es "klemmt", aber so ganz ohne Anhaltspunkt?
Poste doch bitte dein schon erzeugtes und funktionierendes Makro, und was heisst "wenn in C! ein Eintrag steht"?. Zahl (Wert), Formel oder Text - oder egal. Und was ist sonst da drin? nichts?

Viele Grüße
Thomas

Wennabfrage in einem Makro

von stommy7 » Do, 03.01.2008 12:39

Hallo Zusammen!

Ich bin OOo-Neuling. Ich möchte in Abhängigkeit davon, ob in Zelle C1 ein Eintrag steht oder nicht einige Zeilen ein- und wieder ausblenden. Ich bekomme aber diese Abfrage nicht hin. Das Ein- und Ausblenden der Zeilen hab ich geschafft, aber an der Abfrage scheiterts.
Kann mir da jemand weiterhelfen?

Danke im Voraus!

Nach oben