Jack fragt sich, wie er nach einem bestimmten Wort oder einer bestimmten Phrase suchen und in einem Schritt alle Zellen hervorheben kann, die es enthalten, damit er sie ausschneiden oder kopieren und an anderer Stelle einfügen kann.

Die Auswahl der Zellen mit dem gewünschten Text ist recht einfach. Sie können dazu die Standardfunktion Suchen und Ersetzen verwenden. Befolgen Sie diese Schritte:

  1. Drücken Sie Strg + F. Excel zeigt die Registerkarte Suchen des Dialogfelds Suchen und Ersetzen an.

  2. Erweitern Sie das Dialogfeld, indem Sie auf die Schaltfläche Optionen klicken. (Siehe Abbildung 1.)

  3. Geben Sie im Feld Suchen nach den Text ein, den Sie suchen möchten.

  4. Verwenden Sie die Steuerelemente im Dialogfeld, um die Übereinstimmungen nach Bedarf einzuschränken.

  5. Klicken Sie auf Alle finden. Das Dialogfeld wird erweitert, um alle gefundenen Übereinstimmungen anzuzeigen.

  6. Drücken Sie Strg + A. Dies wählt alle gefundenen Zellen aus.

  7. Klicken Sie auf Schließen, um das Dialogfeld zu schließen.

Das ist es. Solange Sie in Schritt 4 nicht auf Gesamten Zelleninhalt abgleichen geklickt haben, wählt Excel alle Zellen aus, die den in Schritt 3 angegebenen Text enthalten. Zu diesem Zeitpunkt können Sie bei Bedarf die Formatierung auf die Zellen anwenden.

Sie können natürlich die bedingte Formatierung verwenden, um Zellen dynamisch zu formatieren, die den Text enthalten, den Sie hervorheben möchten. Sie müssen lediglich eine Bedingung einrichten, die eine Formel verwendet, die das Vorhandensein des gewünschten Textes prüft. Dadurch werden natürlich nicht alle Zellen ausgewählt, die den Text enthalten, aber sie werden hervorgehoben, damit Sie herausfinden können, wo sie sich befinden.

Sie können auch ein Makro verwenden, um alle Zellen auszuwählen, die den gewünschten Text enthalten. Das Folgende ist ziemlich einfach und erfüllt die Aufgabe:

Sub selCellbasedonValue()

Dim c As Object     Dim u As Range     Dim v As Range     Dim sInpt As String

Set u = ActiveSheet.UsedRange

sInpt = InputBox("Enter the search text")



If sInpt > "" Then         For Each c In u             If Instr(LCase(sInpt),LCase(c.Value)) > 0 Then                 If v Is Nothing Then                     Set v = Range(c.Address)

Else                     Set v = Union(v, Range(c.Address))

End If             End If         Next         v.Select         Set v = Nothing     End If

Set u = Nothing End Sub

Es gibt jedoch ein Problem bei der Auswahl von Zellen, die Sie erkennen müssen. Wenn die Zellen nicht zusammenhängend sind, können Sie die Zellen nicht ausschneiden oder kopieren. Wenn Sie es versuchen, wird eine Fehlermeldung angezeigt, die angibt, dass der Befehl nicht für mehrere Auswahlen verwendet werden kann. Der einfachste Weg, Zelleninhalte an einen anderen Ort zu kopieren, ist die Verwendung eines Makros:

Sub CopyFinds()

Dim sSrch As String     Dim sFirst As String     Dim rPaste As Range     Dim i As Integer     Dim iLeftC As Integer     Dim lTopR As Long     Dim c As Object

If Selection.Cells.Count = 1 Then         MsgBox "Select the range to be searched."

Exit Sub     End If

'Specify search string     sSrch = InputBox(Prompt:="Enter the search text")



'   Set the paste address     On Error Resume Next     Set rPaste = Application.InputBox(Prompt:="Enter the upper-left " & _       "cell address for the paste range", Type:=8)

On Error GoTo 0

'   Exit if canceled     If TypeName(rPaste) <> "Range" Then Exit Sub

'   Upper left cell to be used     Set rPaste = rPaste.Range("A1")



'Set where paste will start and headings     Application.ScreenUpdating = False     lTopR = rPaste.Row     iLeftC = rPaste.Column     Cells(lTopR, iLeftC) = "Address"

Cells(lTopR, iLeftC + 1) = "Cell Value"

lTopR = lTopR + 1          'Start copying cell values     With Selection         Set c = .Find(What:=sSrch, LookAt:=xlPart, MatchCase:=True)

If Not c Is Nothing Then             sFirst = c.Address             Do                 Cells(lTopR, iLeftC) = c.Address                 Cells(lTopR, iLeftC + 1) = c.Value                 Set c = .FindNext(c)

lTopR = lTopR + 1             Loop While Not c Is Nothing And c.Address <> sFirst         End If     End With          Application.ScreenUpdating = True     Cells(rPaste.Row, rPaste.Column).Select End Sub

Wenn Sie einen Zellbereich auswählen und dieses Makro ausführen, werden Sie aufgefordert, anzugeben, wonach Sie suchen (Groß- / Kleinschreibung ist wichtig) und eine Adresse anzugeben, an die Sie es kopieren möchten. Das Makro findet dann alle Zellen, die diesen Wert enthalten, und kopiert sowohl ihre Adresse als auch den Zellenwert an die von Ihnen angegebene Startadresse. Das Makro führt nicht viele Fehlerprüfungen durch. Informationen werden überschrieben, wenn Sie eine Zieladresse angeben, die bereits Informationen enthält. Wenn Sie eine Zieladresse angeben, die innerhalb des gesuchten Bereichs liegt, wird das Makro möglicherweise unendlich ausgeführt. Sie sollten auf jeden Fall ein Ziel angeben, das außerhalb des gesuchten Bereichs liegt.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (8963) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: