Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Suchen und Ersetzen in gesamter Arbeitsmappe

VBA Suchen und Ersetzen in gesamter Arbeitsmappe
Christian
Hallo,
ich habe ein kleines Problem, mein VBA soll eine Datei öffnen, diese nach einem Begriff durchsuchen
und anschließend ersetzen. Der Code basiert auf dem was der Recorder mir gibt wenn ich die gesamte Mappe durchsuche:

Workbooks.Open Filename:=".."
Cells.Replace What:=alt, Replacement:=neu, LookAt:= _
xlPart, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

Trotzdem wird nur das erste Sheet durchsucht. Habe ich etwas übersehen?
Vielen Dank für eure Hilfe!
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA Suchen und Ersetzen in gesamter Arbeitsmappe
20.08.2010 11:09:31
urmila
Hallo Christian,
bei meiner Aufnahme entstand dies noch.....
    Sheets(Array("Tabelle1", "Tabelle2", "Tabelle3")).Select
Sheets("Tabelle1").Activate
Das ist wichtig, da du ja ihm sagen musst in welchen Tabellenblätter er die Aktion ausführen soll, ist es nicht angegen, führt er diese nur im aktiven Tabellenblatt, sofern ich das weiß.
LG
Urmila
Anzeige
AW: VBA Suchen und Ersetzen in gesamter Arbeitsmappe
20.08.2010 11:14:22
urmila
Hi nochmal,
und wenn du vornherein sagen willst er soll alle Tabellenblätter markieren...dann füge das vor dem Code ein
Workbooks.Open Filename:=".."
ThisWorkbook.Sheets.Select
Cells.Replace What:=alt, Replacement:=neu, LookAt:= _
xlPart, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
LG
Urmila
Anzeige
AW: VBA Suchen und Ersetzen in gesamter Arbeitsmappe
20.08.2010 11:16:50
Klaus
Hallo Christian,
er nimmt immer das aktive sheet. Machs so:
Sub AlleSheets()
Workbooks.Open Filename:=".."
Dim wks As Worksheet
For Each wks In ActiveWorkbook.Worksheets
wks.Cells.Replace What:=alt, Replacement:=neu, LookAt:= _
xlPart, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Next
End Sub

Klartext: Öffne das Workbook, zähle die Sheets, nimm das erste Sheet, ersetze, nimm das zweite Sheet, ersetzt [...] Bis alle Sheets durch sind.
Grüße,
Klaus M.vdT.
(so wie der Code da steht läuft er natürlich nicht, da die variablen alt und neu nicht definiert sind)
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA Suchen und Ersetzen in gesamter Arbeitsmappe


Schritt-für-Schritt-Anleitung

Um in einer gesamten Arbeitsmappe mit Excel VBA nach einem Begriff zu suchen und diesen zu ersetzen, folge diesen Schritten:

  1. Öffne das VBA-Editor-Fenster:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Rechtsklicke auf „VBAProject (deineDatei.xlsx)“.
    • Wähle „Einfügen“ und dann „Modul“.
  3. Kopiere den folgenden Code in das Modul:

    Sub AlleSheets()
       Dim wks As Worksheet
       Dim alt As String
       Dim neu As String
    
       ' Definiere die Begriffe, die ersetzt werden sollen
       alt = InputBox("Bitte den zu suchenden Begriff eingeben:")
       neu = InputBox("Bitte den neuen Begriff eingeben:")
    
       ' Öffne die Arbeitsmappe
       Workbooks.Open Filename:=".."
    
       ' Durchlaufe alle Arbeitsblätter
       For Each wks In ActiveWorkbook.Worksheets
           wks.Cells.Replace What:=alt, Replacement:=neu, LookAt:= _
           xlPart, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
       Next
    End Sub
  4. Führe das Makro aus:

    • Drücke F5 oder gehe zu „Ausführen“ > „Sub/UserForm ausführen“ und wähle AlleSheets.

Häufige Fehler und Lösungen

Fehler: Nur das aktive Sheet wird durchsucht.
Lösung: Stelle sicher, dass du den Code zur Durchsuchung aller Sheets verwendest, wie im obigen Beispiel gezeigt.

Fehler: Variablen alt und neu sind nicht definiert.
Lösung: Definiere die Variablen, bevor du sie im Cells.Replace-Befehl verwendest. Das Beispiel zeigt, wie du dies über InputBox machen kannst.


Alternative Methoden

Eine alternative Methode, um in einer gesamten Arbeitsmappe zu suchen und zu ersetzen, ist die Verwendung eines Excel Makros. Hier ist ein Beispiel:

Sub SuchenUndErsetzenInAlleSheets()
   Dim ws As Worksheet
   Dim alt As String
   Dim neu As String

   alt = "OriginalBegriff" ' Begriff, der ersetzt werden soll
   neu = "NeuerBegriff"     ' Begriff, durch den ersetzt wird

   For Each ws In ThisWorkbook.Worksheets
       ws.Cells.Replace What:=alt, Replacement:=neu, LookAt:=xlPart
   Next ws
End Sub

Praktische Beispiele

Beispiel 1: Ersetze das Wort „Fehler“ durch „Problem“ in allen Sheets einer Arbeitsmappe.

Sub FehlerDurchProblemErsetzen()
   Dim ws As Worksheet
   For Each ws In ThisWorkbook.Worksheets
       ws.Cells.Replace What:="Fehler", Replacement:="Problem", LookAt:=xlPart
   Next ws
End Sub

Beispiel 2: Suchen und Ersetzen mit Groß-/Kleinschreibung beachten.

Sub SucheMitGroßKlein()
   Dim ws As Worksheet
   For Each ws In ThisWorkbook.Worksheets
       ws.Cells.Replace What:="Excel", Replacement:="EXCEL", LookAt:=xlPart, MatchCase:=True
   Next ws
End Sub

Tipps für Profis

  • Sicherungskopien erstellen: Bevor du ein Makro ausführst, erstelle immer eine Sicherungskopie der Arbeitsmappe.
  • Testen in einer kleinen Datenmenge: Probiere den Code zuerst an einer kleinen Datenmenge aus, um unerwartete Ergebnisse zu vermeiden.
  • Verwenden von MatchCase: Setze MatchCase auf True, wenn du zwischen Groß- und Kleinschreibung unterscheiden möchtest.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um nur bestimmte Blätter zu durchsuchen?
Du kannst die Schleife so anpassen, dass sie nur bestimmte Blätter einbezieht, indem du eine If-Bedingung hinzufügst.

2. Was mache ich, wenn der gesuchte Begriff nicht gefunden wird?
Stelle sicher, dass der Begriff korrekt geschrieben ist und dass du den richtigen Bereich (z.B. xlPart oder xlWhole) ausgewählt hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige