Herbers Excel-Forum - das Archiv
Daten in Combobox einlesen
Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Betrifft: Daten in Combobox einlesen
von: Andreas
Geschrieben am: 31.03.2005 14:13:44
Servus,
habe in einer Tabelle eine Combobox die ich mit den Daten aus Spalte "A" aus Tabellenblatt "Kunden" füllen will. Leere Zellen dürfen keine angezeigt werden.
Private Sub ComboBox_Click()
Dim endup As Integer
Dim i As Integer
Worksheets("Kunden").Select 'Kundenliste einlesen
endup = Range("A65536").End(xlUp).Row
For i = 1 To endup
ComboBox1.AddItem (ActiveCell.Value)
Next i
Worksheets("Tabelle1").Activate
End Sub
Funtioniert leider nicht, wo ist der Fehler?
Gruss Andreas
Betrifft: AW: Daten in Combobox einlesen
von: Frank Domke
Geschrieben am: 31.03.2005 14:21:20
Hallo Andreas,
Deine Laufvariable wird nirgens berücksichtigt!
Hier eine Lösung:
Private Sub ComboBox_Click()
Dim curRow As Integer
Dim lastRow As Integer
Dim ws As Worksheet
Set ws = Worksheets("Kunden")
lastRow = ws.Cells.SpecialCells(xlCellTypeLastCell).Row
ComboBox1.Clear
For curRow = 1 To lastRow
If Len(ws.Range("A" & curRow).Text & "") > 0 Then
ComboBox1.AddItem ws.Range("A" & curRow).Text
End If
Next
Set ws = Nothing
End Sub
Viel Spaß
Frank.
Betrifft: Noch ne Frage an Frank
von: Andreas
Geschrieben am: 31.03.2005 14:44:57
Danke Frank für die Lösung, funktionier gut, vielleicht hast du dazu auch so ne schnelle Lösung.
Und zwar bei Kunden die noch nicht in der Liste vorhanden sind, wird der Namen in der Combobox direkt eingegeben und wird durch Click auf CommandButton in die Tabelle "Kunden" in die nächste Freie Zelle in Spalte "A" eingetragen und alphabetisch sortiert.
Private Sub CommandButton1_Click()
Dim endup As Integer
'hier benuetze ich einen CommandButton, um Namen hinzuzufuegen
'sortiert wirds auch gleich alphabetisch
Worksheets("Kunden").Select
Range("A:A").End(xlUp).Row
Range("A" & endup + 1).Activate
ActiveCell.Value = ComboBox1.Value
Columns("A:A").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Worksheets("Tabelle1").Select
End Sub
habe auch hier so meine Probleme, du ja vielleicht nicht.
Gruss Andreas
Betrifft: AW: Noch ne Frage an Frank
von: Frank Domke
Geschrieben am: 31.03.2005 17:37:19
Hallo Andreas,
das Prinzip ist ähnlich:
Private Sub CommandButton1_Click()
Dim lastRow As Integer
Dim ws As Worksheet
Set ws = Worksheets("Kunden")
lastRow = ws.Cells.SpecialCells(xlCellTypeLastCell).Row
ws.Range("A" & lastRow + 1).Text = ComboBox1.Value
ws.Range.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Set ws = Nothing
End Sub
Das Sortieren habe ich jetzt nicht getestet, sollte aber klappen.
Viel Erfolg
Frank.