Suchfunktion programmieren in Excel-VBA
04.12.2018 12:31:26
Matthias
ich stehe vor einem, hoffentlich kleinen, VBA-Problem.
Ich habe eine Textbox, in der ich den Suchbegriff eingebe, welcher in dem aktiven Tabellenblatt ermittelt werden soll.
Dies habe ich ursprünglich so umgesetzt:
Private Sub Searchbox_change()
'Variablendeklarationen
Dim i As Integer
Dim StrToFind As Variant
With ActiveSheet
.Rows.Hidden = False
'Wenn Textbox nicht leer und Suchbegrifftext, dann
If Searchbox.Text "" And Searchbox.Text "Bitte Suchbegriff eingeben..." Then
'Letzte Zeile ermitteln und nach Suchtext durchlaufen
For i = 4 To .UsedRange.SpecialCells(xlCellTypeLastCell).Row
'Zu findender Suchtext
StrToFind = Application.Match("*" & Searchbox.Text & "*", Rows(i), 0)
'Wenn gefunden, dann Zeile einblenden
If Not IsError(StrToFind) Then
Rows(i).Hidden = False
'Wenn nicht, dann Zeile ausblenden
Else
Rows(i).Hidden = True
End If
Next
End If
End With
End Sub
Dies hat soweit funktioniert, wie ich es wollte.Jetzt hat sich jedoch das Tabellenblatt nochmals verändert.
Es wurde im neuen Blatt eine Matrix integriert.
In Zeile 4 befinden sich die Spezifikationen, welche in den weiteren Zeilen via Markierung durch ein "X" in die entsprechende Zelle festgelegt ist.
Nun möchte ich erreichen, dass die Suche alles anzeigt, wie in meinem oberen Programm und zusätzlich noch alle weiteren Überschneidungen mit den Spezifikationen.
Heißt eine Spezifikation zum Beispiel "Mittelwert" und die Reihe besitzt in dieser Spalte ein X und ich habe in das Suchfeld "ittel" eingegeben, dann sollen alle Zeilen angezeigt werden, welche den Text des Suchfeldes haben, der Rest soll ausgeblendet werden.
Ich hoffe ihr habt meine Beschreibung verstanden und könnt mir weiterhelfen.
Herzlichen Dank!
Gruß
Matthias