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

einzelnen Elemente eines Arrays einfärben

Forumthread: einzelnen Elemente eines Arrays einfärben

einzelnen Elemente eines Arrays einfärben
16.01.2015 10:15:08
Feliks
Hallo Leute,
Ich möchte die einzelnen Elemente eines Arrays einfärben.
Das Array beinhaltet Strings wobei ich die Schriftfarbe ändern möchte.
Danach soll das Array und all seine gefärbten Strings UNTEREINANDER in eine einzelne Zelle geschrieben werden.
Ergebnis sollte so aussehen:
language(0) = invalid (Schriftfarbe vom Element "invalid" soll grün sein)
language(1) = English (Schriftfarbe vom Element "English" soll bspw. rot sein)
language(2) = Dutch (grün)
language(3) = German
language(4) = Japanese
language(5) = Mandarin
Resultat nach Ausführen des JOIN-Befehls z.B. in cell(1,1)
invalid
Englisch
Dutch
German
Japanese
Mandarin
Über einen Hinweis würde ich mich sehr freuen
Lieben Gruß
Feliks

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
die Färbung musst du in den Zellen machen...
16.01.2015 10:41:02
Tino
Hallo,
mir ist nicht bekannt (wäre mir neu) das man in einem Array die Schriftfarbe ändern kann.
Gruß Tino

AW: einzelnen Elemente eines Arrays einfärben
16.01.2015 11:35:38
yummi
Hallo Feliks,
das kannst Du in etwa so machen:

Sub farbe()
Dim language(6) As String
Dim str As String
Dim i As Integer
Dim pos As Integer
language(0) = "invalid"
language(1) = "English"
language(2) = "Dutch"
language(3) = "German"
language(4) = "Japanese"
language(5) = "Mandarin"
For i = 0 To 5
If i  5 Then
str = str & language(i) & vbCrLf
Else
str = str & language(i)
End If
Next i
Cells(1, 1).Value = str
Rows("1:1").Rows.AutoFit
'alles sw färben (muss aber nicht sein)
pos = 1
Cells(1, 1).Characters(Start:=pos, Length:=Len(language(0))).Font.Color = RGB(0, 0, 0)
pos = pos + Len(language(0))
Cells(1, 1).Characters(Start:=pos, Length:=Len(language(1))).Font.Color = RGB(0, 0, 0)
pos = pos + Len(language(1))
Cells(1, 1).Characters(Start:=pos, Length:=Len(language(2))).Font.Color = RGB(0, 0, 0)
pos = pos + Len(language(2))
Cells(1, 1).Characters(Start:=pos, Length:=Len(language(3))).Font.Color = RGB(0, 0, 0)
pos = pos + Len(language(3))
Cells(1, 1).Characters(Start:=pos, Length:=Len(language(4))).Font.Color = RGB(0, 0, 0)
pos = pos + Len(language(4))
Cells(1, 1).Characters(Start:=pos).Font.Color = RGB(0, 0, 0)
pos = pos + Len(language(5))
'ab hier gehts dann los mit färben
pos = 1
Cells(1, 1).Characters(Start:=pos, Length:=Len(language(0))).Font.Color = RGB(0, 255, 0)
pos = pos + Len(language(0)) + 2   '+2 wegen crlf
'MsgBox ">" & Mid(Cells(1, 1).Value, pos, 1) & "" & Mid(Cells(1, 1).Value, pos, 1) & "" & Mid(Cells(1, 1).Value, pos, 1) & "" & Mid(Cells(1, 1).Value, pos, 1) & "" & Mid(Cells(1, 1).Value, pos, 1) & "

Die Farben kannst Du dir ja mixen wie willst du ;-)
Gruß
yummi
Anzeige
;
Anzeige

Infobox / Tutorial

Einzelne Elemente eines Arrays einfärben in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle ein neues Arbeitsblatt.

  2. Aktiviere die Entwicklertools, falls sie nicht sichtbar sind. Gehe zu Datei > Optionen > Menüband anpassen und aktiviere das Kästchen für Entwicklertools.

  3. Öffne den VBA-Editor mit Alt + F11.

  4. Füge ein neues Modul hinzu: Rechtsklick im Projektfenster auf "VBAProject (DeinArbeitsspeicher)" > Einfügen > Modul.

  5. Kopiere den folgenden VBA-Code in das Modul:

    Sub farbe()
        Dim language(6) As String
        Dim str As String
        Dim i As Integer
        Dim pos As Integer
    
        language(0) = "invalid"
        language(1) = "English"
        language(2) = "Dutch"
        language(3) = "German"
        language(4) = "Japanese"
        language(5) = "Mandarin"
    
        For i = 0 To 5
            If i < 5 Then
                str = str & language(i) & vbCrLf
            Else
                str = str & language(i)
            End If
        Next i
    
        Cells(1, 1).Value = str
        Rows("1:1").Rows.AutoFit
    
        'Färben der Texte
        pos = 1
        Cells(1, 1).Characters(Start:=pos, Length:=Len(language(0))).Font.Color = RGB(0, 255, 0) ' Grün
        pos = pos + Len(language(0)) + 2
    
        Cells(1, 1).Characters(Start:=pos, Length:=Len(language(1))).Font.Color = RGB(255, 0, 0) ' Rot
        pos = pos + Len(language(1)) + 2
    
        Cells(1, 1).Characters(Start:=pos, Length:=Len(language(2))).Font.Color = RGB(0, 255, 0) ' Grün
        pos = pos + Len(language(2)) + 2
    
        ' Weitere Farben für die restlichen Sprachen...
    End Sub
  6. Schließe den VBA-Editor und gehe zurück zu Excel.

  7. Führe das Makro aus: Gehe zu Entwicklertools > Makros, wähle farbe aus und klicke auf Ausführen.

Das Ergebnis wird in der Zelle A1 angezeigt, wobei die einzelnen Elemente des Arrays eingefärbt sind.


Häufige Fehler und Lösungen

  • Fehler: Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass die Makros in den Excel-Optionen aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen.
  • Fehler: Schriftfarbe wird nicht geändert.

    • Lösung: Überprüfe die RGB-Werte im Code und stelle sicher, dass sie korrekt sind. Beispielsweise ist RGB(0, 255, 0) für grün.

Alternative Methoden

Eine alternative Methode wäre die Verwendung von bedingter Formatierung, um die Zellen basierend auf bestimmten Bedingungen zu formatieren. Allerdings eignet sich diese Methode nicht für die Färbung einzelner Zeichen innerhalb einer Zelle, wie es bei Arrays der Fall ist.


Praktische Beispiele

Angenommen, Du möchtest die Farben folgendermaßen festlegen:

  • "invalid" soll grün sein,
  • "English" rot,
  • "Dutch" wieder grün.

Du kannst die RGB-Werte im VBA-Code anpassen, um Deine gewünschten Farben zu verwenden.

Ein Beispiel für das Färben von "German" in Blau:

Cells(1, 1).Characters(Start:=pos, Length:=Len(language(3))).Font.Color = RGB(0, 0, 255) ' Blau

Tipps für Profis

  • Nutze die FormatConditions-Methode in VBA, um komplexere Formatierungen zu erstellen.
  • Experimentiere mit verschiedenen RGB-Farben, um einzigartige Designs zu schaffen.
  • Dokumentiere Deine Makros, damit Du sie später leichter verstehen und anpassen kannst.

FAQ: Häufige Fragen

1. Kann ich die Farben auch dynamisch ändern? Ja, Du kannst die RGB-Werte in Abhängigkeit von anderen Zellen oder Bedingungen anpassen.

2. Funktioniert dieser Code in Excel Online? Der VBA-Code funktioniert nur in der Desktop-Version von Excel, nicht in Excel Online.

3. Wie kann ich das Makro speichern? Speichere Deine Excel-Datei als .xlsm, um die Makros zu behalten.

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