Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Einzelne Wörter in Zelle markieren

Einzelne Wörter in Zelle markieren
14.12.2020 12:37:47
HomoFaber
Guten Tag,
Ich brauche bei folgendem Szenario Hilfe:
Ich führe eine bibliometrische Analyse für eine wissenschaftliche Arbeit durch und habe ca. 6000 Artikel aus einer Datenbank ausgeleitet. In einer Spalte befinden sich die jeweiligen Abstracts des Artikels.
Ich möchte nun bestimmte Keywords innerhalb der Abstracts hervorheben (z.B. dick) um besser mit der Datei arbeiten zu können. Mir ist bewusst, dass ich dafür sicherlich einen VBA-Code schreiben muss, allerdings finde ich keine Hilfe dazu.
Liebe Grüße und vielen Dank!
Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einzelne Wörter in Zelle markieren
14.12.2020 12:44:49
SF
Hola,
verlinkst du bitte deine Fragen in den verschiedenen Foren gegenseitig?
Danke.
Gruß,
steve1da
AW: Einzelne Wörter in Zelle markieren
14.12.2020 12:45:50
Nepumuk
Hallo,
welche Spalte welches Keyword?
Gruß
Nepumuk
AW: Einzelne Wörter in Zelle markieren
14.12.2020 13:28:45
Nepumuk
Hallo,
die Spalte und die Startzeile musst du dir selber anpassen:
Option Explicit

Public Sub Test()
    
    Dim objRegEx As Object, objMatch As Object
    Dim objCell As Range
    Dim strText As String
    Dim lngIndex As Long
    
    strText = InputBox("Bitte Keyword eingeben.", "Eingabe")
    
    If StrPtr(strText) <> 0 And Trim$(strText) <> vbNullString Then
        
        strText = Trim$(strText)
        
        Set objRegEx = CreateObject("VBScript.RegExp")
        
        With objRegEx
            
            .Global = True
            .IgnoreCase = True
            .Pattern = strText
            
            For Each objCell In Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp)) 'Spalte 1 ab Zeile 2
                
                objCell.Font.Bold = False
                
                Set objMatch = .Execute(objCell.Text)
                
                For lngIndex = 0 To objMatch.Count - 1
                    
                    With objCell.Characters(objMatch.Item(lngIndex).FirstIndex + 1, _
                            objMatch.Item(lngIndex).Length).Font
                        
                        .Bold = True
                        .Color = vbRed
                        
                    End With
                Next
            Next
        End With
    End If
    
    Set objMatch = Nothing
    Set objRegEx = Nothing
    
End Sub

Gruß
Nepumuk
Anzeige
AW: Einzelne Wörter in Zelle markieren
14.12.2020 15:34:38
HomoFaber
Hallo Nepumuk,
Vielen Dank für den Code - er scheint zu funktionieren, allerdings treffe ich mein Ziel nicht.
Es handelt sich dabei um ca. 20 Keywords, die in Spalte K von Zeile 3 bis Zeile 6000 vorkommen.
1.) Kann ich die Anzahl der Keywords im Code vergrößern ohne dass ich sie manuell eingeben muss? (Auch wenn es mega praktisch ist) :-D
2.) Wie treffe ich meine Spalte K?
Vielen Dank - mega nett!!!
Anzeige
AW: Einzelne Wörter in Zelle markieren
14.12.2020 15:39:33
Nepumuk
Hallo,
stehen die Keywords irgendwo in der Tabelle, oder sollen die im Code hinterlegt werden?
Gruß
Nepumuk
AW: Einzelne Wörter in Zelle markieren
14.12.2020 15:41:38
HomoFaber
Hallo Nepumuk, die Keywords stehen in der Tabelle M2 bis BA2 :-)
AW: Einzelne Wörter in Zelle markieren
14.12.2020 15:54:52
Nepumuk
Hallo,
dann so:
Option Explicit

Public Sub SetFontColorKeywordcells()
    
    Dim objRegEx As Object, objMatch As Object
    Dim objValueCell As Range, objKeywordCell As Range
    Dim lngIndex As Long
    
    With Range(Cells(2, 11), Cells(Rows.Count, 11).End(xlUp)).Font
        
        .Bold = False
        .Color = vbBlack
        
    End With
    
    Set objRegEx = CreateObject("VBScript.RegExp")
    
    With objRegEx
        
        .Global = True
        .IgnoreCase = True
        
        For Each objKeywordCell In Range(Cells(2, 13), Cells(2, Columns.Count).End(xlToLeft))
            
            .Pattern = objKeywordCell.Text
            
            For Each objValueCell In Range(Cells(2, 11), Cells(Rows.Count, 11).End(xlUp))
                
                Set objMatch = .Execute(objValueCell.Text)
                
                For lngIndex = 0 To objMatch.Count - 1
                    
                    With objValueCell.Characters(objMatch.Item(lngIndex).FirstIndex + 1, _
                            objMatch.Item(lngIndex).Length).Font
                        
                        .Bold = True
                        .Color = vbRed
                        
                    End With
                Next
            Next
        Next
    End With
    
    Set objMatch = Nothing
    Set objRegEx = Nothing
    
End Sub

Eine Erweiterung der Keyword-Liste wird automatisch verarbeitet wenn du das Makro aufrufst.
Gruß
Nepumuk
Anzeige
AW: Einzelne Wörter in Zelle markieren
14.12.2020 16:24:02
HomoFaber
Lieber Nepumuk,
Ich würde sagen - das ist wahre Magie!
Vielen Dank für deine Hilfe - das hat meinen Tag um einiges schöner gemacht!!!
Besten Gruß!!
AW: Beispiledatei
14.12.2020 12:46:07
Fennek
Hallo,
eine Beispieldatei sollte in Blatt 1 einige (wenige) Abstracts, in Blatt 2 Spalte A die Liste der Keywords enthalten. Es ist viel einfacher in Blatt 1, Spalte B die keywords auszugeben, die in Spalte A gefunden wurden, als die keywords farblich oder mit Formaten anzuzeigen.
mfg
(es könnte auch mit einer Matrix-Formel zu bearbeiten sein)
Anzeige
AW: Einzelne Wörter in Zelle markieren
14.12.2020 13:15:20
JoWE
Hi,
vllt. so:
(wenn der Text "dick" z.B.in einer Zelle oder mehrerer Zellen der Spalte A1 - A99 enthalten wäre)
Sub test()
sb = "dick"
l = Len(sb)
For ze = 2 To 99
t = InStr(1, Cells(ze, 1), "dick")
With Cells(ze, 1).Characters(Start:=t, Length:=l).Font
.FontStyle = "Bold"
.Color = RGB(255, 0, 0)
.Color = vbRed
End With
Next
End Sub

Gruß
Jochen
Anzeige
AW: Einzelne Wörter in Zelle markieren
14.12.2020 14:54:26
HomoFaber
Hallo Jochen,
Vielen Dank für deine Antwort.
Wenn sich der Text entsprechend in Spalte 11 und von Zeile 2 bis Zeile 600 befinden würde - wie müsste ich das dann anpassen?
Ich kann die Formel leider nicht lesen...
Vielen dDank!
AW: Einzelne Wörter in Zelle markieren
14.12.2020 15:12:02
JoWE

Sub test()
sb = "dick"
l = Len(sb)
For ze = 2 To 600
t = InStr(1, Cells(ze, 11), "dick")
With Cells(ze, 1).Characters(Start:=t, Length:=l).Font
.FontStyle = "Bold"
'.Color = RGB(255, 0, 0)
.Color = vbRed
End With
Next
End Sub

Anzeige
AW: Einzelne Wörter in Zelle markieren
14.12.2020 15:21:17
HomoFaber
Hallo Jochen,
Damit werden die ersten 11 Ziffern in Spalte A jeweils dick und rot geschrieben, aber das nicht die Spalte 11 in den Zeilen 2 bis 600 nach entsprechenden Keyword durchsucht...
AW: Einzelne Wörter in Zelle markieren
14.12.2020 15:53:24
JoWE
ja stimmt, kleiner Fehler:
Sub test()
sb = "dick"
l = Len(sb)
For ze = 2 To 600
t = InStr(1, Cells(ze, 11), "dick")
With Cells(ze, 11).Characters(Start:=t, Length:=l).Font
.FontStyle = "Bold"
'.Color = RGB(255, 0, 0)
.Color = vbRed
End With
Next
End Sub
Sorry
Jochen
Anzeige
AW: Einzelne Wörter in Zelle markieren
14.12.2020 14:55:11
HomoFaber
Hallo Jochen,
Vielen Dank für deine Antwort.
Wenn sich der Text entsprechend in Spalte 11 und von Zeile 2 bis Zeile 600 befinden würde - wie müsste ich das dann anpassen?
Ich kann die Formel leider nicht lesen...
Vielen dDank!
;

