Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
960to964
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ComboBox-Syntax

ComboBox-Syntax
26.03.2008 16:39:00
Gordon
Moin,
habe mal 'ne Frage zur ComboBox-Syntax. Und zwar habe ich z.B. eine ComboBox mit 2 Einträgen. Wenn der erste Eintrag gewählt wurde soll in der Zelle A1 eine 10 erscheinen. Wenn der 2.Eintrag genommen wird, soll in A1 eine 50 erscheinen.
Kann mir da jemand helfen?
Gruß
Gordon

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox-Syntax
26.03.2008 16:59:00
dan
Hallo Gordon,
was im Combo ausgewaehtl ist testet man mit der Eigenschafft ListIndex.
Me.ComboBox1.ListIndex = 0 ... der erste Eintrag ist ausgewaehlt
Me.ComboBox1.ListIndex = 1... zweite usw.
Me.ComboBox1.ListIndex = -1 ... nicht ist ausgewaehlt
Hier ein Beispiel. Gruss Dan, cz.
Option Explicit

Private Sub ComboBox1_Change()
If (Me.ComboBox1.ListIndex = 0) Then
[a1] = 10
ElseIf (Me.ComboBox1.ListIndex = 1) Then
[a1] = 50
Else
[a1] = ""
End If
End Sub



Private Sub UserForm_Initialize()
Me.ComboBox1.AddItem "erste"
Me.ComboBox1.AddItem "zweite"
End Sub


Anzeige
AW: ComboBox-Syntax
30.03.2008 18:38:25
Gordon
Ok,
bin erst leider heute zum Testen gekommen. Geht soweit, aber zwei Fragen habe ich noch:
1.
Man füllt ja die ComboBox über Eigenschaften und dann ListFillRange. Geht das auch anders? Zum Beispiel über den Makroquelltext der ComboBox?
2.
Was bedeutet dieser Quelltext:

Private Sub UserForm_Initialize()
Me.ComboBox1.AddItem "erste"
Me.ComboBox1.AddItem "zweite"
End Sub


Gruß
Gordon

AW: ComboBox-Syntax
30.03.2008 23:59:17
Herbert
Hi,
1. z.B. mittels AddItem
2. Probier es aus.
mfg Herbert

AW: ComboBox-Syntax
31.03.2008 10:38:00
dan
Hi,
hier ein beisp., wei man combo fillen kann (in run-time). Bilde eine User Form mit drei Combos: 1, 2, 3.
In dem Beisp. sieht man, dass AddItem fuegt einfach eine Item hinzu. RowSource filled den Combo-box mit den Werten aus einem Range und List benutzt eine Liste. Hoffe es hilft einbischen weiter :-)
Gruss Dan, cz.
Option Explicit
Private sourceList() As String

Private Sub UserForm_Initialize()
Me.ComboBox1.AddItem "a"
Me.ComboBox1.AddItem "b"
Me.ComboBox1.AddItem "c"
Me.ComboBox2.RowSource = "a1:a3"
ReDim sourceList(3)
sourceList(0) = "a"
sourceList(1) = "a"
sourceList(2) = "a"
Me.ComboBox3.List = sourceList
End Sub


Anzeige
AW: ComboBox-Syntax
31.03.2008 11:37:57
Gordon
Danke für die schönen Beispiele.
Vom Prinzip ist es mir klar, aber irgendwie bin ich wohl zu doof es umzusetzen. Da ich die ComboBox mit Daten füllen will, die nicht auf dem Arbeitsblatt zu finden sind, wäre ja die Methode "AddItem" wohl doe richtige für mich, oder?
Ich müßte dann doch nur, um meine Box zu füllen, folgenen Text in meinen Quelltext schreiben:

Private Sub UserForm_Initialize()
Me.ComboBox1.AddItem "Test1"
Me.ComboBox1.AddItem "Test2"
End Sub


Ist es egal wohin ich diesen Sub in den Quelltext schreibe, oder muss der irgendwo fest hin?
Beste Grüße
Gordon

Anzeige
AW: ComboBox-Syntax
31.03.2008 12:09:04
dan
Hi,
ja, Du kannst AddItem benutzen. Oder List kommt auch in die Frage.
Die Sub muss in dem Code-module vom UserForm stehen, sonnst ist es egal wo unterhalb dieses User Form Code Modules es liegt. Der Code mit AddItems muss aber nicht nur in UserForm_Initialize stehen.
Du kannst z.B ein Buton aufm UF haben, wo die Item hinzugefuegt werden:

Private Sub CommandButton1_Click()
Me.ComboBox1.Clear ' alle items loeschen
Me.ComboBox1.AddItem "a" ' ... usw.
End Sub


