Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ComboBox1.RowSource = Diesen Bereich per VBA füllen

382 views
Skip to first unread message

Ulrich Weigel

unread,
Jan 4, 2002, 9:50:40 PM1/4/02
to
Hallo NG
Wie gebe ich mit VBA den RowSource einer ComboBox am?

Die Daten stehen in Sheets(2).Range("R2"),Cells(2,N)), wobei N dynamisch
ist.
Der Startwert Range("R2") ist immer gleich, der Endwert, also die Spalte für
Reihe 2 ist dynamisch.

Ich hoffe Ihr habt mich verstanden!

--
Gruss
Ulrich Weigel

E-Mail: MDLLe...@AOL.com

Wilfried Butzek

unread,
Jan 6, 2002, 3:53:13 PM1/6/02
to
Ulrich Weigel schrieb am Sat, 5 Jan 2002 03:50:40 +0100:
>
> Hallo NG
> Wie gebe ich mit VBA den RowSource einer ComboBox am?
>
> Die Daten stehen in Sheets(2).Range("R2"),Cells(2,N)), wobei N dynamisch
> ist.
> Der Startwert Range("R2") ist immer gleich, der Endwert, also die Spalte für
> Reihe 2 ist dynamisch.
>
> Ich hoffe Ihr habt mich verstanden!

Hallo Ulrich,

ich bin mir nicht sicher, ob ich Dein Problem richtig
verstanden habe. Aber z.B. funktioniert folgendes
bei mir unter XL 97 SR1:

Sub ComboFuellen()
Dim lngStartzeile As Long
Dim lngEndezeile As Long
Dim strRowsource As String
lngStartzeile = 2
lngEndezeile _
= Tabelle1.Range("A65536").End(xlUp).Row
strRowsource _
= "A" & lngStartzeile & ":" & "A" & lngEndezeile
UserForm1.ComboBox1.RowSource = strRowsource
Load UserForm1
UserForm1.Show
End Sub

Das "A" im Code (mit Suchen und Ersetzen) mußt
Du für Deine Tabelle dann durch "R" ersetzen lassen.

Mit freundlichem Gruß
Wilfried

Ulrich Weigel

unread,
Jan 6, 2002, 6:29:13 PM1/6/02
to
Hallo Wilfried,
nee, so leider nicht.

Es soll z.B. heißen:
strRowsource = "R2:W2"
UserForm1.ComboBox1.RowSource = strRowsource

Dynamisch ist nun die Spalte, also kann es auch heißen: strRowsource =
"R2:X2"

Würde ich mit VBA dies als Formel in eine Zelle schreiben, so würde ich
schreiben:
Range("A1").Formular1c1 = "=R2C18:" & lstSpalte & "2"

Wenn ich aber schreibe strRowsource = "R2C18:" & lstSpalte & "2"
dann wird als Fehler falscher Eigenschaftswert gemeldet.
Muß ich also aus dem Wert 25 für Spalte Y in den Buchstaben Y umwandeln?
Geht es nicht anders?

--
Gruss
Ulrich Weigel

E-Mail: MDLLe...@AOL.com

"Wilfried Butzek" <Wilfrie...@t-online.de> schrieb im Newsbeitrag
news:a1ad9k$j9r$04$1...@news.t-online.com...


> Ulrich Weigel schrieb am Sat, 5 Jan 2002 03:50:40 +0100:
> >
> > Hallo NG
> > Wie gebe ich mit VBA den RowSource einer ComboBox am?
> >
> > Die Daten stehen in Sheets(2).Range("R2"),Cells(2,N)), wobei N dynamisch
> > ist.
> > Der Startwert Range("R2") ist immer gleich, der Endwert, also die Spalte
für
> > Reihe 2 ist dynamisch.
> >
> > Ich hoffe Ihr habt mich verstanden!
>
> Hallo Ulrich,
>
> ich bin mir nicht sicher, ob ich Dein Problem richtig
> verstanden habe. Aber z.B. funktioniert folgendes
> bei mir unter XL 97 SR1:
>
> Sub ComboFuellen()
> Dim lngStartzeile As Long
> Dim lngEndezeile As Long
> Dim strRowsource As String
> lngStartzeile = 2

> lngEndezeile = Tabelle1.Range("A65536").End(xlUp).Row
> strRowsource = "A" & lngStartzeile & ":" & "A" & lngEndezeile

Wilfried Butzek

unread,
Jan 7, 2002, 6:29:54 PM1/7/02
to
Ulrich Weigel schrieb am Mon, 7 Jan 2002 00:29:13 +0100:
>
> Hallo Wilfried,
> nee, so leider nicht.
>
> Es soll z.B. heißen:
> strRowsource = "R2:W2"
> UserForm1.ComboBox1.RowSource = strRowsource
>
> Dynamisch ist nun die Spalte, also kann es auch heißen: strRowsource =
> "R2:X2"
>
> Würde ich mit VBA dies als Formel in eine Zelle schreiben, so würde ich
> schreiben:
> Range("A1").Formular1c1 = "=R2C18:" & lstSpalte & "2"
>
> Wenn ich aber schreibe strRowsource = "R2C18:" & lstSpalte & "2"
> dann wird als Fehler falscher Eigenschaftswert gemeldet.
> Muß ich also aus dem Wert 25 für Spalte Y in den Buchstaben Y umwandeln?
> Geht es nicht anders?

Hallo Ulrich,

ich habe Dein Problem möglicherweise immer noch nicht
verstanden - altersbedingte ... ;-))

Oder meinst Du vielleicht folgendes (im Klassenmodul Deines
Tabellenblattes):

Sub ComboFuellen()
Dim lngStartspalte As Long
Dim lngEndespalte As Long
Dim rngBereich As Range
Dim strRowsource As String
' Spalte R als Startspalte festlegen
lngStartspalte = 18
' Der Variablen "lngEndespalte" den Rückgabewert
' der Funktion hinter dem Gleichheitszeichen zuweisen.
lngEndespalte _
= ActiveSheet.Cells(2, 256).End(xlToLeft).Column
Set rngBereich _
= Range(Cells(2, lngStartspalte), Cells(2, lngEndespalte))
strRowsource = rngBereich.Address
UserForm5.ComboBox1.ColumnCount = _
lngEndespalte - lngStartspalte + 1
UserForm5.ComboBox1.RowSource = strRowsource
Load UserForm5
UserForm5.Show
Set rngBereich = Nothing
End Sub

Mit freundlichem Gruß
Wilfried

Martin Egli

unread,
Jan 11, 2002, 4:20:34 PM1/11/02
to
Nein habe ich nicht. Was heisst schon dynamisch? Du musst schon erklären, in
wie fern dynamisch (hängt das vom Wetter ab? oder von der Laune? oder vom
PC?)

Martin


"Ulrich Weigel" <MDILe...@easysixt.de> schrieb im Newsbeitrag
news:O4PAOPZlBHA.2264@tkmsftngp05...

0 new messages