Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1044to1048
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
Inhaltsverzeichnis

Werte in Combobox lesen u. danebenstehende filtern

Werte in Combobox lesen u. danebenstehende filtern
28.01.2009 16:22:00
Roland
Hi.
Ich habe auf einem Formular ein Combobox1 und zwei Textboxen2 u.3
Auf meinem Sheet ("Ablage") ist ein Tabelle , die ungefähr so ausseieht:
E___________F_________G_______Spalte
Kategorie____Nummer____Form
Kabel1______124________BC
Kabel2______2158_______FR
Kabel3______765________NS
USW
Ich möchte nun die Daten aus Spalte E in die Combobox einlesen (Ab zeile 3, ohne Leerzeilen) und wenn ich dann in meiner Combobox eine Auswahl treffe, soll in die Textbox2 der danebenstehende wert aus F reingeschrieben werden und in di Textbox 3 der denebenstehende Wert aus G erscheinen
Beispiel
Ich wähle in der Combobox "Kabel2" aus , dann soll in der Textbox2 "2158" und in der Textbox3 "FR" erscheinen.
Wie kann man den sowas realisieren ?
Hilfe wäre nett
Gruss
Roland

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte in Combobox lesen u. danebenstehende filtern
28.01.2009 17:13:31
RS
Hi Roland,
Ungefähr so:

Private Sub ComboBox1_Change()
TextBox2.Value = Cells(ComboBox1.ListIndex + 2, 6).Value
TextBox3.Value = Cells(ComboBox1.ListIndex + 2, 7).Value
End Sub


Grüsse RS

AW: Werte in Combobox lesen u. danebenstehende filtern
28.01.2009 17:43:33
Peter
Hallo Roland,
ich würde es so lösen:
Option Explicit

Private Sub ComboBox1_Change()
TextBox1.Value = ComboBox1.List(ComboBox1.ListIndex, 1)
TextBox2.Value = ComboBox1.List(ComboBox1.ListIndex, 2)
End Sub



Private Sub UserForm_Initialize()
Dim WkSh    As Worksheet
Dim lZeile  As Long
Dim lCoBox  As Long
Set WkSh = ThisWorkbook.Worksheets("Tabelle2") ' den Tabellenblattnamen ggf. anpassen!
With ComboBox1
.ColumnCount = 3
.ColumnWidths = ("3,0cm;0,0cm;0,0cm")
For lZeile = 3 To WkSh.Cells(Rows.Count, 5).End(xlUp).Row
If WkSh.Range("E" & lZeile)  "" Then
ComboBox1.AddItem " "
ComboBox1.List(lCoBox, 0) = WkSh.Range("E" & lZeile).Value
ComboBox1.List(lCoBox, 1) = WkSh.Range("F" & lZeile).Value
ComboBox1.List(lCoBox, 2) = WkSh.Range("G" & lZeile).Value
lCoBox = lCoBox + 1
End If
Next lZeile
End With
End Sub


Gruß Peter

Anzeige
vielen Dank, passt oT
28.01.2009 20:40:00
Roland
Warum kommt hier denn eine Fehlermeldung ?
29.01.2009 07:14:00
Roland
Hi,
wenn ich diesen Code ( von Peter ) ausführe:

Private Sub ComboBox1_Change()
TextBox1.Value = ComboBox1.List(ComboBox1.ListIndex, 1)
TextBox2.Value = ComboBox1.List(ComboBox1.ListIndex, 2)
End Sub



Private Sub UserForm_Initialize()
Dim WkSh    As Worksheet
Dim lZeile  As Long
Dim lCoBox  As Long
Set WkSh = ThisWorkbook.Worksheets("Tabelle2") ' den Tabellenblattnamen ggf. anpassen!
With ComboBox1
.ColumnCount = 3
.ColumnWidths = ("3,0cm;0,0cm;0,0cm")
For lZeile = 3 To WkSh.Cells(Rows.Count, 5).End(xlUp).Row
If WkSh.Range("E" & lZeile)  "" Then
ComboBox1.AddItem " "
ComboBox1.List(lCoBox, 0) = WkSh.Range("E" & lZeile).Value
ComboBox1.List(lCoBox, 1) = WkSh.Range("F" & lZeile).Value
ComboBox1.List(lCoBox, 2) = WkSh.Range("G" & lZeile).Value
lCoBox = lCoBox + 1
End If
Next lZeile
End With
End Sub


und will dann die Combobo13 leeren, kommt immer die Fehlermeldung:
(betrifft diese Zeile)
TextBox14.Value = ComboBox13.List(ComboBox13.ListIndex, 1)
"Eingenschaft List konnte nicht aufgerufen werden. Index des Eigenschaftsfelds ungültig "
Weis jemand warum ?
Danke
Roland

