Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Formatierung behalten trotz ersetzen

Forumthread: Formatierung behalten trotz ersetzen

Formatierung behalten trotz ersetzen
12.02.2008 09:26:00
Bernhard
Hallo,
ich habe folgendes Problem. Ich habe ein Excel, wo in einer Zelle der Text teilweise formatiert ist.
(sprich: schriftgröße geändert von einzelnen Wörtern, manche Fett, manche Rot usw.)
Nun muss ich aber im Excel eine Ersetzung von manchen Wörtern machen, dabei jedoch verliert jede Zelle wo ich eine Ersetzung machen muss ihre "Formatierung".
Weiß jemand wie ich etwas ersetzen kann ohne das die Formatierung verloren geht?
danke
Bernhard

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formatierung behalten trotz ersetzen
12.02.2008 11:09:00
Renee
Hi Bernhard,
Nur mit VBA und sehr, sehr aufwändig. Excel ist nun leider mal nicht für Textverarbeitung oder Desktop-Publishing geeignet. Eine Idee wäre: Sheet als HTML abspeichern, Ersetzung im HTML-Datei und re-import in die Tabelle. Aber ich bin mir nicht sicher, ob das den Aufwand Wert ist.
GreetZ Renée

Anzeige
AW: Formatierung behalten trotz ersetzen
12.02.2008 11:23:55
Bernhard
Kannst du mir einen Tipp geben, wie ich dies mittels VBA machen könnte?
Ich mein welche Befehle behalten die Formatierung bei .. währe sehr wichtig für mich.

AW: Formatierung behalten trotz ersetzen
12.02.2008 11:43:00
Renee
Hi Bernhard,
Es gibt keine Befehle welche die Formatierung beibehalten!
Du musst innerhalb der Text-Eigenschaft Wort für Wort analysieren und ggf. Formatieren!
z.B. mit:

With ActiveCell.Characters(Start:=15, Length:=8).Font


könntest du ab Zeichen 15 in der Länge von 8 die Font Eigenschaften wie .FontStyle, .Size, .ColorIndex etc. verändern.
GreetZ Renée

Anzeige
AW: Formatierung behalten trotz ersetzen
12.02.2008 12:10:00
Bernhard
Hi,
ok das ich ein Wort formatieren kann funktioniert nun .. nur weiß ich noch nicht genau wie ich herausfinde ob ein Wort eine Formatierung hat. Kann ich das im VBA irgendwie abfragen?
Wenn in einer Zelle steht:
Normaleswort ZeichenWasErsetzWird FETTESWORT Normaleswort
Das ich im VBA ermitteln kann welches Wort eine Formatierung hat. Und dann den String zb auslese und im VBA das wieder zusammenstückel.
Auslesen vom String hätte ich auch, zusammenstückeln auch, wie gesagt ich würde nur einen Befehl benötigen welcher mir die Formatierung zurückliefert (wenn eine vorhanden).
Weißt du da noch was?
DAnke schon mal jetzt!
Anzeige
;
Anzeige

Infobox / Tutorial

Formatierung in Excel beibehalten beim Ersetzen von Text


Schritt-für-Schritt-Anleitung

Um die Formatierung in Excel zu behalten, während du bestimmte Wörter ersetzt, kannst du VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeineExcelDatei)" und wähle Einfügen > Modul.
  3. Erstelle das VBA-Skript:

    • Kopiere den folgenden Code in das Modul:
    Sub ReplaceTextKeepFormatting()
       Dim cell As Range
       Dim i As Integer
       Dim text As String
       Dim oldWord As String
       Dim newWord As String
    
       oldWord = "alterText" ' Wort, das ersetzt werden soll
       newWord = "neuerText" ' neues Wort
    
       For Each cell In Selection
           text = cell.Value
           For i = 1 To Len(text)
               If Mid(text, i, Len(oldWord)) = oldWord Then
                   ' Formatierung sichern
                   Dim startPos As Long
                   startPos = i
                   Dim charLength As Long
                   charLength = Len(oldWord)
    
                   ' Ersetze Text und behalte Formatierung
                   cell.Characters(startPos, charLength).Text = newWord
               End If
           Next i
       Next cell
    End Sub
  4. Markiere die Zellen:

    • Wähle die Zellen aus, in denen du den Text ersetzen möchtest.
  5. Führe das Skript aus:

    • Drücke F5 oder gehe zu Run > Run Sub/UserForm, um das Skript auszuführen.

Häufige Fehler und Lösungen

  • Fehler: "Typen sind inkompatibel"
    Lösung: Stelle sicher, dass die Variablen korrekt deklariert sind und die richtigen Datentypen verwenden.

  • Fehler: "Zelle ist leer"
    Lösung: Überprüfe, ob du Zellen ohne Inhalt ausgewählt hast. Das Skript funktioniert nur für Zellen mit Text.


Alternative Methoden

Eine alternative Methode, um die Formatierung in Excel zu behalten, ist das Speichern der Datei als HTML und die Ersetzung dort vorzunehmen:

  1. Speichere dein Arbeitsblatt als HTML:

    • Gehe zu Datei > Speichern unter und wähle das Format Webseite (*.htm; *.html).
  2. Ersetze den Text im HTML:

    • Öffne die HTML-Datei in einem Texteditor und führe die Ersetzung durch.
  3. Importiere die HTML-Datei zurück in Excel:

    • Öffne die HTML-Datei in Excel, um die formatierte Tabelle wiederherzustellen.

Praktische Beispiele

Angenommen, du hast eine Zelle mit folgendem Text: "Das ist ein FETTESWORT und der Rest ist normal." Mit dem obigen VBA-Skript kannst du das Wort "FETTESWORT" durch "NEUESWORT" ersetzen, ohne die Formatierung des restlichen Textes zu verlieren.


Tipps für Profis

  • Verwende Debug.Print: Nutze Debug.Print im VBA-Code, um Zwischenergebnisse in das Direktfenster zu schreiben und deine Logik zu überprüfen.

  • Arbeite mit Find und Replace: Du kannst auch die Methoden Find und Replace in Excel verwenden, um effizienter nach Text zu suchen und ihn zu ersetzen.


FAQ: Häufige Fragen

1. Wie kann ich prüfen, ob ein Wort formatiert ist?
Du kannst die Eigenschaften wie .Bold, .Italic oder .ColorIndex im VBA verwenden, um die Formatierung eines bestimmten Zeichens abzufragen.

2. Ist VBA die einzige Möglichkeit, die Formatierung beizubehalten?
Für einfache Ersetzungen ist VBA die effektivste Methode. Alternative Methoden wie das Arbeiten mit HTML sind jedoch ebenfalls möglich, erfordern jedoch mehr Aufwand.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige