Auslesen des Text-Teils mit einer bestimmten Farbe

In jeder Zelle sind gewisse Text-Stellen rot markiert.

Gibt es eine Möglichkeit, mittels VBA diese Texte auszulesen?

In jeder Zelle sind gewisse Text-Stellen rot markiert.

Gibt es eine Möglichkeit, mittels VBA diese Texte auszulesen?

Hallo,
natürlich geht das. Man kann jede Zelle adressieren: [Sheets(„name“).]Cells(row,col) (row, col sind Variable, row vom Typ Long!). Von der Zelle kann man Eigenschaften abfragen, z.B. Interior.ColorIndex (Rot=3)oder auch Interior.Color (=RGB-Wert). Also
If Cells(row,col).Interior.ColorIndex = 3 Then …
Ein kleiner Tipp: mache einen Makromitschnitt z.B. von einer Farbzuweisung und schaue Dir den Code an.
Viel Erfolg
Rainer

was meinst du mit „auslesen“?
hier mein vorschlag:

Sub Makro1()
For Each zelle In ActiveSheet.UsedRange
For i = 1 To Len(zelle.Text)
If zelle.Characters(i, 1).Font.ColorIndex = 3 Then
MsgBox zelle 'oder anders auslesen
Exit For
End If
Next i
Next zelle
End Sub

viel erfolg und herzliche grüße

sieht plausibel aus; herzlichen Dank!

In jeder Zelle sind gewisse Text-Stellen rot markiert.

Gibt es eine Möglichkeit, mittels VBA diese Texte auszulesen?

Hallo Bert, es tut mir leid, aber ich bin doch eigentlich die, die hier Hilfe sucht - ich bin lausiger Anfänger und kann Dir nicht helfen.
Einen netten Gruß von Bildschirm zu Bildschirm

Hallo Bert Leu,

Versuchs mal damit…
Ist noch ausbaufähig.

Zelle-A1 mit ‚Rot‘ färben und einen Text hinein schreiben z.B. ‚Hallo‘.
Danach in ein neues Modul folgendes VBA-Script schreiben:

Sub FarbeAbfragen()
Dim Wert1 As String
Cells(1, 1).Select
Select Case Cells(1, 1)
Case Else
Wert1 = ActiveCell.Value
MsgBox Wert1
End Select
End Sub

Es erscheint in der Msgbox nun die Meldung mit ‚Hallo‘.

mfg Softoldi

In jeder Zelle sind gewisse Text-Stellen rot markiert.

Gibt es eine Möglichkeit, mittels VBA diese Texte auszulesen?

Hallo Bert Leu,

dazu fällt mir leider keine Lösung ein.
Wenn es die ganze Zelle wäre die Rot hinterlegt ist,
könnte ich mir eher eine Lösung einfallen.

Guß Hugo

Ja. Folgendes Makro liest alle nicht schwarzen Texte in Zelle A1 aus und schreibt das Ergebnis in Zelle A3:

Sub Nicht_Schwarzen_Text_ausgeben()
[a1].Select
länge = Len(ActiveCell.Value)
For i = 1 To länge
If ActiveCell.Characters(Start:=i, Length:=1).Font.Color 0 Then
inhalt = inhalt & ActiveCell.Characters(Start:=i, Length:=1).Text
End If
Next i
[a3].Value = inhalt
End Sub

Hi Natator. Super. Herzlichen Dank!

Grüezi Bert

In jeder Zelle sind gewisse Text-Stellen rot markiert.

Gibt es eine Möglichkeit, mittels VBA diese Texte auszulesen?

Gehe ich recht in der Annahme, dass die Frage bereits beantwortet ist?

Falls nicht, dann in einer Schleife mit Mid() jedes einzelne Zeichen des Textes durchlaufen und auf die Farbe prüfen. Wenn die Farbe der gesuchten entspricht, dann dieses Zeichen wegschreiben und mit dem nächsten weiterfahren.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

good morning

Ja da würde es eine möglichekit geben , die Zeilen zu kontrollieren mit einer If funktion. Was möchtest du denn mit dem Inhalt machen? Möchtest du es in eine andere Zelle oder oder andere Datei rein kopieren ?
Ein bisschen mehr Info wäre gut, dann könnt ich dir ein paar Zeilen für dein Programm schreiben.

MFG

In jeder Zelle sind gewisse Text-Stellen rot markiert.

Gibt es eine Möglichkeit, mittels VBA diese Texte auszulesen?

versuch es mal auf diese Weise:

Sub color()

’ Makro4 Makro
’ Makro am 21.10.2011 von KI aufgezeichnet

Worksheets(„Tabelle2“).Activate
Range(„A1:B3“).Select
With Selection.Interior
.ColorIndex = 4
If .ColorIndex = 4 Then
MsgBox („ok“)
Else: MsgBox („nicht ok“)
End If
.Pattern = xlSolid
End With

Range(„b2:c7“).Select
Selection.Font.ColorIndex = 3

End Sub

Sub main()
color
End Sub

Gruß

plattmops

In jeder Zelle sind gewisse Text-Stellen rot markiert.

Gibt es eine Möglichkeit, mittels VBA diese Texte auszulesen?

hallo,

Ich hatte vor einem Jahr genau das selbe Problem. Und auch nach intensiver Recherche keine Möglichkeit gefunden. Falls du doch noch eine findest, dann gib doch bitte Bescheid.

Lg OVM

In jeder Zelle sind gewisse Text-Stellen rot markiert.

Gibt es eine Möglichkeit, mittels VBA diese Texte auszulesen?

Re: Auslesen des Text-Teils mit einer bestimmten Farbe
von Natator , 20.10.2011 20:20 (1)

Ja. Folgendes Makro liest alle nicht schwarzen Texte in Zelle A1 aus und schreibt das Ergebnis in Zelle A3:

Sub Nicht_Schwarzen_Text_ausgeben()
[a1].Select
länge = Len(ActiveCell.Value)
For i = 1 To länge
If ActiveCell.Characters(Start:=i, Length:=1).Font.Color 0 Then
inhalt = inhalt & ActiveCell.Characters(Start:=i, Length:=1).Text
End If
Next i
[a3].Value = inhalt
End Sub

Thx

mit farben auslesen

Hallo Bert,

den Code der nachfolgenden benutzerdefinierten Funktion fügst du im VBA-Editor in der Datei in ein allgemeines Modul ein. ggf. zuerst ein allg. Modul einfügen.

Danach kannst du die Funktion „FarbigerText“ wie andere Excelfunktionen in den Tabellen benutzen.

Gruß
Franz

'Erstellt unter Excel 2007
Public Function FarbigerText(Zelle As Range, Optional Farbe As Long = 255) As String
 'Extrahiert aus dem Text in der Zelle den den Text in der angegebenen Farbe
 Dim lngIndex As Long
 'Farbe = Color-Wert der Font-Farbe - 255 = rot
 For lngIndex = 1 To Len(Zelle.Text)
 If Zelle.Characters(lngIndex, 1).Font.Color = Farbe Then
 FarbigerText = FarbigerText & Zelle.Characters(lngIndex, 1).Text
 End If
 Next
 FarbigerText = Trim(FarbigerText)
End Function

Hallo Bert.

Mit u.a. Makro kannst Du die Passagen auslesen.
Ich habe mal als beispiel die Zellen A1 und B1 mit Text versehen und Teile darin rot markiert.
Mit diesem Makro kannst Du den roten Text extrahieren

  • er wird in den Zellen A2 und B2 ausgegeben.

Gruß,
Ptonka

Sub Schriftfarbe_erkennen()
For i = 1 To 3
Länge = Len(Cells(i, 1).Value)
Cells(i, 1).Select

For j = 1 To Länge
wert1 = Mid(Cells(i, 1).Value, j, 1)
Farbe = ActiveCell.Characters(Start:=j, Length:=1).Font.ColorIndex
Select Case Farbe
Case Is = 3
Wert2 = Wert2 & wert1
Cells(i, 2).Value = Wert2
End Select
Next j
Wert2 = „“
Next i
End Sub

In jeder Zelle sind gewisse Text-Stellen rot markiert.

Gibt es eine Möglichkeit, mittels VBA diese Texte auszulesen?