Hallo zusammen,
ich stehe vor einem Problem und hoffe das ihr helfen könnt. Ich habe eine Makro zum durchsuchen von Excel-Tabellen gefunden und für meine Verhältnisse angepasst:
Sub Suche()
Dim c As Range
Dim Suchwert As Variant
Dim ersterFundort As String
Dim i As Integer, z As Long
Dim ws1 As Worksheet
z = 1
Set ws1 = Sheets("Tabelle1") 'anpassen
Suchwert = InputBox("Bitte geben Sie die Kommission oder den Namen des Projekts ein nachdem Sie suchen möchten!", "Sortieren")
If Suchwert <> "" Then
For Each ws In Sheets
If ws.Name = "Suche" Then
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
End If
Next
Sheets.Add after:=Sheets(Sheets.Count)
Set ws = ActiveSheet
ws.Name = "Suche"
Set c = ws1.Cells.Find(what:=Suchwert, LookIn:=xlValues, Lookat:=xlPart)
If Not c Is Nothing Then
Do Until c Is Nothing Or c.Address = ersterFundort
If ersterFundort = "" Then ersterFundort = c.Address
z = z + 1
With ws
c.EntireRow.Copy .Rows(z)
End With
Set c = ws1.Cells.FindNext(c)
Loop
End If
Set c = Nothing
ersterFundort = ""
End If
End Sub
Soweit funktioniert das auch ganz gut. Was ich allerdings gerne noch verbessern würde:
Wenn man mehrere Worte eingibt, so scheint die Reihenfolge irgendwie wichtig zu sein z.B VW Golf wird erkannt, weil es so in der Tabelle steht. Golf VW hingegen ergibt keinen Treffer.
Hat jemand eine Idee was ich ändern kann/muss?
Ich bin dankbar für jeden Hinweis!
ich stehe vor einem Problem und hoffe das ihr helfen könnt. Ich habe eine Makro zum durchsuchen von Excel-Tabellen gefunden und für meine Verhältnisse angepasst:
Sub Suche()
Dim c As Range
Dim Suchwert As Variant
Dim ersterFundort As String
Dim i As Integer, z As Long
Dim ws1 As Worksheet
z = 1
Set ws1 = Sheets("Tabelle1") 'anpassen
Suchwert = InputBox("Bitte geben Sie die Kommission oder den Namen des Projekts ein nachdem Sie suchen möchten!", "Sortieren")
If Suchwert <> "" Then
For Each ws In Sheets
If ws.Name = "Suche" Then
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
End If
Next
Sheets.Add after:=Sheets(Sheets.Count)
Set ws = ActiveSheet
ws.Name = "Suche"
Set c = ws1.Cells.Find(what:=Suchwert, LookIn:=xlValues, Lookat:=xlPart)
If Not c Is Nothing Then
Do Until c Is Nothing Or c.Address = ersterFundort
If ersterFundort = "" Then ersterFundort = c.Address
z = z + 1
With ws
c.EntireRow.Copy .Rows(z)
End With
Set c = ws1.Cells.FindNext(c)
Loop
End If
Set c = Nothing
ersterFundort = ""
End If
End Sub
Soweit funktioniert das auch ganz gut. Was ich allerdings gerne noch verbessern würde:
Wenn man mehrere Worte eingibt, so scheint die Reihenfolge irgendwie wichtig zu sein z.B VW Golf wird erkannt, weil es so in der Tabelle steht. Golf VW hingegen ergibt keinen Treffer.
Hat jemand eine Idee was ich ändern kann/muss?
Ich bin dankbar für jeden Hinweis!