Dorothys Schüler passen eine Arbeitsmappe zur Scheckbuchsimulation an und ersetzen den Standardnamen durch ihren eigenen. Zum Beispiel möchte sie, dass sie nach „Jason Anderson“ suchen und den Namen durch „Sue Smith“ ersetzen.

Es gibt 22 Vorkommen von „Jason Anderson“ in Textfeldern auf acht Arbeitsblattregistern und mehrere weitere in den Arbeitsblättern selbst.

Dorothy fragt sich, wie sie alle Arbeitsblattvorkommen und alle Kommentarvorkommen gleichzeitig finden und ersetzen kann.

Ohne Verwendung eines Makros ist dies nicht möglich. Das Makro müsste jede Zelle in der Arbeitsmappe, jeden Kommentar und jedes Textfeld durchsuchen, um festzustellen, ob Änderungen vorgenommen werden müssen. Das Folgende ist ein Beispiel dafür, wie dies getan werden kann:

Sub ReplaceNames()

Dim sDefaultName As String     Dim sNewName As String     Dim sht As Worksheet     Dim cmt As Comment     Dim wks As Worksheet     Dim sCmt As String     Dim shp As Shape

sDefaultName = "Jason Anderson"

sNewName = InputBox("Enter your first and last name.", _       "Name Replacement")



' Replace cell text     For Each sht In ActiveWorkbook.Worksheets         sht.Cells.Replace what:=sDefaultName, _           Replacement:=sNewName, LookAt:=xlPart, _           SearchOrder:=xlByRows, MatchCase:=False, _           SearchFormat:=False, ReplaceFormat:=False     Next sht

' Replace comment text     For Each wks In ActiveWorkbook.Worksheets         For Each cmt In wks.Comments             sCmt = cmt.Text             If InStr(sCmt, sDefaultName) <> 0 Then                 sCmt = Application.WorksheetFunction. _                   Substitute(sCmt, sDefaultName, sNewName)

cmt.Text Text:=sCmt             End If         Next cmt     Next wks     Set wks = Nothing     Set cmt = Nothing

' Replace text box text     On Error Resume Next     For Each wks In ActiveSheet.Parent.Worksheets         For Each shp In wks.Shapes             With shp.TextFrame.Characters                 .Text = Application.WorksheetFunction.Substitute( _                   .Text, sDefaultName, sNewName)

End With         Next shp     Next wks End Sub

Das Makro fordert den Benutzer auf, einen neuen Namen einzugeben, und durchsucht dann Zellen, Kommentare und Textfelder, um festzustellen, ob der Standardname („Jason Anderson“) vorkommt. Wenn ja, wird der entsprechende Ersatz vorgenommen.

Wenn Sie für die Suche keine Makros verwenden möchten, ist möglicherweise eine Umstrukturierung der Arbeitsmappe hilfreich. Sie können beispielsweise ein „Dateneingabe-Arbeitsblatt“ erstellen, in das allgemeine Informationen wie der Name der Person eingegeben werden. In den anderen Arbeitsblättern wird der Name aus dem Dateneingabe-Arbeitsblatt mithilfe von Formeln referenziert. Somit wird eine Änderung im Dateneingabe-Arbeitsblatt und der Name in allen anderen Arbeitsblättern geändert.

Die Verwendung dieses Ansatzes kann auch mit Kommentaren funktionieren. Sie können den Kommentar oder die Form auswählen und in der Formelleiste eine Referenzformel wie die folgende eingeben:

=MyName

Dies setzt voraus, dass der Name des Benutzers im Arbeitsblatt zur Dateneingabe dem benannten Bereich MyName zugeordnet wurde. Wenn der Kommentar oder die Form zusätzliche Informationen enthalten muss, können Sie diesen Text in einer Zelle des Arbeitsblatts für die Dateneingabe erstellen und den Inhalt dieser Zelle dem Kommentar oder der Form zuweisen, wie für den benannten Bereich MyName angegeben.

_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 (2614) gilt für Microsoft Excel 2007, 2010, 2013 und 2016.