Discussion:
ComboBox-List mit einem Bereich füllen
(zu alt für eine Antwort)
Ralf Schollmeyer
2004-06-27 10:36:21 UTC
Permalink
Hallo NG,
habe das Problem eine Combobox mit einem Range zu füllen. Ich bentzte den
Code:
ComboBox1.AddItem (Range("Name").Address)
Das Ergebniss ist im Prinzip das, dass nun in der Combobox der Adressbezug
$A$1:$A$20 steht und nicht die Zellinhalte des Bereichs.
Dazu kommt noch ein anderer Umstand, dass wenn der Bereich dynamisch ist,
nur ein Element in der Liste vorhanden ist und das ist wiederum ein
Zellbezug $A$1:$A$20.

Gibts irgendeine Möglichkeit, die tatsächlichen Zellinhalte von einem
Bereich in die Liste zu transferieren ohne dass eine For-Schleife odg
verwendet wird?

MfG
Ralf
Melanie Breden
2004-06-27 11:17:31 UTC
Permalink
Hallo Ralf,
Post by Ralf Schollmeyer
habe das Problem eine Combobox mit einem Range zu füllen. Ich bentzte den
ComboBox1.AddItem (Range("Name").Address)
Das Ergebniss ist im Prinzip das, dass nun in der Combobox der Adressbezug
$A$1:$A$20 steht und nicht die Zellinhalte des Bereichs.
Dazu kommt noch ein anderer Umstand, dass wenn der Bereich dynamisch ist,
nur ein Element in der Liste vorhanden ist und das ist wiederum ein
Zellbezug $A$1:$A$20.
Gibts irgendeine Möglichkeit, die tatsächlichen Zellinhalte von einem
Bereich in die Liste zu transferieren ohne dass eine For-Schleife odg
verwendet wird?
verwende die RowSource-Eigenschaft der ComboBox:

Private Sub UserForm_Initialize()
ComboBox1.RowSource = Worksheets("Tabelle1").Range("A1:A20").Address
End Sub

--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Ralf Schollmeyer
2004-06-27 17:15:26 UTC
Permalink
Danke Melanie
Post by Melanie Breden
Hallo Ralf,
Post by Ralf Schollmeyer
habe das Problem eine Combobox mit einem Range zu füllen. Ich bentzte den
ComboBox1.AddItem (Range("Name").Address)
Das Ergebniss ist im Prinzip das, dass nun in der Combobox der Adressbezug
$A$1:$A$20 steht und nicht die Zellinhalte des Bereichs.
Dazu kommt noch ein anderer Umstand, dass wenn der Bereich dynamisch ist,
nur ein Element in der Liste vorhanden ist und das ist wiederum ein
Zellbezug $A$1:$A$20.
Gibts irgendeine Möglichkeit, die tatsächlichen Zellinhalte von einem
Bereich in die Liste zu transferieren ohne dass eine For-Schleife odg
verwendet wird?
Private Sub UserForm_Initialize()
ComboBox1.RowSource = Worksheets("Tabelle1").Range("A1:A20").Address
End Sub
--
Mit freundlichen Grüssen
Melanie Breden
- Microsoft MVP für Excel -
http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Michael Zimmermann
2004-06-27 11:25:40 UTC
Permalink
Hallo!
Post by Ralf Schollmeyer
habe das Problem eine Combobox mit einem Range zu füllen.
ComboBox1.AddItem (Range("Name").Address)
Das Ergebniss ist im Prinzip das, dass nun in der
Combobox der Adressbezug $A$1:$A$20 steht und nicht die
Zellinhalte des Bereichs.
Dazu kommt noch ein anderer Umstand, dass wenn der
Bereich dynamisch ist, nur ein Element in der Liste
vorhanden ist und das ist wiederum ein Zellbezug
$A$1:$A$20.
Gibts irgendeine Möglichkeit, die tatsächlichen
Zellinhalte von einem Bereich in die Liste zu
transferieren ohne dass eine For-Schleife odg verwendet
wird?
Versuche

ComboBox1.RowSource = Range("Name").Address

oder

ComboBox1.List = Range("Name").Value


Ebenfalls interessant ist

ComboBox1.List = fld()

womit Du ein bestehendes Array als Listeninhalt zuweisen
kannst.

Gruß aus Mainz
Michael
Ralf Schollmeyer
2004-06-27 17:15:43 UTC
Permalink
Danke Michael
Post by Michael Zimmermann
Hallo!
Post by Ralf Schollmeyer
habe das Problem eine Combobox mit einem Range zu füllen.
ComboBox1.AddItem (Range("Name").Address)
Das Ergebniss ist im Prinzip das, dass nun in der
Combobox der Adressbezug $A$1:$A$20 steht und nicht die
Zellinhalte des Bereichs.
Dazu kommt noch ein anderer Umstand, dass wenn der
Bereich dynamisch ist, nur ein Element in der Liste
vorhanden ist und das ist wiederum ein Zellbezug
$A$1:$A$20.
Gibts irgendeine Möglichkeit, die tatsächlichen
Zellinhalte von einem Bereich in die Liste zu
transferieren ohne dass eine For-Schleife odg verwendet
wird?
Versuche
ComboBox1.RowSource = Range("Name").Address
oder
ComboBox1.List = Range("Name").Value
Ebenfalls interessant ist
ComboBox1.List = fld()
womit Du ein bestehendes Array als Listeninhalt zuweisen
kannst.
Gruß aus Mainz
Michael
Herbert Taferner
2004-06-27 11:39:47 UTC
Permalink
Hallo Ralf,
Post by Ralf Schollmeyer
Dazu kommt noch ein anderer Umstand, dass wenn der Bereich dynamisch ist,
nur ein Element in der Liste vorhanden ist und das ist wiederum ein
Zellbezug $A$1:$A$20.
Gibts irgendeine Möglichkeit, die tatsächlichen Zellinhalte von einem
Bereich in die Liste zu transferieren ohne dass eine For-Schleife odg
verwendet wird?
oder so,
wenn der Bereich schon dynamisch sein soll
z. B. von A1 bis A letzter Eintrag

'------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lz
Dim Bereich

With ActiveSheet
.ComboBox1.ListFillRange = ""
Lz = .Cells(Rows.Count, 1).End(xlUp).Row
Bereich = "A1:A" & Lz
.ComboBox1.ListFillRange = Bereich
End With

End Sub
'------------------------------------------

mfg Herbert
Ralf Schollmeyer
2004-06-27 17:16:09 UTC
Permalink
Danke Herbert
Post by Melanie Breden
Hallo Ralf,
Post by Ralf Schollmeyer
Dazu kommt noch ein anderer Umstand, dass wenn der Bereich dynamisch ist,
nur ein Element in der Liste vorhanden ist und das ist wiederum ein
Zellbezug $A$1:$A$20.
Gibts irgendeine Möglichkeit, die tatsächlichen Zellinhalte von einem
Bereich in die Liste zu transferieren ohne dass eine For-Schleife odg
verwendet wird?
oder so,
wenn der Bereich schon dynamisch sein soll
z. B. von A1 bis A letzter Eintrag
'------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lz
Dim Bereich
With ActiveSheet
.ComboBox1.ListFillRange = ""
Lz = .Cells(Rows.Count, 1).End(xlUp).Row
Bereich = "A1:A" & Lz
.ComboBox1.ListFillRange = Bereich
End With
End Sub
'------------------------------------------
mfg Herbert
Herbert Taferner
2004-06-27 17:51:57 UTC
Permalink
Hallo Ralf,
Post by Ralf Schollmeyer
Danke Herbert
Bitte gern !

mfg Herbert

Loading...