Gruss Dan, cz.

AW: ComboBox-Syntax
31.03.2008 14:12:38
Gordon
Oh man,
ich bin echt zu doof anscheinend. Also so wie ich es bisher verstanden habe funktioniert es leider gerade nicht. Hier mal der bisherige Quelltext meiner ComboBox1:

Private Sub ComboBox1_Change()
If (Me.ComboBox1.ListIndex = 0) Then
Worksheets("Daten").Range("k1") = 10
ElseIf (Me.ComboBox1.ListIndex = 1) Then
Worksheets("Daten").Range("k1") = 50
Else
Worksheets("Daten").Range("k1") = ""
End If
End Sub


Nun soll sie halt noch mit Daten gefüllt werden. Diese Daten sollen fest sein und nicht änderbar. Man soll auch nicht von außen etwas hinzufügen können.
Gruß
Gordon

Anzeige
AW: ComboBox-Syntax
31.03.2008 21:26:26
dan
Hi,
was funktioniert nicht? Der Code ist so in Ordnung. Man muss nur noch die Werte in Combox hinzufuegen. Wenn die Werte nicht veraenderbar sein sollen, benutze doch einfach AddItem.
Also Sub UserForn_Initialize() ... und dort Combo.AddItem "Item1" usw. Dann muss es schon richtig sein :-)
Gruss Dan, cz.

AW: ComboBox-Syntax
01.04.2008 10:18:00
Gordon
Und genau das funktioniert nicht bei mir.
Egal nun wo ich diesen Teil mit Sub UserForm_Initialize() im Quelltext stehen habe, in der ComboBox auf dem Tabellenblatt wird kein Wert drin angezeigt.
Gruß
Gordon

AW: ComboBox-Syntax
01.04.2008 11:07:51
dan
Hi,
also Du hast die Combo auf dem Tabellenblatt und nicht auf dem UserForm? Also falls sich die Combos auf dem Blatt befinden, nutzt die prozedure UserForm_Initialize nichts :-). Auf dem Blatt kann man die Combo z.B. mit Hilfe von "Format" Dialogs fillen. Oder falls Du das im Code machen willst, funtz der gleiche Code, also z.B.
Combo1.AddItem "Itm1" usw. Nur der Code darf nicht in der Sub UserForm_Initialize liegen, sondern z.B. im ThisWorkbook_Open(). Alles klar jetz? Gruss Dan, cz.

Anzeige
AW: ComboBox-Syntax
01.04.2008 14:07:00
Gordon
Ok,
jetzt haben wir shcon mal die eine Fehlerquelle gefunden bzw. das Missverständniss aus dem Weg geräumt. Nun stellt mir sich noch die Frage, wo das hier stehen muss:

Private Sub ThisWorkbook_Open()
ComboBox1.AddItem "Test1"
ComboBox1.AddItem "Test2"
ComboBox1.AddItem "Test3"
End Sub


Gruß
Gordon

AW: ComboBox-Syntax
01.04.2008 14:35:00
dan
Ok,
hier ein Bildschirmabdruck:
Userbild

AW: ComboBox-Syntax
01.04.2008 15:14:48
Gordon
Also langsam zweifle ich stark an mir selbst....das kann doch wohl nicht so schwer sein.
Habe auf Tabelle2 eine ComboBox (ComboBox1) gezogen.
Also ich schreibe folgendes in "DieseArbeitsmappe":

Private Sub ThisWorkbook_Open()
ComboBox1.AddItem "Test1"
ComboBox1.AddItem "Test2"
ComboBox1.AddItem "Test3"
End Sub


Im Quelltext von Tabelle2 steht derzeit nur:


Private Sub ComboBox1_Change()
End Sub


Aber dennoch zeigt die ComboBox1 auf dem Excel-Blatt keine Inhalte an. Was mache ich denn da falsch?

Anzeige
AW: ComboBox-Syntax
01.04.2008 16:01:00
dan
Gordon,
zweifle nicht an Dir :-)...es war mein Fehler, ich habe es nicht getestet...
Also jetzt sollte es ok sein, dies habe ich getestet. Es sollte drei Items in Combobox1 auf dem Blatt Tabelle2 zugeben:
Option Explicit

Private Sub Workbook_Open()
Worksheets("Tabelle2").OLEObjects("Combobox1").Object.AddItem "Itm1"
Worksheets("Tabelle2").OLEObjects("Combobox1").Object.AddItem "Itm2"
Worksheets("Tabelle2").OLEObjects("Combobox1").Object.AddItem "Itm3"
End Sub


Hier die Datei:
https://www.herber.de/bbs/user/51194.xls
Gruss Dan, cz.

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige