Hallo zusammen, habe leider mal wieder ein kleines Problem.
Ich habe eine Eingabemaske mit 2 Felder und einen Code der es mir erlaubt mehrere Tabellenblätter zu durchsuchen und eine Listbox die die Ergebnisse zeigt.
Allerdings wird jetzt nur ein Ergebnis angezeigt wenn beide Felder ausgefüllt sind. Ich brauche aber auch ein Ergebnis wenn ich nur ein Feld ausfülle und das andere leer lasse.
Was kann ich da jetzt machen??? Vielen Dank für Eure Antwort.
Unten noch mein Code.
Option Explicit
Private Sub cmdSearch_Click()
Dim i As Integer
lstResult.Clear
For i = 1 To Sheets.Count
SearchValue Sheets(i).UsedRange, txtStart, txtTarget
Next i
End Sub
Private Function SearchValue(ActiveSheet As Range, strValue1 As String, strValue3 As String)
'Durchsuchter Bereich: rgnSearchArea
'Spalte 1 des Bereiches wird nach strValue1 durchsucht
'Spalte 3 des Bereiches wird nach strValue3 durchsucht
Dim arr() As String
Dim i As Long, j As Long
Dim strTmp As String
With ActiveSheet
For i = 1 To .Rows.Count
If Trim(.Cells(i, 1)) = Trim(strValue1) And Trim(.Cells(i, 3)) = Trim(strValue3) Then
For j = 1 To .Columns.Count
strTmp = strTmp & .Cells(i, j) & vbTab
Next j
lstResult.AddItem strTmp
strTmp = vbNullString
End If
Next i
End With
End Function
Ich habe eine Eingabemaske mit 2 Felder und einen Code der es mir erlaubt mehrere Tabellenblätter zu durchsuchen und eine Listbox die die Ergebnisse zeigt.
Allerdings wird jetzt nur ein Ergebnis angezeigt wenn beide Felder ausgefüllt sind. Ich brauche aber auch ein Ergebnis wenn ich nur ein Feld ausfülle und das andere leer lasse.
Was kann ich da jetzt machen??? Vielen Dank für Eure Antwort.
Unten noch mein Code.
Option Explicit
Private Sub cmdSearch_Click()
Dim i As Integer
lstResult.Clear
For i = 1 To Sheets.Count
SearchValue Sheets(i).UsedRange, txtStart, txtTarget
Next i
End Sub
Private Function SearchValue(ActiveSheet As Range, strValue1 As String, strValue3 As String)
'Durchsuchter Bereich: rgnSearchArea
'Spalte 1 des Bereiches wird nach strValue1 durchsucht
'Spalte 3 des Bereiches wird nach strValue3 durchsucht
Dim arr() As String
Dim i As Long, j As Long
Dim strTmp As String
With ActiveSheet
For i = 1 To .Rows.Count
If Trim(.Cells(i, 1)) = Trim(strValue1) And Trim(.Cells(i, 3)) = Trim(strValue3) Then
For j = 1 To .Columns.Count
strTmp = strTmp & .Cells(i, j) & vbTab
Next j
lstResult.AddItem strTmp
strTmp = vbNullString
End If
Next i
End With
End Function