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

Forumthread: Suchen und Ersetzen Makro

Suchen und Ersetzen Makro
20.08.2014 14:57:27
kk_vba
Hallo,
mir stellt sich folgendes Szenario:
Ich habe mehrere Spalten, die mit Zahlen als Text gefüllt sind und zwar in folgendem Format:
5.89
19.99
3.76578
Nun möchte ich die Punkte mit Kommas ersetzen um später die Zellen als Zahl zu formatieren und zu berechnen.
Ich markiere also die Spalte, Suche nach "." ersetze durch ",".
So weit alles ok.
Das habe ich nun als Makro aufgezeichnet und ein bisschen bereinigt und der Code sieht wie folgt aus:

Columns("N:N").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Das Makro funktioniert jetzt nicht 100%ig. Bei den Zellen, die viele Stellen hinter dem "." haben, wird der Punkt einfach gelöscht anstatt ersetzt. Bei den anderen Spalten funktioniert er einwandfrei.
Ich kann mir nicht erklären woran das liegt... über Hilfe wäre ich dankbar.
Danke und Grüße

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen und Ersetzen Makro
20.08.2014 15:09:24
Daniel
Hi
das ist die Excelianische Sprachverwirrung.
Wenn du Werte durch ERSETZEN/REPLACE änderst, dann ist das für Excel wie eine Neueingabe.
Dh Excel prüft die eingegebene Zeichenfolge, ob es sich dabei um eine Formel, eine Zahl, ein Datum oder einen Text handeln könnte und behandelt sie entsprechen und macht daraus eine Formel wenn die Zeichenfolge mit "=" beginnt, eine Zahl, wenn sie wie eine Zahl ausssieht, ein Datum, wenn sie wie ein Datum aussieht, und ansonsten wie Text.
Das Problem ist jetzt, dass Excel mit dir "deutsch" spricht, dh damit es eine Zahl als Zahl erkennt muss diese im Deutschen Zahlenformat mit dem Komma als Dezimalzeichen geschrieben sein.
Mit VBA unterhält sich Excel jedoch in den meisten Fällen auf "englisch", dh wenn VBA einen Wert in die Zellen schreibt, muss dieser dem Englsichen Zahlenformat entsprechen (Punkt als Dezimalzeichen), damit Excel den Wert als Zahl erkennt.
das führt dann zu der etwas paradox anmutenden Situation, dass du hier den Punkt durch einen Punkt ersetzen musst, damit die Texte in Zahlen gewandelt werden, wenn du das Ersetzen per Makro ausführen lässt:
Columns("N:N").Replace What:=".", Replacement:=".", LookAt:=xlPart
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
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

Suchen und Ersetzen in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um Werte in Excel mithilfe eines Makros zu suchen und zu ersetzen, kannst du die folgenden Schritte befolgen:

  1. Öffne Excel und öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu starten.

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (dein Dokument)" und wähle Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Sub SuchenUndErsetzen()
       Columns("N:N").Replace What:=".", Replacement:=",", LookAt:=xlPart, _
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
       ReplaceFormat:=False
    End Sub
  4. Führe das Makro aus: Drücke F5, um das Makro auszuführen. Achte darauf, dass die Spalte N die zu bearbeitenden Werte enthält.

  5. Überprüfe die Ersetzungen: Stelle sicher, dass die Punkte durch Kommas ersetzt wurden und die Werte korrekt formatiert sind.


Häufige Fehler und Lösungen

Wenn das Makro nicht wie gewünscht funktioniert, könnten folgende Fehler auftreten:

  • Punkte werden gelöscht statt ersetzt: Dies passiert, wenn Excel die Werte als Zahlen erkennt. Verwende stattdessen diesen Code:

    Columns("N:N").Replace What:=".", Replacement:=".", LookAt:=xlPart
  • Excel erkennt die Werte nicht als Zahlen: Stelle sicher, dass die Werte im korrekten Zahlenformat vorliegen. Überprüfe die Regionaleinstellungen deines Excel.


Alternative Methoden

Es gibt auch andere Möglichkeiten, in Excel zu suchen und zu ersetzen:

  • Verwende die integrierte Suchen-und-Ersetzen-Funktion: Drücke STRG + H, um das Dialogfeld „Suchen und Ersetzen“ zu öffnen. Gib im Feld „Suchen nach“ den Punkt (.) und im Feld „Ersetzen durch“ das Komma (,) ein.

  • Nutze Formeln: Wenn du nur in einer bestimmten Spalte suchen und ersetzen möchtest, kannst du auch die Formel =WECHSELN(A1; "."; ",") verwenden, um den Punkt durch ein Komma zu ersetzen.


Praktische Beispiele

Hier sind einige Beispiele, wie du das Suchen und Ersetzen in einer Spalte effektiver gestalten kannst:

  1. Ersetzen mehrerer Werte in einer Spalte: Du kannst mehrere Replace-Befehle hintereinander ausführen, um verschiedene Werte zu ersetzen.

    Sub MehrereErsetzungen()
       With Columns("N:N")
           .Replace What:=".", Replacement:=",", LookAt:=xlPart
           .Replace What:="Text1", Replacement:="Text2", LookAt:=xlPart
       End With
    End Sub
  2. Suchen und Ersetzen in einer bestimmten Zeile: Wenn du nur in einer bestimmten Zeile suchen und ersetzen möchtest, kannst du den Code entsprechend anpassen:

    Rows("1:1").Replace What:=".", Replacement:=",", LookAt:=xlPart

Tipps für Profis

  • Nutze Variablen: Wenn du oft mit verschiedenen Spalten arbeitest, kannst du die Spalte als Variable definieren, um deinen Code flexibler zu gestalten.

  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um sicherzustellen, dass dein Makro bei unerwarteten Eingaben nicht abstürzt.

  • Dokumentiere deinen Code: Füge Kommentare hinzu, um die Funktionsweise deines Makros zu erklären, besonders wenn du es mit anderen teilst.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass das Makro nur in einer bestimmten Spalte arbeitet?
Verwende den Befehl Columns("X:X"), um die spezifische Spalte anzugeben, in der die Ersetzungen stattfinden sollen.

2. Was mache ich, wenn das Makro nicht funktioniert?
Überprüfe, ob die Daten korrekt formatiert sind und ob keine Leerzeichen oder unsichtbare Zeichen in den Zellen vorhanden sind. Du kannst auch die VBA-Debugging-Tools nutzen, um den Fehler zu finden.

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