Hallo zusammen,
um es vorweg zu nehmen, das sind meine ersten Berührungspunkte mit VB, daher bitte ich um Nachsicht :)
Ich möchte mehrere Daten aus verschiedenen Tabellen zusammenführen und anschaulich dargestellt haben. Klar geht das prinzipiell mit Excel, da ich aber teilweise mehrere Werte zu den Bezugsgrößen habe, summieren sich die Datensätze auf eine unübersichtliche Anzahl.
Daher ist meine Idee das ganze mit Visual Basic zu lösen.
Ich habe also als Beispiel um mein Problem zu zeigen in Tabelle1:
Spalte A (Gegenstand)
Brot
Käse
Müsli
Toast
Nutella
Schokolade
Eis
Joghurt
Marmelade
Wurst
In Tabelle2:
Spalte A (Gegenstand) Spalte B (Zutat)
Brot Mehl
Käse Milch
Müsli Haferflocken
Toast Mehl
Nutella Zucker
Schokolade Zucker
Eis Wasser
Joghurt Milch
Marmelade Zucker
Wurst Fleisch
Brot Wasser
Und noch eine Tabelle 3 mit
Spalte A (Gegenstand) Spalte B (weitere Zutaten)
Brot Salz
Käse Bakterien
Müsli Frucht
Toast Butter
Nutella Kakao
Schokolade Kakao
Eis Fruchtsaft
Joghurt Bakterien
Marmelade Salz
Brot Hefe
Brot Baktriebmittel
Den Gegenstand aus Spalte A soll in einer Liste auswählbar sein und in den Textboxen dann die dazugehörigen Werte aus den Tabellen 2 und 3 angezeigt werden.
Das ganze hat soweit dank Forum und ChatGPT auch ein erstes Ergebnis gebracht:
Private Sub ListBox1_Change()
Dim selectedValue As String
Dim correspondingValue1 As String
Dim correspondingValue2 As String
selectedValue = ListBox1.Value
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = ThisWorkbook.Worksheets("Tabelle2")
Set ws2 = ThisWorkbook.Worksheets("Tabelle3")
Dim lastRow1 As Long
Dim lastRow2 As Long
lastRow1 = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row
lastRow2 = ws2.Cells(ws1.Rows.Count, "A").End(xlUp).Row
Dim i As Long
For i = 1 To lastRow1
If ws1.Cells(i, "A").Value = selectedValue Then
correspondingValue1 = ws1.Cells(i, "B").Value
Exit For
End If
Next i
For i = 1 To lastRow2
If ws2.Cells(i, "A").Value = selectedValue Then
correspondingValue2 = ws2.Cells(i, "B").Value
Exit For
End If
Next i
TextBox1.Value = correspondingValue1
TextBox2.Value = correspondingValue2
End Sub
Private Sub ListBox1_Click()
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub UserForm_Initialize()
Dim ws As Worksheet
Dim lastRow As Long
Dim rng As Range
Dim cell As Range
Set ws = ThisWorkbook.Worksheets("Tabelle1")
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
Set rng = ws.Range("A2:A" & lastRow)
For Each cell In rng
Me.ListBox1.AddItem cell.Value
Next cell
End Sub
Private Sub ListBox1_SelectedIndexChanged()
MsgBox ("Das Event existiert in Excel nicht.")
End Sub
Aber das Problem ist, dass es in den Spalten B mehrere Werte zu dem ausgewählten Wert in A gibt und diese sollen in weiteren Textboxen ebenfalls angezeigt werden wenn vorhanden...
Also ungefähr so:

Ich komme ums verrecken nicht weiter... Kann wer helfen??