Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1088to1092
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-Problem per VBA

Suchen/Ersetzen-Problem per VBA
Larsinator
Hallo zusammen,
Ich suche/ersetze per VBA in einer bestimmten Spalte:
Columns(2).Replace What:="test", Replacement:="blubb", LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=True

So weit so gut. Wenn ich jetzt aber zwischendurch händisch per Dialog suche/ersetze und dabei im Dialog "Suchen in Blatt" umstelle auf "Suchen in Arbeitsmappe", dann habe ich beim nächsten ausführen des Makros das Problem, dass nicht mehr nur in der angegeben Spalte ersetzt wird, sondern leider überall.
Ich habe von Replace jetzt keine Option gefunden, dass ich das parametrisieren könnte.
Hat jemand Abhilfe?
Danke schon mal vorab!

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Suchen/Ersetzen-Problem per VBA
21.07.2009 13:52:44
David
Hallo Lars
Die Referenz auf ein bestimmtes Blatt erzeugst du VOR deinem Ausdruck
statt Columns... also
Worksheets(xyz).columns...
Willst du alle Blätter in der Datei abarbeiten, empfielt sich eine For-Each-Schleife.
Gruß
David
Anderes Problem
21.07.2009 14:00:34
Wolli
Nee, lies mal das Problem von Lars genau durch. Für mich sieht das wie ein Bug aus. Man spezifiziert ganz klar "Columns(2)", aber ersetzt wird überall. Das dürfte nicht sein.
Das erinnert mich an Sachen wie die "Range.FindNext"-Methode, wo man einmal etwas spezifiziert und mit jedem Aufruf geht das Maschinchen einen Schritt weiter.
Habe aber keine Lösung und lasse die Frage offen.
Gruß, Wolli
Anzeige
AW: Anderes Problem
21.07.2009 14:05:20
David
Hallo Wolli,
ich denke schon, wenn es eine EINdeutige Referenzierung gibt, sollte das klappen. Ich bin absolut kein VBA-Experte, aber soviel habe ihc mittlerweile schon gelernt.
Aus der VBA-Hilfe:
Beispiel
Anwendung auf das Range-Objekt.
In diesem Beispiel wird jedes Vorkommen der trigonometrischen Funktion SIN durch die Funktion  _
COS ersetzt. Diese Operation ist auf Spalte "A" in Sheet1 beschränkt.
Worksheets("Sheet1").Columns("A").Replace _
What:="SIN", Replacement:="COS", _
SearchOrder:=xlByColumns, MatchCase:=True
Gruß
David
Anzeige
Hilfe, ein Bug
21.07.2009 14:33:01
Larsinator
Hallo David,
danke für Deine Hilfe, aber da muss ich leider auf der Seite von wolli sein.
Genau genommen hab ich in meinem Quellcode sogar den Bezug zum Sheet, habs hier aber der Einfachheit halber weg gelassen.
Fazit: Auch mit dem Sheet stolpert es noch
Der Makrorekorder kriegt die Umstellung auch nicht mit.
Sonst hätte ich wenigstens den aktuellen Zustand abfragen können.
Any idea?
Ja - Replace hat einen Bug !
21.07.2009 17:49:53
Erich
Hi zusammen,
in meinem XL2002 (XP) kann Range.Replace sogar noch mehr.
Hier eine Beispielmappe: https://www.herber.de/bbs/user/63329.xls
Wenn ich zunächst in Excel 'Bearbeiten - Ersetzen - Optionen ... - Suchen: Arbeitsmappe
eine Ersetzung durchführen lase und dann in VBA Range.Replace verwende,
wird nicht nur im angegebenen Bereich geändert, sondern auf allen Blättern,
aber beileibe nicht in allen Zellen! Das hängt wohl auch von der Cursorposition ab...
Stellt mal in der Mappe den Cursor im 2. Blatt auf D5 und lasst dann eine der beiden Routinen laufen.
Bei mir wird dann der Inhalt von Blatt1 angezeigt, aber im Blattregister ist Blatt 2 als aktiv markiert...
Screenshot dazu:
Userbild
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
@Erich
21.07.2009 23:23:12
Jens
Hallo Erich
Mir scheint es so, als ob dieser "Bug" Versionsabhängig ist.
Bei mir funktioniert Deine Bspl-Datei einwandfrei. Weder das Replace noch das von Dir aufgezeigte Problem mit der Tabellen-Anzeige macht bei mir Probleme.
WinXP Pro SP3 (alle Updates aktuell)
XL2003 (11.8169.8172) SP3
Gruß aus dem Sauerland
Jens
Gibt es einen Workaround?
22.07.2009 08:58:51
Larsinator
Hallo zusammen,
ich bin mal so frei und stell meine Frage auf offen.
Ist sie ja auch noch und vielleicht hat ja doch noch jemand eine Idee...
Bug bei Replace-Methode
22.07.2009 09:57:59
Erich
Hi zusammen,
nein, einen Würgaraound ;-)) habe ich jetzt nicht.
Man könnte natürlich den gewünschten Bereich in einer Schleife zellenweise abarbeiten,
evtl. auch mit RegExp, aber das dauerte natürlich länger.
Bei M$ habe ich zu dem Thema nichts gefunden, im (deutschsprachigen) Web nur einen Forumsthread,
in dem aber vermutlich das Problem nicht wirklich erfasst wurde:
http://www.ms-office-forum.net/forum/showthread.php?t=234697
Luschi, danke für die Bestätigung!
Vielleicht weiß noch jemand mehr zum Thema? Ich lasse es offen.
Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Ja - Replace hat einen Bug !
22.07.2009 09:29:34
Luschi
Hallo Erich,
ich habe Excel-XP (2002) mit SP3 und kann/muß Deine 2 Beobachtungen nur bestätigen.
Schon merkwürdig, daß Tabelle1 angezeigt wird, aber Reiter von Tabelle2 aktiv ist.
Gruß von Luschi
aus klein-Paris
auch in xl2007,...
25.07.2009 11:59:45
Tino
Hallo,
wäre schön wenn jemand einen weg findet diesen Dialog zurückzusetzen eine art Reset.
Sonst bleibt noch die Möglichkeit über Suchen die Zellen so lange zu ersetzen bis keine mehr gefunden werden. (Find und Findnext)
Gruß Tino

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige