Hallo Siegfried,
Am Thu, 21 Jun 2012 10:06:08 +0200 schrieb Claus Busch:
> es stimmt, das ist nur mit VBA zu machen. Aber es geht auch nur in
> Texten. D.h. in Formeln geht es auch nicht. Die Formel müsste noch in
> Werte gewandelt werden.
> Aber das könnte man in einem Rutsch mit VBA machen.
> Wo soll gesucht werden? Nur in einer bestimmten Spalte oder in der
> ganzen Tabelle? Kommt das gesuchte Wort nur einmal in der Zelle vor oder
> mehrmals?
du hast nicht mehr geantwortet, um das Makro so einfach wie möglich zu
halten. Deshalb nun eine universelle Variante, die alle deine
Bedürfnisse abdecken sollte. Makrocode in eine Standardmodul kopieren
und über Makros starten:
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
Such:
strSuch = Application.InputBox("Bitte das gesuchte Wort eingeben", _
"Suchwort", Type:=2)
If strSuch = "" Or strSuch = "Falsch" Then
MsgBox "Bitte Suchwort eingeben"
GoTo Such
End If
Ersatz:
strErsetz = Application.InputBox("Bitte das Ersatzwort eingeben", _
"Ersatzwort", Type:=2)
If strErsetz = "" Or strErsetz = "Falsch" Then
MsgBox "Bitte 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)
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
End Sub