Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Markierten Text in Zelle formatieren

Markierten Text in Zelle formatieren
27.06.2020 09:07:24
Michael
Hallo und guten Tag zusammen,
ich bin gespannt, ob es für meine Problem eine Lösung gibt.
Ich möchte innerhalb einer Zelle Text markieren und dann per Makro eine Formatierung vornehmen. Wenn ich das per Makroaufzeichnung versuche, dann wird entweder immer die ganze Zelle formatiert oder aber genau der eine Text, den ich im Beispiel verwendet habe :(
Das muss doch anders gehen, oder?
Viele Grüße
Michael
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Markierten Text in Zelle formatieren
27.06.2020 09:20:11
Beverly
Hi Michael,
du kannst höchstens vorher vorgeben, welche Buchstabenkombination formatiert werden soll, jedoch nicht, wenn du die Zelle bereits editiert hast und die Buchstabenkombination markiert ist.


AW: Markierten Text in Zelle formatieren
27.06.2020 09:58:06
Michael
Hallo Karin,
danke für die schnelle Antwort.
Das heisst aslo, ich kann den markierten Text in einer Zelle gar nicht auslesen und in irgendeiner Form weiter bearbeiten?
Viele Grüße
Michael
Anzeige
AW: Markierten Text in Zelle formatieren
27.06.2020 10:11:04
Beverly
Hi Michael,
das geht schon:
Sub FettKursiv()
With Selection.Font
.Bold = True
.Italic = True
End With
End Sub
aber das Problem ist, das Makro dann zu starten - du kannst es ja nicht über das Register aufrufen oder mit einer zugewiesenen Tastenkombination. Du müsstest in den VBA-Editor gehen und es dort mit F8 starten, wobei du vorher den Cursor in die Codezeilen setzen musst.


Anzeige
AW: Markierten Text in Zelle formatieren
27.06.2020 10:08:42
Daniel
Hi
Das kann so nicht funktionieren, weil Makros gesperrt sind, sobald du in den Bearbeitungsmodus gehst. Dh. bevor das Makro starten kann, muss erst der Bearbeitungsmodus beendet werden und damit ist die Markierung innerhalb der Zelle weg.
Spontan würde mir nur folgender Workaround einfallen:
1. Du kopierst per STRG+C den markierten Text in die Zwischenablage
2. Das Makro liest den Text aus der Zwischenablage aus, sucht ihn in der Markierten Zelle (ermittelt die Position) und führt dann die Markierung durch.
Es sollte im WWW genügend Beispiele geben, wie man Text aus der Zwischenablage ausliest.
Gruß Daniel
Anzeige
AW: Markierten Text in Zelle formatieren
27.06.2020 13:12:43
Daniel
Hi
noch ne Variante, wie gesagt, dass Problem ist, wenn du in die Zelle hinein geklickt hast, ist VBA gesperrt. Die Methode von Beverly funktioniert bei mir (Excel 2010) auch nicht, weil ich dann den VBA-Editor gar nicht erst aktivieren kann.
folgendes geht:
1. erstelle auf dem Blatt eine Textbox und einen Commandbutton.
2. füge im Modul des Tabellenblatts folgende zwei Makros hinzu:
das Selection-Change-Marko verknüpft die Textbox mit der aktiven Zelle, so dass der Inhalt der Aktiven Zelle in der Textbox erscheint.
Dann markierst du den Text in der Textbox und klickst dann auf den Button um die Färbung durchzuführen.
Der Buttoncode schaut, was in der Textbox selektiert ist und färbt dann diesen Text in der _ Zelle.

Private Sub CommandButton1_Click()
Dim L As Long, P As Long
With TextBox1
L = .SelLength
P = .SelStart + 1
End With
If L > 0 Then
With ActiveCell.Characters(P, L)
.Font.Bold = True
.Font.Color = vbRed
End With
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
TextBox1.LinkedCell = ActiveCell.Address
End Sub

Gruß Daniel
Anzeige
AW: Markierten Text in Zelle formatieren
27.06.2020 14:57:03
Beverly
@Daniel,
meine Variante funktioniert nur dann, wenn der VBA-Editor bereits gestartet wurde, weil man dann zum VBA-Editor wechseln kann - vielleicht geht das auch in Excel2010.
@Michael,
ich würde den zu formatierenden Teil-Text einfach in eine Zelle (z.B. C3) schreiben - dann kannst du ihn mit folgendem Makro deinen Wünschen entsprechend bearbeiten:
Sub FettKursiv()
Dim lngZaehler As Long
For lngZaehler = 1 To Len(ActiveCell) - Len(Range("C3")) + 1
If Mid(ActiveCell, lngZaehler, Len(Range("C3"))) = Range("C3") Then
With ActiveCell.Characters(lngZaehler, Len(Range("C3"))).Font
.Bold = True
.Italic = True
End With
Exit For
End If
Next lngZaehler
End Sub


Anzeige
AW: Markierten Text in Zelle formatieren
27.06.2020 15:08:58
Daniel
Hi
Naja der Editor war natürlich geöffnet, weil ich ja das Makro schreiben musste.
Tut aber nicht, wenn man in der Bearbeitungszeile drin ist, ist ein Wechsel nicht möglich.
Mit welcher Version arbeitest du?
Gruß Daniel
AW: Markierten Text in Zelle formatieren
27.06.2020 21:03:29
Beverly
Hi,
ich arbeite mit Excel2016, aber mit Alt+Tab solltest du auch bei Excel2010 zum VBA-Editor gelangen.


Anzeige
AW: Markierten Text in Zelle formatieren
28.06.2020 13:33:59
Daniel
tatsächlich es geht.
Das ist zwar jetzt nicht besonders komfortabel (einem Anwender würde ich das nicht zumuten wollen), aber es funktioniert, auch mit Excel 2010 (in Windows 10)
Allerdings habe ich noch eine Einschränkung festgestellt:
bei mir funktioniert das nur für bestimmte Formate.
Wenn ich diesen Code auf die beschriebene Weise ausführe:
Sub test()
With Selection.Font
.Bold = True
.Underline = True
.Strikethrough = True
.Color = vbRed
End With
End Sub

dann werden nur die ersten drei Formate ausgeführt (Fett, unter- und durchgestrichen), die Farbe bleibt.
Wendet man den Code auf die ganze Zelle an, dann wird auch die Farbe geändert, beim Formatieren eines Teiltextes jedoch nicht.
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Markierten Text in Zelle formatieren


Schritt-für-Schritt-Anleitung

Um markierten Text in einer Zelle zu formatieren, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor:

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

    • Klicke mit der rechten Maustaste auf einen beliebigen Eintrag im Projekt-Explorer und wähle Einfügen > Modul.
  3. Füge den folgenden Code ein:

    Sub FettKursiv()
       With Selection.Font
           .Bold = True
           .Italic = True
       End With
    End Sub
  4. Schließe den VBA-Editor und wechsle zurück zu deinem Excel-Dokument.

  5. Markiere den Text in der Zelle, den du formatieren möchtest.

  6. Starte das Makro:

    • Gehe wieder in den VBA-Editor, platziere den Cursor im Code und drücke F5, um das Makro auszuführen.

Häufige Fehler und Lösungen

  • Problem: Das Makro funktioniert nicht, wenn der Bearbeitungsmodus aktiv ist.

    • Lösung: Beende den Bearbeitungsmodus, bevor du das Makro startest.
  • Problem: Der gesamte Zellinhalt wird formatiert.

    • Lösung: Stelle sicher, dass du den gewünschten Text in der Zelle markiert hast, bevor du das Makro ausführst.

Alternative Methoden

Falls du nicht mit Makros arbeiten möchtest, gibt es alternative Methoden, um Text zu formatieren:

  1. Textbox und Commandbutton:

    • Erstelle eine Textbox und einen Button auf deinem Arbeitsblatt. Der Benutzer kann den Text in der Textbox markieren und auf den Button klicken, um die Formatierung anzuwenden. Hier ist ein Beispielcode:
    Private Sub CommandButton1_Click()
       Dim L As Long, P As Long
       With TextBox1
           L = .SelLength
           P = .SelStart + 1
       End With
       If L > 0 Then
           With ActiveCell.Characters(P, L).Font
               .Bold = True
               .Color = vbRed
           End With
       End If
    End Sub
  2. Verwendung von Formeln:

    • Du kannst auch spezifische Teile deines Textes in einer separaten Zelle formatieren und dann in die Hauptzelle verlinken.

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du den markierten Text in einer Zelle formatieren kannst:

  • Beispiel 1: Text als fett und kursiv formatieren:

    Sub FettKursiv()
      With Selection.Font
          .Bold = True
          .Italic = True
      End With
    End Sub
  • Beispiel 2: Text hervorheben in Rot:

    Sub TextHervorheben()
      With Selection.Font
          .Color = vbRed
      End With
    End Sub

Du kannst diese Beispiele direkt in deinen VBA-Editor einfügen und anpassen.


Tipps für Profis

  • Makros anpassen: Experimentiere mit verschiedenen Schriftarten und -größen, um den Text hervorzuheben.
  • Tastenkombinationen: Weise deinen Makros Tastenkombinationen zu, um die Ausführung zu beschleunigen.
  • Fehlerbehebung: Wenn ein Makro nicht wie erwartet funktioniert, überprüfe den Code auf Tippfehler und stelle sicher, dass die richtigen Zellen ausgewählt sind.

FAQ: Häufige Fragen

1. Frage
Kann ich den markierten Text in einer Zelle auch ohne VBA formatieren?
Antwort: Ja, du kannst das über die Formatierungsoptionen in Excel tun, jedoch kannst du nicht spezifische Teile des Textes direkt in einer Zelle formatieren.

2. Frage
Welche Excel-Versionen unterstützen dieses VBA-Skript?
Antwort: Die beschriebenen Methoden funktionieren in Excel 2010 und späteren Versionen, einschließlich Excel 2016.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige