Drop - Down - Menü 2.Versuch

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Headhunter
Beiträge: 6
Registriert: Do, 21.07.2005 13:11

Drop - Down - Menü 2.Versuch

Beitrag von Headhunter »

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
Headhunter
Beiträge: 6
Registriert: Do, 21.07.2005 13:11

vergessen !

Beitrag von Headhunter »

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
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

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:

Code: Alles auswählen

oSheet = oDoc.Sheets.GetByName("Tabelle1")
--> Name (hier: Tabelle1) muß dem Namen des Tabellenblattes entsprechen, welches das Kombinationsfeld enthält

Code: Alles auswählen

oForm = oSheet.DrawPage.Forms.GetByName("Standard")
--> Name des Formulars (hier: Standard) muß dem Namen des Formulars entsprechen, zu welchemdas Kombinationsfeld gehört. EVtl. prüfen: Kontextmenü Kombinationsfeld, dort "Formular"

Code: Alles auswählen

oComboBox = oform.getByName("ComboBox")
--> 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
Headhunter
Beiträge: 6
Registriert: Do, 21.07.2005 13:11

Wow, ich bin begeistert !

Beitrag von Headhunter »

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
Oblitor
**
Beiträge: 22
Registriert: Fr, 21.10.2005 18:37

Beitrag von Oblitor »

Villariba und Villabacho sind mir klar gegenüber dem hier *g*
Respekt vor soviel OO Wissen :-)

Ich hoff ich bring mein Pull-Down auch noch irgendwann so hin wie ich mirs vorstell...

Noch Meilenweit weg davon.

Oblitor
Oblitor
**
Beiträge: 22
Registriert: Fr, 21.10.2005 18:37

Beitrag von Oblitor »

Die Meilen waren nur "eine Nacht drüber schlafen" und schon hauts hin wie ichs mir vorstell ;-)
Antworten