Seite 1 von 1
Wennabfrage in einem Makro
Verfasst: Do, 03.01.2008 12:39
von stommy7
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!
Re: Wennabfrage in einem Makro
Verfasst: Do, 03.01.2008 16:23
von Toxitom
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
Re: Wennabfrage in einem Makro
Verfasst: Do, 03.01.2008 16:24
von kannenklaus
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
Verfasst: Fr, 04.01.2008 08:05
von stommy7
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
Verfasst: Fr, 04.01.2008 11:37
von kannenklaus
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
Verfasst: Fr, 04.01.2008 12:51
von stommy7
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
Verfasst: Fr, 04.01.2008 15:16
von kannenklaus
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
Verfasst: Fr, 04.01.2008 15:26
von stommy7
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
Verfasst: Fr, 04.01.2008 15:49
von kannenklaus
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
Verfasst: Mi, 16.01.2008 15:59
von Gabriel123
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.