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
Inhaltsverzeichnis

For each cells in Range

Forumthread: For each cells in Range

For each cells in Range
micha
Hallo,
ich suche eine Möglichkeit um alle Zellen mit weißer Hintergrundfarbe gelb zu färben und um alle schwarzen Zellen eine "1" in die zelle zu schreiben.
a
=range?
for each cells/selection
If Selection.Interior.ColorIndex = 1 Then
cells(?)= 1
ElseIf Selection.Interior.ColorIndex = 2 Then
Selection.Interior.ColorIndex = 36
End If
next
MAn markiert den Range vorher dann wird das Makro aufgerufen, geht das?
Gruß
Micha
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: For each cells in Range
Boris
Hi Micha,
Bereich markieren und Code starten:
Option Explicit

Sub tu_es()
Dim C As Range
For Each C In Selection
With C.Interior
If .ColorIndex = 2 Then
.ColorIndex = 36
ElseIf .ColorIndex = 1 Then
C = 1
End If
End With
Next C
End Sub

Grüße Boris
Anzeige
AW: For each cells in Range
Worti
Hallo Micha,
so geht's:


Sub BereichBearbeiten()
    Dim As Range
    
    For Each In Range("A1:D10")
        Select Case c.Interior.ColorIndex
            Case 1
                 c.Value = 1
            Case 2
                 c.Interior.ColorIndex = 6
        End Select
    Next
End Sub


Worti
Anzeige
AW: For each cells in Range
michael
Hallo ihr beiden!
Danke genau das brauch ich!
traumhaft!
mfg
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Zellen in einem Bereich mit VBA bearbeiten


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA durch jede Zelle in einem bestimmten Bereich zu iterieren und deren Eigenschaften zu ändern, kannst du den folgenden Code verwenden. Dieser Code färbt Zellen mit weißem Hintergrund gelb und schreibt eine "1" in die Zellen mit schwarzem Hintergrund. Du musst vorher den gewünschten Bereich markieren.

  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 und füge den folgenden Code ein:
Sub BereichBearbeiten()
    Dim C As Range
    For Each C In Selection
        With C.Interior
            If .ColorIndex = 1 Then ' Schwarz
                C.Value = 1
            ElseIf .ColorIndex = 2 Then ' Weiß
                .ColorIndex = 36 ' Gelb
            End If
        End With
    Next C
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Wähle den gewünschten Bereich aus und führe das Makro aus.

Häufige Fehler und Lösungen

  • Fehler: Das Makro funktioniert nicht.

    • Lösung: Stelle sicher, dass du einen Bereich markiert hast, bevor du das Makro ausführst. Das Makro verwendet Selection, um nur die markierten Zellen zu bearbeiten.
  • Fehler: Zellen werden nicht gefärbt.

    • Lösung: Überprüfe die ColorIndex-Werte. Diese Werte sind von der Excel-Version abhängig. Stelle sicher, dass die Farbcodes korrekt sind.

Alternative Methoden

Eine alternative Methode, um durch Zellen zu iterieren, ist die Verwendung des For i = ... Ansatzes:

Sub BereichBearbeitenAlternative()
    Dim i As Long
    For i = 1 To Selection.Cells.Count
        If Selection.Cells(i).Interior.ColorIndex = 1 Then
            Selection.Cells(i).Value = 1
        ElseIf Selection.Cells(i).Interior.ColorIndex = 2 Then
            Selection.Cells(i).Interior.ColorIndex = 36
        End If
    Next i
End Sub

Diese Methode ist nützlich, wenn du die Zellen in einer bestimmten Reihenfolge bearbeiten möchtest.


Praktische Beispiele

Hier sind einige Beispiele, wie du die For Each Schleife in VBA nutzen kannst:

  • Beispiel für das Färben von Zellen:
Sub FärbeZellen()
    Dim Zelle As Range
    For Each Zelle In Range("A1:D10")
        If Zelle.Interior.ColorIndex = 2 Then
            Zelle.Interior.ColorIndex = 6 ' Gelb
        End If
    Next Zelle
End Sub
  • Beispiel für das Setzen von Werten:
Sub SetzeWerte()
    Dim c As Range
    For Each c In Range("A1:A10")
        If c.Value = "" Then
            c.Value = "Leer"
        End If
    Next c
End Sub

Tipps für Profis

  • Nutze die With-Anweisung, um die Lesbarkeit deines Codes zu verbessern und die Anzahl der wiederholten Objektreferenzen zu minimieren.
  • Teste deine Makros in einer Kopie deiner Excel-Datei, um Datenverlust zu vermeiden.
  • Verwende Application.ScreenUpdating = False, um die Leistung bei der Bearbeitung großer Bereiche zu verbessern. Vergiss nicht, es wieder auf True zu setzen.

FAQ: Häufige Fragen

1. Wie kann ich den Bereich dynamisch festlegen? Du kannst den Bereich anpassen, indem du z. B. Range("A1:" & Cells(Rows.Count, 1).End(xlUp).Address) verwendest, um den Bereich automatisch zu bestimmen.

2. Was muss ich beachten, wenn ich das Makro in einer anderen Excel-Version verwende? Achte darauf, dass die ColorIndex-Werte je nach Excel-Version variieren können. Teste die Farbcodes, um sicherzustellen, dass sie in deiner Version korrekt dargestellt werden.

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