Suchfunktion in VBA (dringend)
26.04.2005 19:38:13
OceanAmerica
ich habe folgendes Problem:
Ich habe ein Programm erstellt, das eine Nährwerttabelle enthält. Auf der Hauptoberfläche (Userform1) befindet sich unter anderem eine Suchleiste (wie bei google) und ein "Suchen"-Button (CommandButton1). Eine Liste mit Nahrungsmitteln und deren Werte habe ich auf dem Tabellenblatt "Tabelle2" erstellt. Nun brauche ich eine Suchfunktion, die mir die Werte zu dem in das Suchfeld eingegebene Nahrungsmittel mittels einer Userform oder ähnliches ausgibt. Die Namen der Nahrungsmittel, die auch Suchbegriff sein sollen stehen in Spalte A der Tabelle. Die Werte, die mit ausgegeben werden sollen stehen in den Spalten B bis J der Tabelle. Die Spalten haben Überschriften (z.B. kcal, KJ), welche in der Zeile 1 stehen und auch mit ausgegeben werden sollen.
Habe auch einen Code auf dieser Seite gefunden. Vielleicht ist der ja zu gebrauchen. Er sieht wie folgt aus:
Private Sub CommandButton1_Click()
Dim rng As Range, rngSource As Range, rngStart As Range
Dim varInput As Variant
Dim iRow As Integer
varInput = UserForm1.TextBox1
If varInput = False Then Exit Sub
Set rng = ActiveSheet.Columns("A:F").Find( _
what:=varInput, lookat:=xlWhole, LookIn:=xlValues)
If rng Is Nothing Then
Beep
MsgBox "Suchbegriff nicht gefunden!"
Exit Sub
End If
Set rngStart = rng
Set rngSource = rng.EntireRow
Do
Set rng = Cells.FindNext(After:=rng)
If rng.Address = rngStart.Address Then Exit Do
Set rngSource = Application.Union(rngSource, rng.EntireRow)
Loop
With Worksheets("Target")
iRow = .Cells(Rows.Count, 1).End(xlUp).Row
If iRow = 1 Then iRow = 2 Else iRow = iRow + 3
rngSource.Copy .Cells(iRow, 1)
.Columns.AutoFit
End With
End Sub
Ich hoffe ich haue euch damit jetzt nicht ganz vom Hocker. Ich brauche dieses Programm leider für eine Hausarbeit und die Suchfunktion ist das einzige was noch fehlt und wo es hakt.
Für ein paar Ratschläge oder konkrete Beispiele wäre ich euch super dankbar.
Mit freundlichen Grüßen
Oceanamerica
P.S. Ich könnte meine bis jetzt erstellte Beispieldatei auch per E-mail schicken.