|  
                                             
	Hallo, 
	ich kenne mich in VBA nicht wirklich so gut aus. 
	 
	Problem: in Excel möchte ich in einem speziellen Bereich mehrere Begriffe (wechselnde) fett markieren innerhalb von Spalten. 
	 
	Diese Lösung habe ich mit Hilfe des Internets "gebastelt": 
	 
	Sub Ersetzen() 
	Dim i As Integer 
	Dim k As Integer 
	Dim Laenge As Integer 
	Dim intAnz As Integer 
	  
	Dim rngC As Range 
	Dim strSuch As String 
	Dim strErsetz As String 
	Dim myRange As Range 
	 
	Dim intAnz2 As Integer 
	Dim rngC2 As Range 
	Dim strSuch2 As String 
	Dim strErsetz2 As String 
	Dim Laenge2 As Integer 
	 
	 
	 
	 
	Such: 
	strSuch = Application.InputBox("Bitte das 1. gesuchte Wort eingeben", _ 
	"Suchwort", Type:=2) 
	strSuch2 = Application.InputBox("Bitte das 2. gesuchte Wort eingeben", _ 
	"Suchwort2", Type:=2) 
	 
	If strSuch = "" Or strSuch = "Falsch" Then 
	MsgBox "Bitte Suchwort eingeben" 
	GoTo Such 
	End If 
	If strSuch2 = "" Or strSuch2 = "Falsch" Then 
	MsgBox "Bitte 2. Suchwort eingeben" 
	GoTo Such 
	End If 
	 
	Ersatz: 
	strErsetz = Application.InputBox("Bitte das Ersatzwort eingeben", _ 
	"Ersatzwort", Type:=2) 
	strErsetz2 = Application.InputBox("Bitte das 2. Ersatzwort eingeben", _ 
	"Ersatzwort2", Type:=2) 
	If strErsetz = "" Or strErsetz = "Falsch" Then 
	MsgBox "Bitte Ersatzwort eingeben" 
	GoTo Ersatz 
	End If 
	If strErsetz2 = "" Or strErsetz2 = "Falsch" Then 
	MsgBox "Bitte 2. Ersatzwort eingeben" 
	GoTo Ersatz 
	End If 
	 
	Set myRange = Application.InputBox("Bitte den zu durchsuchenden" _ 
	& "Bereich markieren", "Bereich", Default:="A1", Type:=8) 
	If myRange Is Nothing Then 
	MsgBox "Bitte Bereich markieren" 
	Exit Sub 
	End If 
	 
	Laenge = Len(strErsetz) 
	Laenge2 = Len(strErsetz2) 
	 
	For Each rngC In myRange 
	i = 0 
	rngC = Replace(rngC, strSuch, strErsetz) 
	 
	intAnz = (Len(rngC) - Len(Replace(rngC, strErsetz, ""))) / Laenge 
	 
	 
	If intAnz > 0 Then 
	For k = 1 To intAnz 
	i = InStr(1 + i, rngC, strErsetz) 
	rngC.Characters(i, Laenge).Font.Bold = True 
	Next k 
	End If 
	 
	Next rngC 
	 
	For Each rngC2 In myRange 
	i = 0 
	rngC2 = Replace(rngC2, strSuch2, strErsetz2) 
	intAnz2 = (Len(rngC2) - Len(Replace(rngC2, strErsetz2, ""))) / Laenge2 
	 
	If intAnz2 > 0 Then 
	For k = 1 To intAnz2 
	i = InStr(1 + i, rngC2, strErsetz2) 
	rngC2.Characters(i, Laenge2).Font.Bold = True 
	Next k 
	End If 
	 
	Next rngC2 
	 
	 
	End Sub 
	  
	Leider wird bei der Fettmarkierung des zweiten Wortes die Fettmarkierung des ersten Wortes aufgehoben. Ich bräuchte aber die "automatische" Markierung von bis zu 3 Wörtern... 
	 
	Kann mir jemand helfen? 
	 
	Danke und Gruß, 
	 
	Susanne 
     |