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

Forumthread: VBA - Farben auslesen und übertragen

VBA - Farben auslesen und übertragen
WalterK
Hallo,
ich suche einen Code, der die manuell erstellten Hintergrundfarben von einer Spalte in mehrere andere Spalten überträgt. Die betreffenden Spalten richten sich nach den Überschriften in Zeile 2.
Zum besseren Erläuterung habe ich eine Beispieltabelle hochgeladen.
Besten Dank für die Hilfe und Servus, Walter
https://www.herber.de/bbs/user/78714.xls
Anzeige

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

Betreff
Benutzer
Anzeige
AW: VBA - Farben auslesen und übertragen
03.02.2012 12:05:43
Rudi
Hallo,
Sub Farben()
Dim lngGesamt As Long, lngBeginn As Long, lngEnde As Long
Dim lngrow As Long
Application.ScreenUpdating = False
lngGesamt = Application.Match("Gesamt", Rows(2), 0)
lngBeginn = Application.Match("Beginn", Rows(2), 0)
lngEnde = Application.Match("Ende", Rows(2), 0)
For lngrow = 3 To Cells(Rows.Count, lngGesamt).End(xlUp).Row
Range(Cells(lngrow, lngBeginn), Cells(lngrow, lngEnde)).Interior.ColorIndex _
= Cells(lngrow, lngGesamt).Interior.ColorIndex
Next
End Sub

Gruß
Rudi
Anzeige
Danke Rudi, Perfekt! Servus, Walter
03.02.2012 13:13:52
WalterK
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Farben auslesen und übertragen in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um die Hintergrundfarbe einer Zelle in Excel mit VBA auszulesen und in andere Zellen zu übertragen, kannst du folgenden Code verwenden. Der Code geht davon aus, dass die Überschriften in der zweiten Zeile stehen.

  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. Kopiere den folgenden VBA-Code und füge ihn in das Modul ein:
Sub Farben()
    Dim lngGesamt As Long, lngBeginn As Long, lngEnde As Long
    Dim lngrow As Long
    Application.ScreenUpdating = False
    lngGesamt = Application.Match("Gesamt", Rows(2), 0)
    lngBeginn = Application.Match("Beginn", Rows(2), 0)
    lngEnde = Application.Match("Ende", Rows(2), 0)

    For lngrow = 3 To Cells(Rows.Count, lngGesamt).End(xlUp).Row
        Range(Cells(lngrow, lngBeginn), Cells(lngrow, lngEnde)).Interior.ColorIndex = Cells(lngrow, lngGesamt).Interior.ColorIndex
    Next
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Führe das Makro aus, indem du auf Entwicklertools > Makros klickst und das Makro Farben auswählst.

Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004"

    • Lösung: Überprüfe, ob die Überschriften "Gesamt", "Beginn" und "Ende" tatsächlich in der zweiten Zeile vorhanden sind. Wenn nicht, passe den Code entsprechend an.
  • Fehler: Zellenfarbe wird nicht übertragen

    • Lösung: Stelle sicher, dass die Zellen, die du überträgst, tatsächlich eine Hintergrundfarbe haben. Wenn du die Farbe auslesen möchtest, benutze Interior.Color anstelle von Interior.ColorIndex.

Alternative Methoden

Wenn du die Farben ohne VBA auslesen möchtest, kannst du die bedingte Formatierung oder die Funktion "Farbe" in Excel verwenden. Diese Methoden sind jedoch weniger flexibel und können nicht alle Farben auslesen.

  1. Bedingte Formatierung: Du kannst Regeln erstellen, die Farben basierend auf Werten zuweisen.
  2. Funktion: Mit =FARBE() kannst du die Farbe einer Zelle auslesen, jedoch funktioniert das nur in bestimmten Excel-Versionen.

Praktische Beispiele

Hier ist ein Beispiel, wie du die Zellfarbe auslesen kannst:

Sub ZellfarbeAuslesen()
    Dim farbe As Long
    farbe = Cells(1, 1).Interior.Color
    MsgBox "Die Farbe der Zelle A1 ist: " & farbe
End Sub

Mit diesem Code kannst du die Farbe einer bestimmten Zelle auslesen und in einer Meldung anzeigen.


Tipps für Profis

  • Nutze Interior.Color für RGB-Farben, wenn du präzisere Farbausgaben benötigst.
  • Wenn du viele Farben auslesen musst, optimiere deinen Code für bessere Leistung, indem du Application.ScreenUpdating zu Beginn und Ende deiner Subroutine verwendest.
  • Experimentiere mit VBA Farbcodes, um die gewünschten Farben einfacher zu verwalten.

FAQ: Häufige Fragen

1. Wie kann ich die Farbe einer Zelle ohne VBA auslesen? Du kannst die Funktion FARBE() verwenden, jedoch ist diese Funktion nicht in allen Excel-Versionen verfügbar.

2. Was ist der Unterschied zwischen Interior.ColorIndex und Interior.Color? Interior.ColorIndex gibt den Index der Farbe im Farbpalette zurück, während Interior.Color den RGB-Wert zurückgibt, was präzisere Farben bedeutet.

3. Kann ich den VBA-Code anpassen, um eine andere Farbauswahl zu treffen? Ja, du kannst den Code anpassen, um unterschiedliche Kriterien für das Auslesen und Übertragen von Farben zu verwenden.

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