Thema Datum  Von Nutzer Rating
Antwort
30.05.2017 14:21:12 Manu
*****
Solved
30.05.2017 15:27:07 The_Materialist
*****
NotSolved
Rot ComboBox mit If füllen
30.05.2017 15:27:07 The_Materialist
NotSolved
30.05.2017 15:27:07 The_Materialist
NotSolved
30.05.2017 16:09:08 Manu
NotSolved
30.05.2017 16:18:06 Gast29442
NotSolved
30.05.2017 16:25:18 The_Materialist
NotSolved
30.05.2017 16:32:08 The_Materialist
NotSolved
31.05.2017 07:08:07 Manu
NotSolved
06.06.2017 14:06:05 Gast55759
NotSolved
06.06.2017 14:11:58 Manu
NotSolved
07.06.2017 08:06:34 The_Materialist
*****
Solved
07.06.2017 08:34:46 Manu
NotSolved

Ansicht des Beitrags:
Von:
The_Materialist
Datum:
30.05.2017 15:27:07
Views:
669
Rating: Antwort:
  Ja
Thema:
ComboBox mit If füllen

Hallo Manu,

 

Ich habe ein ähnliches Problem schon einmal gelöst. Meine Strategie war folgende:

- Du brauchst eine "Datenbank" im Hintergrund, also am besten in einer Excel Tabelle "Tabelle" = ListObject ( Falls du das noch nicht kennst, es gibt viel dazu auf Google). In einer Tabelle muss stehen welche Teile es gibt und in einer anderen welche Hersteller welche Teile bauen. Also einmal nur alle Teile (nur jedes einmal) und einmal für jede Teil-Hersteller Kombination eine Tabellen-Zeile. Tabellen kann man übrigends mit Einfügen->Tabelle Einfügen erstellen und dann im TabellenTab bearbeiten oder benennen.

- Danach brauchst du eine Userform mit zwei ComboBoxen, ich habe keine Erfahrung mit ComboBoxen im Sheet selbst und weiss nicht ob es da auch so klappt, ich sehe aber nicht warum das nicht gehen sollte.

-Dann füllst du die erste Combobox mit folgendem Code:

Private Sub UserForm_Initialize()

Dim tbl As ListObject
Dim cell As Range
Set tbl = ThisWorkbook.Worksheets("TABELLENBLATTNAME").ListObjects("LISTOBJECTNAME-Teile")

For Each cell In tbl.ListColumns(1).DataBodyRange
      Userform.ComboBox1.AddItem (cell.Value)
Next cell
End Sub

Diesen Code kannst du in die Userform schreiben. Einfach RechtKlick auf die "UserForm" und "Code Anzeigen" wählen. Damit wird die ComboBox beim starten der Userform gefüllt mit allen Einträgen die in der "Teile"-Tabelle stehen.

- jetzt wirds ein wenig schwieriger. Schreibe ausserhalb jeder Subs oder Funktionen folgendes in deine Userform:

Public EnableEvents As Boolean

Du hast damit deiner Userform eine Eigenschaft EnableEvents zugewiesen, die du benötigst damit folgendes Funktioniert:

- Verwende jetzt das ComboBox_ChangeEvent um die zweite ComboBox jedesmal zu aktualisieren, wenn ein neues Teil ausgewählt wird

Private Sub Filter_Change()
' if the filter changes update the other filter comboboxes
If frmFilter.EnableEvents Then
      frmFilter.EnableEvents = False
      Call update_filter
      frmFilter.EnableEvents = True
End If
End Sub
Sub update_filter()
'Debug.Print "update was fired"
Dim tbl as ListObject
Dim cell as Range

Set tbl = ThisWorkbook.Worksheets("TABELLENBLATTNAME").ListObjects("LISTOBJECTNAME-Hersteller/Teil")

'delete all old items
Do While UserForm.ComboBox2.ListCount > 0
UserForm.ComboBox2.RemoveItem (0)
Loop
 

For each cell in tbl.ListColumns(1).DataBodyRange If cell.offset(0,1).value=UserForm.ComboBox1.Value then
Userform.ComboBox2.Additem(cell.value) End If
Next cell

End Sub

Beachte hierbei in welcher Spalte der Tabelle das Teil und wo der Lierferant steht. Im Beispiel hier muss das Teil in der Spalte1 und der Hersteller in Spalte2 stehen.

Danach sollte das ganze laufen. Sobald du jetzt ein Teil in ComboBox1 auswählst wird die ComboBox2 gefüllt mit allen Herstellern die das Teil herstellen.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
30.05.2017 14:21:12 Manu
*****
Solved
30.05.2017 15:27:07 The_Materialist
*****
NotSolved
Rot ComboBox mit If füllen
30.05.2017 15:27:07 The_Materialist
NotSolved
30.05.2017 15:27:07 The_Materialist
NotSolved
30.05.2017 16:09:08 Manu
NotSolved
30.05.2017 16:18:06 Gast29442
NotSolved
30.05.2017 16:25:18 The_Materialist
NotSolved
30.05.2017 16:32:08 The_Materialist
NotSolved
31.05.2017 07:08:07 Manu
NotSolved
06.06.2017 14:06:05 Gast55759
NotSolved
06.06.2017 14:11:58 Manu
NotSolved
07.06.2017 08:06:34 The_Materialist
*****
Solved
07.06.2017 08:34:46 Manu
NotSolved