Für 1.1.x (OOo 1.1.4):
*neues Dokument öffnen
*in Werkzeuleiste langer Klick auf "Formularfunktionen anzeigen" und erscheinende Symbolleiste an Titelzeile auf den Arbeitsbereich ziehen
*in Entwurfmodus schalten (Schaltfläche "Entwurfsmodus an/aus")
*Schaltfläche "Kombinationsfeld" und Kombinationsfeld aufziehen, evtl. erscheinenden Assistenten abbrechen
*Größe des Kombinationsfeldas anpassen an Zelle und über gewünschte Zelle verschieben
*Verankerung des Kombinationsfeldes prüfen (Kontextmenü-->Verankerung: "an Zelle")
*Kontextmenü -->"Kontrollfeld" dort Register allgemein: unter "Listeneinträge" die 4 Worte eintragen, nach jedem Wort <UMSCHALT><ENTER>
*Register "Daten" verknüpfte Zelle eintragen, also die Zelle über der das Kombinationsfeld liegt (z.B. A1)
*Entwurfsmodus beenden
*Extras>Makros>Makro in linkem Fenster das Dokument suchen, die unterhalb liegende Bibliothek "Standard" markieren
*rechts Schaltfläche "Neu", Modulnamen bei "Module1" belassen
*es öffnet Basic-IDE, allen vorhandenen Text im Modul löschen, alsio diesen hier:
Code: Alles auswählen
REM ***** BASIC *****
Sub Main
End Sub
Sub Macro1
End Sub
*nun folgenden Code eingeben:
Code: Alles auswählen
Global eintrag
Sub aktivieren()
oDoc = ThisComponent
oSheet = oDoc.Sheets.GetByName("Tabelle1")
oForm = oSheet.DrawPage.Forms.GetByName("Standard")
oComboBox = oform.getByName("ComboBox")
eintrag = oComboBox.text
End Sub
Sub Eingabe()
oDoc = ThisComponent
oSheet = oDoc.Sheets.GetByName("Tabelle1")
oForm = oSheet.DrawPage.Forms.GetByName("Standard")
oComboBox = oform.getByName("ComboBox")
x = 0
For i = LBound(oComboBox.StringItemList) to UBound(oComboBox.StringItemList)
If oComboBox.text = oComboBox.StringItemList(i) Then x = x + 1
Next
If x = 0 Then
MsgBox "Manuelle Eingabe nicht zulässig, wählen Sie einen Wert aus der Liste."
oComboBox.text = eintrag
End if
End Sub
Hinweise:
--> Name (hier: Tabelle1) muß dem Namen des Tabellenblattes entsprechen, welches das Kombinationsfeld enthält
--> Name des Formulars (hier: Standard) muß dem Namen des Formulars entsprechen, zu welchemdas Kombinationsfeld gehört. EVtl. prüfen: Kontextmenü Kombinationsfeld, dort "Formular"
--> Name (hier ComboBox) muß dem Namen des Kombinationsfels entsprechen. Evtl. prüfen Kontextmenü dort "kontrollfeld"
*Basic-IDE schließen
*wieder in Entwurfmodus schalten
*Kontextmenü des Kombinationsfelds, dort Register Ereignisse
*für das Ereignis "Bei Fokuserhalt" das Makro "aktivieren" zuweisen (Klick auf Schaltfläche im erscheinenden Fenster links das Dokument wählen, Bibliothek Standard Modul1 und rechts das Makro markieren und auf Schaltfläche zuweisen klicken, anschließend OK klicken)
*für Ereignis "Text geändert" das Makro "Eingabe" zuweisen
*Entwurfsmodus beenden und Formularfunktionen-Symbolleiste schließen -->[x]
Wenn die fertige Version OOo 2.0 erscheint wird es zu 99% analog zu Daten>Gültigkeit in MS Excel funktionieren. Einziger Unterschied ist das keine Werte direkt angegeben werden können, sondern das diese in einem Zellbereich stehen müssen und dieser Bereich anzugeben ist.
Gruß
Stephan