Anzeige
Archiv - Navigation
648to652
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
648to652
648to652
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ComboBox Frage + Problem

ComboBox Frage + Problem
09.08.2005 09:37:08
Henri
Hallo,
ich habe eine Userform mit einer ComboBox und 2 Textboxen.
Die ComboBox - Werte sollen aus einem Sheet aus A2 bis B(n) ausgelesen werden. Wenn möglich sollen diese in der ComboBox 2 spaltig angezeigt werden. Leider bringt mir mein Initialize einen Fehler (Index des Eigenschaftenfeldes ungültig):

Private Sub UserForm_Initialize()
Dim frm As UserForm
Dim i As Integer
Dim iMax As Integer
Application.ScreenUpdating = False
With frmKunden.ComboBox1
.Clear
.ColumnCount = 2
iMax = ActiveSheet.UsedRange.Rows.Count
For i = 2 To iMax
.AddItem Worksheets("Kunden").Cells(i, 1).Value
.List(i, 1) = Worksheets("Kunden").Cells(i, 2).Value
Next i
End With
Application.ScreenUpdating = True
End Sub

Weiterhin soll bei Auswahl eines Wertes aus der Combobox diese in die beiden TextBoxen übernommen werden und nach dem Ändern der Werte sowie Drücken des CommandButtons wieder an die entsprechende Stelle in meinem Sheet zurückgeschrieben werden.
Wie stelle ich das denn an?

Private Sub ComboBox1_Change()
-beide Werte der 2 spaltigen ComboBox in tbName und tbZeit übernehmen
End Sub


Private Sub cbAktualisieren_Click()
-Wert aus tbName und tbZeit in entsprechende Zeile von Worksheets("Kunden").Cells(x, 1) und Worksheets("Kunden").Cells(x, 2) eintragen
End Sub

Danke und Grüße
Henri

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox Frage + Problem
09.08.2005 10:10:11
Matthias
Hallo Henri,

Private Sub UserForm_Initialize()
Dim frm As UserForm
Dim i As Integer
Dim iMax As Integer
With ComboBox1
.Clear
.ColumnCount = 2
iMax = Worksheets("Kunden").Range("A65536").End(xlUp).Row
For i = 2 To iMax
.AddItem Worksheets("Kunden").Cells(i, 1).Value
.List(i - 2, 1) = Worksheets("Kunden").Cells(i, 2).Value
Next i
End With
End Sub

Erläuterung:
der derste Eintrag der Combobox hat den Index 0. Das die Schleife bei 2 beginnt:
.List(i - 2, 1)
Gruß Matthias
P.S. 2spaltig wird nur die Auswahlliste angezeigt, die Auswahl selbst hat dann den Wert der "BoundColumn"-Spalte.
Anzeige
AW: ComboBox Frage + Problem
09.08.2005 10:33:23
Henri
Danke Matthias, das funktioniert.
Und da stehe ich nun wieder vor einem Problem.
Die zweite Spalte enthält ein Datumsformat und wird in meiner Combobox nicht als 08:00 sondern 0,333333333 angezeigt.
Habe ich da eine Möglichkeit das im Uhrzeitformat darzustellen?
Grüße
Henri
AW: ComboBox Frage + Problem
09.08.2005 10:35:35
Matthias
Hallo Henri,
am einfachsten, indem du nicht Cells(...).Value, sondern Cells(...).Text schreibst.
Gruß Matthias
AW: ComboBox Frage + Problem
09.08.2005 11:04:33
Henri
Hallo Matthias,
auf das Einfachste kommt man meist nicht ;-)
Danke
Noch kurz zu meiner zweiten Frage von Anfang:
Wenn ich einen Wert mit der ComboBox auswähle, lese ich diesen in meine TextBox ein:

Private Sub ComboBox1_Change()
frmKunden.TextBox3.Value = frmKunden.ComboBox1.Value
'frmKunden.TextBox4.Value = frmKunden.ComboBox1.List
End Sub

Nun möchte ich aber auch die zweite Spalte in meine andere Textbox einlesen. Wie mache ich denn das (ich weiß, mit .List gehts net)
Und wie schreibe ich die Daten zurück an die richtige Stelle?
Fragen über Fragen
Danke
Henri
Anzeige
AW: ComboBox Frage + Problem
09.08.2005 11:15:24
Matthias
Hallo Henri,
doch, geht schon mit .List():

Private Sub ComboBox1_Change()
With ComboBox1
TextBox3.Value = .Value
TextBox4.Value = .List(.ListIndex, 1)
End With
End Sub

Grüße,
Matthias
AW: ComboBox Frage + Problem
09.08.2005 11:28:20
Matthias
Hallo Henri,
und das Zurückschreiben in die ComboBox und in die Tabelle1:

Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If ComboBox1.ListIndex = -1 Then Exit Sub
Worksheets("Kunden").Cells(ComboBox1.ListIndex + 2, 1) = TextBox3.Text
With ComboBox1
.List(.ListIndex, 0) = TextBox3.Value
End With
End Sub
Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If ComboBox1.ListIndex = -1 Then Exit Sub
Worksheets("Kunden").Cells(ComboBox1.ListIndex + 2, 2) = TextBox4.Text
With ComboBox1
.List(.ListIndex, 1) = TextBox4.Value
End With
End Sub

Gruß Matthias
Anzeige
AW: ComboBox Frage + Problem
09.08.2005 11:44:14
Henri
Hallo Matthias,
vielen Dank, funktioniert.
Ich habe das mal auf meinen Aktualisieren Button gelegt:

Private Sub cbAktualisieren_Click()
If ComboBox1.ListIndex = -1 Then Exit Sub
Worksheets("Kunden").Cells(ComboBox1.ListIndex + 2, 1) = TextBox3.Text
Worksheets("Kunden").Cells(ComboBox1.ListIndex + 2, 2) = TextBox4.Text
With ComboBox1
.List(.ListIndex, 0) = TextBox3.Value
.List(.ListIndex, 1) = TextBox4.Value
End With
frmKunden.Hide
End Sub

danke und grüße
Henri

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige