3.1k Aufrufe
Gefragt in Tabellenkalkulation von eleve Einsteiger_in (49 Punkte)
Hallo Leute,

hier mein Projekt.

Ich suche mit einem Userform Daten aus einer Tabelle.
Die Daten weden in dem Userform in einer Listbox mit 7 Spalten angezeigt.

Wie kann ich nun diese Daten aus der Listbox als neuen Datensatz für eine weitere Suche verwenden und das Ergebnis der Suche wieder in der gleichen Listbox ausgeben?
Hier mein "nichtfunktionsfähiger Codeschnipsel".

Private Sub CommandButton2_Click()
Dim sSuche As String
Dim i As Integer
ReDim fSuchInSuche(ListBox1.ListCount, 7)

'Suchstring definieren aus Textbox
sSuche = TextBox1.Value

'Array für Übergabe an Modul füllen
For i = 1 To ListBox1.ListCount
fSuchInSuche(i, 1) = ListBox1.List(i).Column(1).Value
fSuchInSuche(i, 2) = ListBox1.List(i).Column(2).Value
'... bis Spalte 7
Next i

'Suchcode aufrufen und Werte übergeben
Modul14.In_Ergebnissen_suchen ByVal sSuche, fSuchInSuche
End Sub


Vielen Dank schon mal für Eure Zeit.

Eleve

4 Antworten

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Halle Eleve,

nachfolgend mal ein Beispielcode, der Dir die 7 Spalten der Auswahl aus der ListBox in eine Variable schreibt. AM Ende werden Dir die Werte der 7 Stellen in einer MessageBox angezeigt. Das mit der MessageBox benötigst Du nicht, da ich es nur für das Beispiel eingebaut habe.

Kopiere den Code in das VBA-Projekt der UserForm mit der ListBox und dem Command2-Button.
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Private Sub CommandButton2_Click()
Dim varVariable(7) As Variant
Dim intFüllen As Integer

If ListBox1.ListIndex >= 0 Then
For intFüllen = 0 To 6
varVariable(intFüllen) = ListBox1.List(ListBox1.ListIndex, intFüllen)
Next
End If

MsgBox varVariable(0) _
& vbLf & varVariable(1) _
& vbLf & varVariable(2) _
& vbLf & varVariable(3) _
& vbLf & varVariable(4) _
& vbLf & varVariable(5) _
& vbLf & varVariable(6)
End Sub
Den Code für die Suche musst Du ja schon haben, da Du ja geschrieben hast

Ich suche mit einem Userform Daten aus einer Tabelle.
Die Daten weden in dem Userform in einer Listbox mit 7 Spalten angezeigt.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von eleve Einsteiger_in (49 Punkte)
Halo Oliver,

vielen Dank für die schnelle Antwort. Ich bin gar nicht auf die Idee gekommen die Suchabfrage direkt im Userform zu machen.
Deshalb hatte ich das Problem wie ich die Werte aus der Tabelle an ein Modul übergeben kann - mit call und byval geht das bei mehrdimensionalen Datenfelder wohl nich, oder?
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Eleve,

ich verstehe Deine Frage aus AW2 leider nicht. Du musst wohl schon etwas deutlicher werde, wass genau Du meinst bzw. willst.

Ich meinte jedenfalls nicht, dass Du die Suchabfrage direkt in der UserForm machen sollst, sondern, dass Du ja bereits laut Deiner Frage eine Suchenfunktion hast, da Du, wie bereits erwähnt, geschrieben hast

Ich suche mit einem Userform Daten aus einer Tabelle.
Die Daten weden in dem Userform in einer Listbox mit 7 Spalten angezeigt.

Somit gehe ich davon aus, dass Du bereits eine Suchabfrage startetst. Diese kannst Du doch auch für das andere heranziehen.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Eleve,
hab dir mal eine Musterdatei zum Suchen in einer UserForm erstellt, vielleicht hilft dir das weiter.

Gruß
fedjo
...