Anzeige
AW: Warum kommt hier denn eine Fehlermeldung ?
29.01.2009 07:38:00
Tino
Hallo,
mach es doch so.

Private Sub ComboBox1_Change()
If ComboBox1.ListIndex = -1 Then
TextBox1.Value = ""
TextBox2.Value = ""
Else
TextBox1.Value = ComboBox1.List(ComboBox1.ListIndex, 1)
TextBox2.Value = ComboBox1.List(ComboBox1.ListIndex, 2)
End If
End Sub


Bei der For Schleife fehlt bei Rows.count noch die Tabelle davor.
For lZeile = 3 To WkSh.Cells(WkSh.Rows.Count, 5).End(xlUp).Row
Gruß Tino

AW: Warum kommt hier denn eine Fehlermeldung ?
29.01.2009 08:24:52
Roland
Hi Tino,
was mach ich denn hier schon wieder falsch, bekomme die Gleiche Fehlermeldung wieder, wenn ich aus zwei Listen auslesen will:
(Nur eine Liste alleine funktioniert)
Roland
Option Explicit

Private Sub ComboBox9_Change()
If ComboBox9.ListIndex = -1 Then
TextBox11.Value = ""
Else
TextBox11.Value = ComboBox9.List(ComboBox9.ListIndex, 1)
End If
End Sub



Private Sub ComboBox13_Change()
If ComboBox13.ListIndex = -1 Then
TextBox14.Value = ""
TextBox15.Value = ""
Else
TextBox14.Value = ComboBox13.List(ComboBox13.ListIndex, 1)
TextBox15.Value = ComboBox13.List(ComboBox13.ListIndex, 2)
End If
End Sub



Private Sub UserForm_Initialize()
Dim WkSh    As Worksheet
Dim WkSh2    As Worksheet
Dim lZeile  As Long
Dim lCoBox  As Long
Set WkSh = ThisWorkbook.Worksheets("Tabelle1")
With ComboBox13
.ColumnCount = 3
.ColumnWidths = ("3,0cm;0,0cm;0,0cm")
For lZeile = 3 To WkSh.Cells(WkSh.Rows.Count, 1).End(xlUp).Row
If WkSh.Range("A" & lZeile)  "" Then
ComboBox13.AddItem " "
ComboBox13.List(lCoBox, 0) = WkSh.Range("A" & lZeile).Value
ComboBox13.List(lCoBox, 1) = WkSh.Range("B" & lZeile).Value
ComboBox13.List(lCoBox, 2) = WkSh.Range("C" & lZeile).Value
lCoBox = lCoBox + 1
End If
Next lZeile
End With
Set WkSh2 = ThisWorkbook.Worksheets("Tabelle2")
With ComboBox9
.ColumnCount = 3
.ColumnWidths = ("3,0cm;0,0cm;0,0cm")
For lZeile = 3 To WkSh2.Cells(WkSh2.Rows.Count, 1).End(xlUp).Row
If WkSh2.Range("A" & lZeile)  "" Then
ComboBox9.AddItem " "
ComboBox9.List(lCoBox, 0) = WkSh2.Range("A" & lZeile).Value
ComboBox9.List(lCoBox, 1) = WkSh2.Range("B" & lZeile).Value
lCoBox = lCoBox + 1
End If
Next lZeile
End With
End Sub


Anzeige
AW: Warum kommt hier denn eine Fehlermeldung ?
29.01.2009 09:31:00
Tino
Hallo,
eine Beispieldatei wäre gut, sehe so den Fehler nicht.
Gruß Tino
Hier ein beispiel
29.01.2009 09:48:37
Roland
https://www.herber.de/bbs/user/58884.xls
der Untere Teil funktioniert. es ist nur die Obere Combobox, wo nicht eingelesen wird.
Am liebsten wäre mir , wenn ich beide Tabellen in einem Tabellenblatt (Tabelle1) hätte
Gruss
Roland
Code erhalten und nicht...
29.01.2009 10:02:51
RS
verstehen, ist oft das Problem.
Warum machst du das Alles mit VBA? Würde bei deinem Level nicht besser mit Daten-Gültigkeit etc. passen?
Anyway ersetze,ergänze den fetten Teil in deinem _initalize Code:

End With
   lCoBox = 0
Set WkSh2 = ThisWorkbook.Worksheets("Tabelle2")
With ComboBox9
.ColumnCount = 2
.ColumnWidths = ("3,0cm;0,0cm")
For lZeile = 3 To WkSh2.Cells(WkSh2.Rows.Count, 1).End(xlUp).Row


Grüsse RS

Anzeige
Vielen Dank, , jetzt klappts.
29.01.2009 10:12:00
Roland
Gruss
Roland
Danke Tino, jetzt passts :-) oT
29.01.2009 12:42:00
Roland
Danke dir auch oT.
28.01.2009 20:41:00
Roland

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige