Suchen und Ersetzen

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Drahuverar.

    Suchen und Ersetzen

    Guten Abend zusammen,

    ich habe ein kleines Problem:

    Ich habe eine Tabelle mit mehreren Namen (dynamisch).
    Nun möchte ich, dass wenn ein Name geändert wird (weil zb vorher falsch geschrieben) eine MsgBox kommt mit der Frage ob man den Namen im kompletten Dokument (wo der Name verwendet wurde durch DropDown) ändern möchte und dann das ganze Workbook durchsucht wird und den falschen durch den richtigen Namen ersetzt.
    Ich dachte da an die Suchen und Ersetzen Funktion.

    Kann mir da jemand weiterhelfen?


    Vielen Dank schonmal!
    Liebe Grüße

    Miriam
    Einen wunderschönen Guten Abend :)

    Wann genau passiert das denn, das ein Name geändert wird?
    Hast du einen Knopf eingebaut mit dem du das editieren erlaubst?

    Eine MsgBox mit den Werten für die jeweilige Box müsstest du dann ausgeben, und je nach Bestätigung folgendes aufrufen.

    VB.NET-Quellcode

    1. ActiveWorkbook.Worksheets.Cells.Replace what:="Suchen", Replacement:="Ersetzen", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,SearchFormat:=False, ReplaceFormat:=False


    ...So oder so ungefähr war es. ^^

    Gruß,
    Drahuverar
    Option Strict On!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Drahuverar“ ()

    Drahuverar schrieb:

    LookAt:=xlPart
    Ein globales Ersetzen ohne weitere Plausibilitätsprüfung halte ich schon für grob fahrlässig.
    Aber mit ​xlPart wird's noch eine Nummer härter.
    Du änderst den ​Reiner in ​Rainer und aus dem ​Schreiner wird plötzlich ein ​SchRainer.
    Und das ist noch eines der harmlosen Beispiele.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Das ist schwierig zu beantworten, weil der genaue Context nicht genannt wurde.
    Aber ich würde vermutlich die Worksheets und Spalten einzeln benennen, die modifiziert werden sollen.
    Wenn ein Benutzername korrigiert wird, macht es sicher wenig Sinn, die Spalte mit Ortsnamen zu modifizieren.

    Und ​LookAt:=xlWhole verwenden.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --