Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
800to804
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
800to804
800to804
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Combobox gefilterte Liste

Combobox gefilterte Liste
09.09.2006 16:05:32
Wolfgang
Hallo Excelfreunde,
Mit der Combobox10 wird in einer Userform eine straße aus meiner Tabelle ausgewählt.
Mit ComboBox10_Change() ereignis fülle ich die anderen Comboboxen und ein Textfeld mit den Daten die in der gleichen zeile der tabelle stehen.
Nun das problem wenn ich die tabelle filtere zb beginnt mit"A" zeigt Combobox10 alle Straßen mit dem Anfang "A".
Wähle ich dann aber eine Str. aus werden die Comboboxen nicht korrekt gefüllt, weil sie die Daten aus der falsche zeile haben.
was muß geändert werden damit die korrekte zeile gefunden wird ?
anbei die beiden Makros
'combobox10Straße auswählen gefilter
ComboBox10.AddItem ""
For lngZeile = 2 To wks2.Cells(Rows.Count, 1).End(xlUp).Row
If Not Rows(lngZeile).Hidden Then ComboBox10.AddItem Cells(lngZeile, 1)
Next
' Hier werden die Textboxen aus dem Listindex der Combobox10 (Straße)gefüllt!

Private Sub ComboBox10_Change()
'On Error Resume Next
If ComboBox10.ListIndex <> 0 Then
ComboBox1 = wks2.Cells(ComboBox10.ListIndex + 1, 2)
ComboBox2 = wks2.Cells(ComboBox10.ListIndex + 1, 1)
ComboBox3 = wks2.Cells(ComboBox10.ListIndex + 1, 4)
ComboBox4 = wks2.Cells(ComboBox10.ListIndex + 1, 3)
ComboBox5 = wks2.Cells(ComboBox10.ListIndex + 1, 5)
ComboBox6 = Format(wks2.Cells(ComboBox10.ListIndex + 1, 6), "00")
ComboBox7 = wks2.Cells(ComboBox10.ListIndex + 1, 7)
TextBox1 = wks2.Cells(ComboBox10.ListIndex + 1, 8)
ComboBox8 = wks2.Cells(ComboBox10.ListIndex + 1, 9)
ComboBox9 = wks2.Cells(ComboBox10.ListIndex + 1, 10)
CheckBox1.Value = wks2.Cells(ComboBox10.ListIndex + 1, 11) = "X"
CheckBox2.Value = wks2.Cells(ComboBox10.ListIndex + 1, 12) = "X"
CheckBox3.Value = wks2.Cells(ComboBox10.ListIndex + 1, 13) = "X"
CheckBox4.Value = wks2.Cells(ComboBox10.ListIndex + 1, 14) = "X"
Else
TextBox1 = ""
ComboBox1 = ""
ComboBox2 = ""
ComboBox3 = ""
ComboBox4 = ""
ComboBox5 = ""
ComboBox6 = ""
ComboBox7 = ""
ComboBox8 = ""
ComboBox9 = ""
CheckBox1.Value = False
CheckBox2.Value = False
CheckBox3.Value = False
CheckBox4.Value = False
ComboBox10.ListIndex = 0
End If
End Sub

Vielen Dank für die Hilfe
Gruß Wolfgang

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Combobox gefilterte Liste
09.09.2006 22:33:09
Josef
Hallo Wolfgang!
Du kannst zum Beispiel mit Find arbeiten,
Private Sub ComboBox10_Change()
Dim rng As Range

If ComboBox10.ListIndex > 0 Then
  
  Set rng = wks2.Range("A:A").Find(What:=ComboBox10.Text, Lookat:=xlWhole)
  
  If Not rng Is Nothing Then
    
    combobox1 = wks2.Cells(rng.Row, 2)
    ComboBox2 = wks2.Cells(rng.Row, 1)
    ComboBox3 = wks2.Cells(rng.Row, 4)
    ComboBox4 = wks2.Cells(rng.Row, 3)
    ComboBox5 = wks2.Cells(rng.Row, 5)
    ComboBox6 = Format(wks2.Cells(rng.Row, 6), "00")
    ComboBox7 = wks2.Cells(rng.Row, 7)
    TextBox1 = wks2.Cells(rng.Row, 8)
    ComboBox8 = wks2.Cells(rng.Row, 9)
    ComboBox9 = wks2.Cells(rng.Row, 10)
    
    CheckBox1.Value = wks2.Cells(rng.Row, 11) = "X"
    CheckBox2.Value = wks2.Cells(rng.Row, 12) = "X"
    CheckBox3.Value = wks2.Cells(rng.Row, 13) = "X"
    CheckBox4.Value = wks2.Cells(rng.Row, 14) = "X"
    
  End If
  
ElseIf ComboBox10.ListIndex = 0 Or rng Is Nothing Then
  
  TextBox1 = ""
  combobox1 = ""
  ComboBox2 = ""
  ComboBox3 = ""
  ComboBox4 = ""
  ComboBox5 = ""
  ComboBox6 = ""
  ComboBox7 = ""
  ComboBox8 = ""
  ComboBox9 = ""
  CheckBox1.Value = False
  CheckBox2.Value = False
  CheckBox3.Value = False
  CheckBox4.Value = False
  ComboBox10.ListIndex = 0
  
End If

Set rng = Nothing

End Sub


oder, du übergibst mit den Daten auch die Zeilennummer in deine Combobox in einer
zweiten, ausgeblendeten Spalte und liest diese dann aus.
Gruß Sepp

Anzeige
AW: Combobox gefilterte Liste
10.09.2006 09:41:35
Wolfgang
Hallo Josef,
ich habe Dein Makro übernommen und es funktioniert.
Werde es wohl auch so belassen , denn scheinbar gibt es keine Lösung in der man eine Tabelle mit Daten sortieren, anschließend die Daten filtern und auch noch bestimmte Daten rausziehen könnte.
Außer man nutzt eine Hilfsspalte mit der Zeilennummer.
Mit anderen Worten ein Art Index mit denen Daten genau fixiert werden könnten.
Oder?
Vielen Dank für Deine Hilfe Josef
Gruß Wolfgang
AW: Combobox gefilterte Liste
10.09.2006 14:52:15
Josef
Hallo Wolfgang!
Genau, die Hilfsspalte richtet man aber nicht in der Tabelle ein, sondern eine zusätzliche Spalte in der Combo mit Breite=0, dann ist die Spalte nicht sichtbar, kann aber die Zeilennummer trozdem auslesen.
Gruß Sepp

Anzeige
AW: Combobox gefilterte Liste
12.09.2006 07:40:14
Wolfgang
Hallo Josef,
wie richtet man eine Hilfsspalte in einer Combobox ein und wie spricht man sie an bzw. wie teilt man ihr einen Tabellenbereich zu.
Vielen Dank für die Hilfe
Gruß Wolfgang
AW: Combobox gefilterte Liste
12.09.2006 15:44:41
Wolfgang
Hallo Excelfreunde,
wie kann man eine Combobox eine zweite Spalte hinzufügen in der die Zeilennummer des Wertes aus der ersten Spalte ( gefilterte Werte ) der ComboBox stehen soll?
Die ComboBox steht in einer UserForm und die Werte sollen unabhängig von der aktiven Tabelle sein.
Wenn jemand eine Beispiel - Datei als Erklärung hätte, wäre Super!
Vielen Dank für die Hilfe
Gruß Wolfgang
Anzeige
AW: Combobox gefilterte Liste
12.09.2006 16:18:50
Josef
Hallo Wolfghang!
Bezogen auf deinen Code, sieht das so aus.
Private Sub UserForm_Activate()
'combobox10Straße auswählen gefilter

With ComboBox10
  .Clear
  .ColumnCount = 2 'zweite Spalte in Listbox einrichten
  .ColumnWidths = CStr(.Width) & ";0" 'Spaltenbreite der zweiten Spalte auf 0
  .AddItem ""
  For lngZeile = 2 To wks2.Cells(Rows.Count, 1).End(xlUp).Row
    If Not Rows(lngZeile).Hidden Then
      .AddItem Cells(lngZeile, 1)
      .List(.ListCount - 1, 1) = lngZeile 'Zeilennummer in die zweite Spalte schreiben
    End If
  Next
End With

End Sub


' Hier werden die Textboxen aus dem Listindex der Combobox10 (Straße)gefüllt!

Private Sub ComboBox10_Change()

'On Error Resume Next
With ComboBox10

If .ListIndex <> 0 Then
  ComboBox1 = wks2.Cells(.List(.ListIndex, 1), 2) '.List(.ListIndex, 1)=Zeilennummer
  ComboBox2 = wks2.Cells(.List(.ListIndex, 1), 1)
  ComboBox3 = wks2.Cells(.List(.ListIndex, 1), 4)
  ComboBox4 = wks2.Cells(.List(.ListIndex, 1), 3)
  ComboBox5 = wks2.Cells(.List(.ListIndex, 1), 5)
  ComboBox6 = Format(wks2.Cells(.List(.ListIndex, 1), 6), "00")
  ComboBox7 = wks2.Cells(.List(.ListIndex, 1), 7)
  TextBox1 = wks2.Cells(.List(.ListIndex, 1), 8)
  ComboBox8 = wks2.Cells(.List(.ListIndex, 1), 9)
  ComboBox9 = wks2.Cells(.List(.ListIndex, 1), 10)
  CheckBox1.Value = wks2.Cells(.List(.ListIndex, 1), 11) = "X"
  CheckBox2.Value = wks2.Cells(.List(.ListIndex, 1), 12) = "X"
  CheckBox3.Value = wks2.Cells(.List(.ListIndex, 1), 13) = "X"
  CheckBox4.Value = wks2.Cells(.List(.ListIndex, 1), 14) = "X"
Else
  TextBox1 = ""
  ComboBox1 = ""
  ComboBox2 = ""
  ComboBox3 = ""
  ComboBox4 = ""
  ComboBox5 = ""
  ComboBox6 = ""
  ComboBox7 = ""
  ComboBox8 = ""
  ComboBox9 = ""
  CheckBox1.Value = False
  CheckBox2.Value = False
  CheckBox3.Value = False
  CheckBox4.Value = False
  ComboBox10.ListIndex = 0
End If

End Sub


Gruß Sepp

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige