Hallo liebe VBA Profis,
in Excel habe ich eine Reihe von Textfeldern, die u.a. verschiedene Formeln enthalten. Diese Textfelder enthalten ganz am Anfang den Platzhalter <#> welcher, nachdem eine Reihenfolge festgelegt wurden, mit der entsprechenden Nummerierung ersetzt werden soll.
Beispiel: Es gibt Textfeld1, Textfeld2 und Textfeld3 die alle mit <#> beginnen. Jetzt wird festgelegt, dass man mit Textfeld2 beginnen möchte (<#> soll durch 1. ersetzte werden), anschließend kommt Textfeld3 (<#> = 2.) und dann noch Textfeld1 (<#> = 3.).
Textfeld1:
Textfeld2:
Textfeld3:
Soll umgewandelt werden in:
Textfeld2:
Textfeld3:
Textfeld1:
Mit dem folgendem Code schaffe ich es meinen Platzhalter <#> mit einer Nummerierung (zur Vereinfachung alles noch mit Konstanten) zu ersetzen indem ich den Inhalt der Textbox komplett auslese, die Ersetzung vornehme und den Inhalt wieder reinschreibe. Dadurch geht nur leider die Formatierung der Formel verloren..
Sub TextfelderNummerieren()
ActiveSheet.Shapes.Range(Array("TextBox 1")).Select
Inhalt = Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text
Inhalt = Replace(Inhalt, "<1>", "1.")
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = Inhalt
End Sub
Ergebnis:
Wie ihr seht ist das ganze Verfahren schon ein work around und ich verzweifel einfach an dieser Kombination aus Textfeld und Formel.
Habt ihr einen Tipp für mich?
Besten Dank
Janek
|