Ich bin noch nicht ganz durch mit meinem Problem und zwar: Das suchen und markieren klappt jetzt, aber es ist für andere schwer immer die Suchwörter in den Code Ein zu geben! Daher wollte ich das Makro benutzerfreundlich machen, also die Eingabe der Suchwörter in einer Textbox (UserForm) ermöglichen. Das Problem ist nun, das ich jetzt nicht einzelne Wörter suchen kann, sondern ich muss den gesamten Text einer Zelle eingeben damit er diese markiert! Wie kann ich das so einrichten das ich nur ein Wort aus der Zelle eingeben brauch.
greets
Sebastian. Jr.
' **************************************************************
' Modul: Altes Makro Typ = Allgemeines Modul
' **************************************************************
Sub SAT()
Dim wks As Worksheet
Dim rngFind As Range, rngRows As Range
Dim sFind As String, sSearch As String
frage = MsgBox(" Bitte vorher Suchbegriffe im Code eingeben!!!", vbOKCancel, "WICHTIG!!!!")
If frage = vbCancel Then Exit Sub
Suchbegriff = Array("Kostenstellenkosten", "User:", "Kostenart", "Währung", "Betriebstoffe", "Bezeichnung")
For t = 0 To UBound(Suchbegriff)
sSearch = Suchbegriff(t)
Set rngFind = Cells.Find(Suchbegriff(t))
If rngRows Is Nothing Then
Set rngRows = rngFind
End If
If Not rngFind Is Nothing Then
sFind = rngFind.Address
Do
Set rngRows = Application.Union(rngRows, rngFind.EntireRow)
Set rngFind = Cells.FindNext(After:=rngFind)
If rngFind.Address = sFind Then Exit Do
Loop
End If
Next
rngRows.Select
End Sub
' **************************************************************
' Modul: Neues Makro Typ = Userform
' **************************************************************
Private Sub NEIN_Click()
frag = MsgBox("haben sie alles??", vbOKCancel, "Frage")
If frage = OK Then Me.Hide
End Sub
Private Sub OK_Click()
Dim wks As Worksheet
Dim rngFind As Range, rngRows As Range
Dim sFind As String, sSearch As String
Suchbegriff = Array(Text1, Text2, Text3, Text4, Text5)
For t = 0 To UBound(Suchbegriff)
sSearch = Suchbegriff(t)
Set rngFind = Cells.Find(Suchbegriff(t))
If rngRows Is Nothing Then
Set rngRows = rngFind
End If
If Not rngFind Is Nothing Then
sFind = rngFind.Address
Do
Set rngRows = Application.Union(rngRows, rngFind.EntireRow)
Set rngFind = Cells.FindNext(After:=rngFind)
If rngFind.Address = sFind Then Exit Do
Loop
End If
Next
rngRows.Select
End Sub
Private Sub TextBox1_Change()
End Sub