Profi-Excel.de

Die Seite für den professionellen Umgang mit Excel und VBA

      • 5 user online
      • 48390 Besucher insgesamt

Mehrfach Suchen und Ersetzen

21. September 2006

In den beiden Arrays können die korresponierenden Begriffe eingetragen werden. Momentan werden die Buchstaben a durch 1, b durch 2, usw. ersetzt. Die Inhalte in den Arrays müssen natürlich den Bedürfnissen angepasst werden. Durch die For-Schleife werden die jeweiligen Einträge des Arrays der Replace-Methode des Range-Objekts übergeben. Das Range-Objekt stellt hier den benutzten Bereich des aktiven Tabellenblatts dar.

VBA:
  1. Sub mehrfachSuchenUndErsetzen()
  2. 'sucht im aktiven Tabellenblatt jeweils die Eintraege aus
  3. 'suchArray und ersetzt mit ersetzArray
  4. '09-2006
  5. 'E.Bimczok http://profi-excel.de
  6. Dim suchArray()
  7. Dim ersetzArray()
  8. Dim k As Long
  9.  
  10. suchArray = Array("a", "b", "c")
  11. ersetzArray = Array("1", "2", "3")
  12.  
  13. For k = LBound(suchArray) To UBound(suchArray)
  14.   Call ActiveSheet.UsedRange.Replace(suchArray(k), _
  15.                                      ersetzArray(k), _
  16.                                      , _
  17.                                      , _
  18.                                      False)
  19. Next k
  20.  
  21. End Sub

8 Kommentare zu “Mehrfach Suchen und Ersetzen”

  1. Kalisch sagt:

    Ich hätte gerne eine Suchfunktion für excel mit der ich verschiedene und vor allem mehrere begriffe gleichzeitig in einer Tabelle suchen kann.
    z.B.: Dell +Laptop

    gibt es da eine Möglichkeit oder sogar ein fertiges Plug-In????

    Bin ziemlich verzweifelt und ein Newbie noch dazu!
    HELP!!!

  2. Eike sagt:

    Hallo Kalisch,

    wenn die beiden Ausdrücke in einer Zelle stehen, dann kannst du die Suche über die normale Suchfunktion (Strg+f) ausführen durch Eingabe von Dell*Laptop.
    Einschränkung: Die Worte müssen in exakt dieser Reihenfolge vorkommen.

    Ansonsten hast du alle Möglichkeiten über VBA.

    Gruß
    Eike

  3. Dickie sagt:

    Wie würde es aussehen, wenn nur eine Spalte im aktiven Tabellenblatt durchsucht werden darf ?

  4. Eike sagt:

    Hallo Dickie,

    du müsstest anstelle von “ActiveSheet.UsedRange.Replace” nur “ActiveSheet.Columns(1).Replace” einsetzen.

    Die Zahl, hier “1″, gibt die Spaltennummer an.

    Gruß
    Eike

  5. Firebird sagt:

    Hallo.

    Gibt es eine Möglichkeit in Excel unter der Funktion “Suchen” in einer Spalte alle Werte zu suchen die Über Wert 0 liegen?

    Nach Minuszahlen kann ich durch eingabe von ~- suchen, aber ich muss alle die Suchen können, die Wert über Null haben.

    Oder aber ich suche alle mit Wert – und müsste dann irgendwie sagen können: Ganze Zeile markieren und kopieren?

    Geht das irgendwie

    Mfg
    Firebird

  6. Eike sagt:

    Hallo Firebird,

    über den Suchen-und-Ersetzen-Dialog bzw. die oben verwendete Replace-Methode des Range-Objekts ist mir keine Lösung bekannt.

    Dennoch zwei Ansätze, Werte größer Null zu suchen:
    -Eine For-Each Schleife in VBA programmieren und alle Werte mit Cell.Value>0 prüfen.
    -Den Autofilter (Daten-Filter-Autofilter) verwenden und benutzerdefiniert filtern nach größer Null.

    Gruß
    Eike

  7. melvin sagt:

    Hallo,

    wie schaffe ich es denn mit diesem Makro 2 Zellen in unterschidlichen Spalten zu bearbeiten?

    Ich möchte den Inhalt aus Zelle1 und Spalte1 gegen einen immer gleichen Teil aus Zelle2 und Spalte2 austauschen.

    BSP:
    Z1,S1: mallorca Z1,S2: reise nach xxx
    Z2,S1: teneriffa Z2,S2: reise nach xxx
    usw.

    Für xxx soll dann “mallorca”, danach “teneriffa” und immer so weiter stehen.

    Wäre für Eure Hilfe sehr dankbar.

  8. Eike sagt:

    Hallo Melvin,

    in diesem Fall würde ich ein Formel empfehlen:

    =WECHSELN(B1;”xxx”;A1)

    Gruß
    Eike

Kommentar schreiben

XHTML: Sie können diese Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>