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

Suchen/Ersetzen funktioniert nicht

Forumthread: Suchen/Ersetzen funktioniert nicht

Suchen/Ersetzen funktioniert nicht
07.04.2015 11:29:25
Pat132
Guten Tag,
folgendes Problem tritt bei mir auf. Eine Zeichenfolge enthält an mehreren Stellen einen Senkrechtstricht (|). Ich möchte diesen durch ein Anführungszeichen (")ersetzen und habe den Arbeitsschritt mit dem Makrorekorder aufgezeichnet. Der Code sieht nun so aus:

Selection.Replace What:="|", Replacement:="""", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Beim Aufzeichnen hats geklappt, wenn ich das Makro laufen lasse, klappts nicht mehr. Ich habe recherchiert, dass das Problem hin und wieder wohl häufiger auftritt, eine verständliche Erklärung aber nicht gefunden.
Weiß jemand Rat? Mit Dank und Gruß, Patrik

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen/Ersetzen funktioniert nicht
07.04.2015 11:39:29
Bernd
Hi!
habe diesen Code mal hier erhalten:
Sub Ersetzen()
Dim lngLz As Long, lngZ As Long, lngSpalte As Long
lngSpalte = 17 '1=Spalte A, 2=Spalte B etc.
lngLz = Cells(Rows.Count, lngSpalte).End(xlUp).Row 'Letzte Zeile der Spalte ermitteln
For lngZ = 2 To lngLz 'Beginnt ab Zeile 2
Cells(lngZ, lngSpalte).Value = " " & Cells(lngZ, _
lngSpalte).Text & " / "
Next
End Sub
Teste mal ob es für Dich so ausreichend wäre. Der Code kann auf Spalten angewendet werden.
lg Bernd

Anzeige
AW: Sorry -- geht nicht!!
07.04.2015 11:41:24
Bernd
Hi!
sorry, dass hilft Dir ja gar nicht weiter, hab zu schnell geschossen!
lg Bernd

Ein Versuch
07.04.2015 11:50:28
RPP63
Hallo!
Und wenn Du die Zeichen durch deren Code ersetzt?
Selection.Replace What:=Chr(124), Replacement:=Chr(34), ...
Gruß Ralf

AW: Suchen/Ersetzen funktioniert nicht
07.04.2015 11:55:25
Daniel
Hi
bei mir funktioniert der aufgezeichnete Code problemlos.
wie sieht denn deine Datei aus?
Wendst du das Ersetzen auf festem Text an oder auf Formeln?
wenn die "|" bestandteile von Formeln sind
dh in der Zelle steht sowas wie: =Wenn(A1=1;"A|B|C";"D|E|F")
dann musst du zwei Anführungszeichen einfügen, denn auch in Formeln gilt:
Anführungszeichen, die zum Text gehören, werden immer doppelt eingegeben, damit Excel sie von den Anführungszeichen unterscheiden kann, die den Text begrenzen.
in diesem Falle wäre Replacement:="""""" (6 Anführungszeichen)
Gruß Daniel

Anzeige
AW: Suchen/Ersetzen funktioniert nicht
07.04.2015 12:05:48
Pat132
Hallo Daniel, hallo Ralf,
danke für Eure Anregungen. Tatsächlich ist es so, dass ich mich auf Formeln beziehe. Der TExt siehst so aus:
=WENN(K9=|-- Fremd --|;M13&| ZA|;K10)
Der Makrorekorder hat auch Doppelte Anführungszeichen aufgezeichnet. Da für jeden Senkrechtstrich nur ein "Gänsefüßchen" eingefügt werden soll, hat er entsprechend 4 Anführungszeichen aufgezeichnet.
Trotzdem: Der Code wird - auch bei Einzelschrittanalyse - einfach ignoriert.
Die Zeichencodes CHR ändern da leider auch nichts.
Viele Grüße, Patrik

Anzeige
AW: Suchen/Ersetzen funktioniert nicht
07.04.2015 12:18:45
Daniel
Hi
ok, das ist hier dann aber noch ein zusätzlicher, bis her noch nicht berücksichtigter Fall, weil die Zeichen nicht bestandteil eines einfachen Textes sind, sondern Funktionaler Bestandteil einer Formel!
wenn du hier was mit der Ersetzen-Funktion änderst, versucht Excel, diesen Text als Formel zu berechnen, weil er mit "=" beginnt.
Hierbei hast du aber das Problem der Excelianiaschen Sprachverwirrung.
die Formel liegt in Deutscher schreibweise vor.
Führst du das Ersetzen von Hand durch, dann arbeitet das deutsche Excel und die Formel wird korrekt umgesetzt.
Lässt du das Ersetzen jedoch durch ein Makro ausführen, so hast du das Problem, dass Excel und VBA immer Englisch miteinander reden und daher die Formel in englsicher Schreibweise vorliegen müsste (IF statt WENN, Kommmas als Parametertrennzeichen).
das ganze wird also etwas komplizierter und du solltest mal eine Beispieldatei mit den Ausgangsdaten hochladen und genauer beschreiben, wie der Text =WENN(K9=|-- Fremd --|;M13&| ZA|;K10) überhaupt erzeugt wird.
Gruß Daniel
Gruß Daniel

Anzeige
AW: Suchen/Ersetzen funktioniert nicht
07.04.2015 12:51:39
Pat132
Hallo Daniel,
der Text wurde erzeugt, weil ich Textpassagen und Zellverweise miteinander verknüpft hatte. Dafür musste ich die ursprünglich in der Formel enthaltenen " durch irgendwas ersetzen und hab halt den | genommen.
Dein Beitrag hat mein Verständnis für den Unterschied zwischen manuellem Arbeitsschritt und Makro geschärft. Danke dafür. Ich werde jetzt das = im Makro weglassen und hinterher manuell voranstellen.
Euch besten Dank! Gruß, Patrik

Anzeige
Was soll daran nicht fktionieren, ...
07.04.2015 13:15:49
Luc:-?
…Patrik?
Wenn du alle Voraussetzungen beachtest, klappt das auch!
1. Der Text muss tatsächlich Text, also als solcher formatiert sein oder mit einem TextPräfix (idR ') beginnen (anderenfalls könntest du einen solchen FormelText auch gar nicht eingeben!).
2. Wenn dieser FmlText nach Korrektur als Fml wirksam wdn soll, muss das TextPräfix wieder entfernt oder die Zelle als Standard formatiert wdn, was du möglicherweise vergessen hast.
3. Die Daten in den von der Fml angesprochenen Zellen müssen ebenfalls eine eingebbare und von der Fml verarbeitbare Form haben, was im Falle von -- Fremd -- ebenfalls TextFormatierung u/o -Präfix erfordert.
Das Ergebnis sähe dann bspw so aus:
'=WENN(K9=|-- Fremd --|;M13&| ZA|;K10)
'=WENN(K9="-- Fremd --";M13&" ZA";K10)
xxx ZA ⇐ =WENN(K9="-- Fremd --";M13&" ZA";K10) als FmlErgebnis, wenn …
K9:K10:
'-- Fremd --
zzz
…und M13: xxx
…ist.
Was Daniel zuletzt schreibt, ist zwar richtig, aber hierfür völlig irrelevant. Dein CodeSchnipsel fktioniert ohne Änderung in einer nur durch Kopf- und FußZeile ergänzten einfachen SubProzedur problemlos (unter Xl12/2007). Es könnte natürlich sein, dass deine XlVersion noch etwas mehr Angaben braucht, Makros nicht zugelassen sind oder sonst etwas nicht richtig eingestellt ist. Am Pgm sollte es per sé nicht unbedingt liegen!
Vielleicht willst du aber auch mehrere Texte auf diese Art ändern und dabei entstehen dann Probleme, weil irgendetwas von dir nicht ausreichend beachtet wurde…
Gruß, Luc :-?

Anzeige
AW: Was soll daran nicht fktionieren, ...
08.04.2015 09:04:38
Pat132
Hallo Luc,

"weil irgendetwas von dir nicht ausreichend beachtet wurde…"

Da hast Du Recht, ein Text-Präfix habe ich nicht eingebaut. Ich habe jetzt Semi-manuell gearbeitet und bin zum Ziel gekommen. Ich danke Euch!!!
Gruß, Patrik
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Suchen und Ersetzen in Excel: So löst du häufige Probleme


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und lade die Datei, in der du Suchen und Ersetzen durchführen möchtest.
  2. Wähle den Bereich aus, in dem du die Suche durchführen möchtest oder klicke auf eine Zelle, um die gesamte Tabelle zu durchsuchen.
  3. Gehe zu Start > Suchen & Auswählen > Ersetzen oder drücke Strg + H.
  4. Gib im Feld Suchen nach das Zeichen oder die Zeichenfolge ein, die du ersetzen möchtest (z.B. |).
  5. Gib im Feld Ersetzen durch das Zeichen oder die Zeichenfolge ein, durch die du ersetzen möchtest (z.B. ").
  6. Klicke auf Alle ersetzen oder Ersetzen, um die Änderungen vorzunehmen.

Wenn Excel bei dieser Vorgehensweise nicht reagiert, kann es an den Formatierungen oder dem verwendeten Texttyp liegen.


Häufige Fehler und Lösungen

  • Problem: Suchen und Ersetzen funktioniert nicht

    • Lösung: Stelle sicher, dass die Zellen als Text formatiert sind. Wenn sie als Formeln formatiert sind, kann es sein, dass die Ersetzung nicht funktioniert. In Formeln müssen Anführungszeichen doppelt eingegeben werden.
  • Problem: Excel sucht nicht im gesamten Bereich

    • Lösung: Überprüfe, ob der richtige Bereich ausgewählt ist. Wenn nur eine Zelle ausgewählt ist, wird nur dort gesucht.
  • Problem: Suchen in Excel funktioniert nicht

    • Lösung: Achte darauf, dass keine Filter aktiv sind, die die Sichtbarkeit der Zellen einschränken.

Alternative Methoden

Eine alternative Methode zur Ersetzung von Zeichen ist die Verwendung von VBA. Hier ist ein einfaches VBA-Skript, das du verwenden kannst:

Sub ZeichenErsetzen()
    Selection.Replace What:="|", Replacement:="""", LookAt:=xlPart
End Sub

Wenn das Ersetzen durch nichts erfolgen soll, kannst du die Replacement-Variable leer lassen:

Selection.Replace What:="|", Replacement:="", LookAt:=xlPart

Das kann hilfreich sein, wenn du beispielsweise senkrechte Striche entfernen möchtest.


Praktische Beispiele

  1. Ersetzen von senkrechten Strichen durch Anführungszeichen:

    • Verwende die oben genannten Schritte, um | durch " zu ersetzen.
  2. Ersetzen von Text in Formeln:

    • Wenn du die Formel =WENN(K9=|-- Fremd --|;M13&| ZA|;K10) hast, achte darauf, dass du die Anführungszeichen richtig setzt: Replacement:="""""".
  3. VBA für spezielle Ersetzungen:

    • Ersetze mehrere Zeichen oder formatiere Text mithilfe von VBA, um eine effizientere Lösung zu finden.

Tipps für Profis

  • Nutze Chr(124) und Chr(34) im VBA, um Zeichen durch ihren ASCII-Wert zu ersetzen. Beispiel:

    Selection.Replace What:=Chr(124), Replacement:=Chr(34)
  • Prüfe die Excel-Optionen, um sicherzustellen, dass Makros aktiviert sind, falls du VBA verwendest. Wenn VBA-Verweise ausgegraut sind, könnte dies ein Hinweis auf fehlende Bibliotheken sein.

  • Bei komplexen Ersetzungen kann es hilfreich sein, eine Sicherungskopie deiner Datei zu machen, bevor du Massenänderungen vornimmst.


FAQ: Häufige Fragen

1. Warum funktioniert die Suchen und Ersetzen-Funktion nicht?
Es kann an der Formatierung der Zellen liegen. Stellen sicher, dass die Zellen als Text formatiert sind.

2. Wie kann ich mehrere Zeichen gleichzeitig ersetzen?
Du kannst ein VBA-Skript verwenden, um mehrere Ersetzungen in einem Durchgang vorzunehmen. Diese Methode ist effizienter, wenn du mehrere Ersetzungen gleichzeitig durchführen möchtest.

3. Was mache ich, wenn Excel die Ersetzungen in Formeln ignoriert?
In Formeln müssen Anführungszeichen doppelt eingegeben werden, um korrekt erkannt zu werden. Achte darauf, dies zu berücksichtigen.

4. Wie entferne ich einen Text komplett?
Gib im Feld Ersetzen durch einfach nichts ein, um den Text zu entfernen.

5. Warum funktioniert die Suche in Excel nicht?
Überprüfe, ob Filter oder andere Einschränkungen aktiv sind, die die Sichtbarkeit der Zellen beeinflussen.

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