Hallo Freunde,
wie kann ich in OO.o ein Drop - Down Menü erstellen ?
Meine Liste enthält folgende Auswahl :
Stahl
Aluminium
Holz
Kunststoff
Hab es versucht wie bei MS Excel, bin aber kläglich gescheitert !
Wer kann helfen ?
MfG
Hans
Drop - Down - Menü 2.Versuch
Moderator: Moderatoren
-
- Beiträge: 6
- Registriert: Do, 21.07.2005 13:11
vergessen !
Ich hab vergessen zu erwähnen, dass ich ein Drop-Down in Excel immer über die GÜLTIGKEITSPRÜFUNG erstellt habe !
MfG
Hans
Inten Pentium 4 - 2,8 GH/z - WinXP Pro - SP2 - OOo 1.14
MfG
Hans
Inten Pentium 4 - 2,8 GH/z - WinXP Pro - SP2 - OOo 1.14
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:
*nun folgenden Code eingeben:
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
*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
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
Code: Alles auswählen
oSheet = oDoc.Sheets.GetByName("Tabelle1")
Code: Alles auswählen
oForm = oSheet.DrawPage.Forms.GetByName("Standard")
Code: Alles auswählen
oComboBox = oform.getByName("ComboBox")
*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
-
- Beiträge: 6
- Registriert: Do, 21.07.2005 13:11
Wow, ich bin begeistert !
Hallo Stephan,
ich bin wirklich begeistert über die ausführliche Information, Hut ab.
Habe das Makro gleich ausprobiert und es klappt wirklich sehr gut !
Vielen Dank für Deine Mühe !!
MfG
Hans
ich bin wirklich begeistert über die ausführliche Information, Hut ab.
Habe das Makro gleich ausprobiert und es klappt wirklich sehr gut !
Vielen Dank für Deine Mühe !!
MfG
Hans