Forumthreads zu verwandten Themen

Anzeige
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

Einzelne Wörter in Zelle farbig markieren


Schritt-für-Schritt-Anleitung

Um einzelne Wörter in einer Excel-Zelle farbig zu markieren, kannst du einen VBA-Code verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, wie du dies umsetzen kannst:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden VBA-Code in das Modul ein:

    Public Sub SetFontColorKeywordcells()
       Dim objRegEx As Object, objMatch As Object
       Dim objValueCell As Range, objKeywordCell As Range
       Dim lngIndex As Long
    
       With Range(Cells(2, 11), Cells(Rows.Count, 11).End(xlUp)).Font
           .Bold = False
           .Color = vbBlack
       End With
    
       Set objRegEx = CreateObject("VBScript.RegExp")
    
       With objRegEx
           .Global = True
           .IgnoreCase = True
           For Each objKeywordCell In Range(Cells(2, 13), Cells(2, Columns.Count).End(xlToLeft))
               .Pattern = objKeywordCell.Text
               For Each objValueCell In Range(Cells(2, 11), Cells(Rows.Count, 11).End(xlUp))
                   Set objMatch = .Execute(objValueCell.Text)
                   For lngIndex = 0 To objMatch.Count - 1
                       With objValueCell.Characters(objMatch.Item(lngIndex).FirstIndex + 1, objMatch.Item(lngIndex).Length).Font
                           .Bold = True
                           .Color = vbRed
                       End With
                   Next
               Next
           Next
       End With
    
       Set objMatch = Nothing
       Set objRegEx = Nothing
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Um das Makro auszuführen, drücke ALT + F8, wähle SetFontColorKeywordcells und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler beim Ausführen des Makros: Stelle sicher, dass du die richtigen Spalten und Zeilen in deinem VBA-Code definiert hast.
  • Wörter werden nicht farbig markiert: Überprüfe, dass die Keywords in der richtigen Zelle definiert sind und dass die Regex-Pattern korrekt sind.
  • Makro funktioniert nicht in Excel Online: VBA ist nur in der Desktop-Version von Excel verfügbar.

Alternative Methoden

Wenn du keine Makros verwenden möchtest, kannst du auch die bedingte Formatierung nutzen, um bestimmte Wörter hervorzuheben. Hier ist, wie du das machst:

  1. Wähle die Zellen aus, die du formatieren möchtest.

  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.

  3. Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden.

  4. Gib eine Formel ein, die dein Keyword enthält, z.B.:

    =SUCHEN("dick",A1)
  5. Klicke auf Formatieren, wähle deine Formatierung und klicke auf OK.


Praktische Beispiele

Hier sind einige Beispiele, wie du spezifische Wörter in Excel farbig markieren kannst:

  1. Einzelnes Wort suchen und markieren:

    Sub test()
       Dim sb As String
       sb = "dick"
       Dim l As Long
       l = Len(sb)
       For ze = 2 To 600
           t = InStr(1, Cells(ze, 11), sb)
           If t > 0 Then
               With Cells(ze, 11).Characters(Start:=t, Length:=l).Font
                   .Bold = True
                   .Color = vbRed
               End With
           End If
       Next
    End Sub
  2. Mehrere Wörter markieren: Verwende eine Schleife, um über eine Liste von Keywords zu iterieren, wie im vorherigen Abschnitt beschrieben.


Tipps für Profis

  • Wenn du mehrere Wörter markieren möchtest, stelle sicher, dass du die Regex-Pattern richtig anpasst.
  • Experimentiere mit Farbwerten in RGB, um einzigartige Markierungen zu erstellen.
  • Nutze Named Ranges für eine bessere Übersichtlichkeit im VBA-Code, besonders bei umfangreichen Daten.

FAQ: Häufige Fragen

1. Kann ich den VBA-Code anpassen, um mehr als 20 Keywords zu verarbeiten?
Ja, du kannst die Schleife so anpassen, dass sie über eine Liste von Keywords iteriert, die in einem bestimmten Bereich deiner Excel-Datei gespeichert sind.

2. Funktioniert dieser VBA-Code in Excel 365?
Ja, der VBA-Code funktioniert in allen aktuellen Desktop-Versionen von Excel, inklusive Excel 365.

3. Wie kann ich die Schriftgröße der farbig markierten Wörter ändern?
Füge einfach eine Zeile in den With-Block ein, um die Schriftgröße zu ändern, z.B. .Font.Size = 12.

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