Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1416to1420
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

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

Anzeige
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

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

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

41 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige