Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA - Replace in Formeln
#1
Einen schönen Abend miteinander,

ich hadere aktuell mit einem Problem, bei der Fehler sich für mich nicht klar genug stellt um behoben zu werden. Nun hoffe ich, dass jemand von euch eine passende Idee
oder Lösung hat.

Wie in der angehängten Beispieldatei zu sehen ist, greife ich einige Daten über mehrere SVerweise ab. Diese Formeln sollen anschließend im VBA-Code mit der Replace-Variante
gegen fest definierte Strings ausgetauscht werden. Führt man den Sub aus, so funktioniert der Austausch (einfache Zuweisung) in Zelle "K19" problemlos. Das Austauschen innerhalb
der in den Zellen "R19:T19" stehenden SVerweise führt jedoch nicht zum gewünschten Ziel.

Hat jemand eine Idee woran dies liegen kann?

Vielen Dank für eure Hilfe und noch ein schönes restliches Wochenende.

Gruß Bookshelf3011


Angehängte Dateien
.xlsm   Beispieldatei.xlsm (Größe: 13,72 KB / Downloads: 1)
Mit freundlichem Gruß

Bookshelf3011

If it ain't broke ... make it better ...
Antworten Top
#2
So,

nun bin ich durch mehrfache Suche nun doch auf eine Lösung gekommen. Ob es die richtige ist, lässt sich schwer sagen, doch zumindest behebt es mein Problem.
Innerhalb der SVerweise, welche durch den Code ausgetauscht werden sollten, befanden sich logischerweise auch Semikolons. Verwendet man nun mehrere Replaces
und spricht nur die Bereiche zwischen den Semikolons an, so funktioniert alles wie gewollt - scheinbar führen manche Zeichen (in diesem Fall das ";") zu Problemen.

Allen ein schönes restliches Wochenende.

Gruß Bookshelf3011
Mit freundlichem Gruß

Bookshelf3011

If it ain't broke ... make it better ...
Antworten Top
#3
Hallo,

bei der Formula-Eigenschaft wird die englische Schreibweise erwartet, das heißt für die Trennung Parameter wird anstelle vom Semikolon das Komma erwartet. Oder Du verwendest die FormulaLocal-Eigenschaft

Code:
Sub ReplaceFormula_Beta()

Range("K19").Formula = Replace(Range("K19").Formula, "$B3", "$F3")

Range("R19").FormulaLocal = Replace(Range("R19").FormulaLocal, "$K19;$B$3:$E$3;2;FALSCH", "$K19;$F$3:$I$3;2;FALSCH")
Range("S19").FormulaLocal = Replace(Range("S19").FormulaLocal, "$K19;$B$3:$E$3;3;FALSCH", "$K19;$F$3:$I$3;3;FALSCH")
Range("T19").FormulaLocal = Replace(Range("T19").FormulaLocal, "$K19;$B$3:$E$3;4;FALSCH", "$K19;$F$3:$I$3;4;FALSCH")

End Sub

mit dem Nachteil, dass das Makro in anderen Ländern nicht funktioniert, siehe hier.
Gruß Stefan
Win 10 / Office 2016
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste