Clever-Excel-Forum

Normale Version: Suche vereinfachen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Und wieder ich, bitte nicht hauen...

Liebe Wissende,
eventuell ist der Themenname nicht treffend, hier meine Frage dazu:
Wie im Beispiel zu sehen ist, sind alle relevanten Informationen bereits in der Tabelle "DB_Ort" vorhanden, 
wie müsste in diesem Beispiel der Code angepasst werden, damit die Tabelle "DB_Name" nicht benötigt wird
und die Suche in der Tabelle "DB_Ort" erfolgt?

Beispiel:
Ich habe ein Tabellenblatt mit den Spalten Ort, Name, Rufnummer, welche als Tabelle formatiert ist ("DB_Ort").
Aus dieser Tabelle ziehe ich Daten für die Auswahl der CheckBox_Ort.
Ändert sich der Inhalt von CheckBox_Ort, ändert sich die Auswahlmöglichkeit für die Checkbox_Name.


Code:
Private Sub UserForm_Initialize()
'Auswahlmöglichkeiten ComboBox_Ort und Combobox_Name
ComboBox_Ort.List = WorksheetFunction.Unique( _
  Tabelle1.ListObjects("DB_Ort").ListColumns(1).DataBodyRange)

Private Sub ComboBox_Ort_Change()
With Tabelle1.ListObjects("DB_Ort")
  .Range.AutoFilter 1, ComboBox_Ort.Text
  ComboBox_Name.List = .ListColumns(2).DataBodyRange.SpecialCells(xlCellTypeVisible).Value
End With
End Sub

Ich habe nun eine zweites Tabellenblatt mit den Spalten Name, Rufnummer, welche als Tabelle formatiert ist ("DB_Telefon")
Aus dieser Tabelle ziehe ich Daten für die Auswahl der CheckBox_Name.
Ändert sich der Inhalt von CheckBox_Name, ändert sich die Auswahlmöglichkeit für die Checkbox_Telefon.

Code:
Private Sub UserForm_Initialize()
'Auswahlmöglichkeiten ComboBox_Name und Combobox_Telefon
ComboBox_Name.List = WorksheetFunction.Unique( _
  Tabelle2.ListObjects("DB_Telefon").ListColumns(1).DataBodyRange)

Private Sub ComboBox_Name_Change()
With Tabelle2.ListObjects("DB_Telefon")
  .Range.AutoFilter 1, ComboBox_Name.Text
  ComboBox_Telefon.List = .ListColumns(2).DataBodyRange.SpecialCells(xlCellTypeVisible).Value
End With
End Sub


LG Jana
Hallo Jana,

wenn ich nix übersehen habe gibt es in Deinen Codes keinen Bezug auf DB_Name.
Hi André,

sei doch nicht so kleinlich! :19:

Gruß Uwe
Hallo ihr beide,
ich habe jetzt ein kleines Beispiel im Anhang, wo ich versucht habe alles mit einer Tabelle zu machen,
aber der Code ist fehlerheaft, bei

Code:
ComboBox_Telefon.List = .ListColumns(3).DataBodyRange.SpecialCells(xlCellTypeVisible).Value

werden keine Zellen gefunden.

Gesamtcode:

Code:
Private Sub UserForm_Initialize()
ComboBox_Ort.List = WorksheetFunction.Unique( _
  Tabelle1.ListObjects("DB").ListColumns(1).DataBodyRange)
ComboBox_Name.List = WorksheetFunction.Unique( _
  Tabelle1.ListObjects("DB").ListColumns(2).DataBodyRange)
   End Sub
Private Sub ComboBox_Ort_Change()
With Tabelle1.ListObjects("DB")
  .Range.AutoFilter 1, ComboBox_Ort.Text
  ComboBox_Name.List = .ListColumns(2).DataBodyRange.SpecialCells(xlCellTypeVisible).Value
End With
End Sub
Private Sub ComboBox_Name_Change()
With Tabelle1.ListObjects("DB")
  .Range.AutoFilter 1, ComboBox_Name.Text
    ComboBox_Telefon.List = .ListColumns(3).DataBodyRange.SpecialCells(xlCellTypeVisible).Value
    End With
End Sub
Hallöchen,

eigentlich muss ich mich zurückhalten, mangels unique in meinem Excle 2016 Sad
Aber trotzdem wüsste ich was Smile Das Problem sind nicht zusammenhängende Zellen im sichtbaren Bereich. Du bräuchtest zum direkten Füllen entweder einen zusammenhängenden Bereich oder Du klapperst die Zellen einzeln ab und füllst die Box entweder Zelle für zelle oder füllst erst ein Array und dann damit die Box.