Excel VBA – Mehrere Bereiche vereinen und alle Zellen formatieren
Dieser Beitrag ist ein Teil der VBA Grundlagen Serie.
Hallo, heute zeige ich Ihnen wie Sie mehrere getrennte Bereiche vereinen und mithilfe einer Schleife bearbeiten können.
Unsere Ausgangstabelle sieht wie folgt aus.
Wir wollen nun alle Zellen, die einen Wert größer als 100 enthalten, rot markieren.
Zunächst definieren wir je eine Variable für einen Bereich. Diese wollen wir in einen Gesamtbereich zusammenfügen. Daher benötigen wir eine weitere Variable.
Sub BereicheZusammenfuegen() Dim Bereich1 As Range Dim Bereich2 As Range Dim GesamtBereich As Range End Sub
Als nächstes bestimmen wir wo genau die einzelnen Bereiche liegen.
Set Bereich1 = Tabelle1.Range("A1:D2") Set Bereich2 = Tabelle1.Range("A5:D6")
Diese fügen wir über die Funktion Union
zu einem Gesamtbereich zusammen.
Set GesamtBereich = Union(Bereich1, Bereich2)
Nun können wir unsere Schleife schreiben um alle Zellen in dem Bereich zu durchlaufen. Dazu müssen wir eine Variable für die Zelle festlegen.
Dim Zelle As Range
Als nächstes schreiben wir unsere Schleife.
For Each Zelle In GesamtBereich Next Zelle
111 VBA Makros die Ihr Leben leichter machen
Wollen Sie Ihre langweiligen Routineaufgaben loswerden? Möchten Sie Excel an Ihre Bedürfnisse anpassen, Berechnungen automatisieren, eigene Dialogfelder erstellen und vieles mehr? Dieses Buch zeigt Ihnen, wie Sie Ihre Aufgaben schnell und einfach mit VBA erledigen.
Innerhalb der Schleife prüfen wir ob der jeweilige Wert über 100 liegt. Wenn diese Bedingung zutrifft wird der Hintergrund über das Objekt Interior
(Hintergrund der Zelle) und die Eigenschaft ColorIndex
rot eingefärbt. Ansonsten wird die eventuell vorhandene Hintergrundfarbe entfernt.
For Each Zelle In GesamtBereich If Zelle.Value > 100 Then Zelle.Interior.ColorIndex = 3 Else Zelle.Interior.ColorIndex = xlColorIndexNone End If Next Zelle
Anbei der gesamte Code
Sub BereicheZusammenfuegen() Dim Bereich1 As Range Dim Bereich2 As Range Dim GesamtBereich As Range Dim Zelle As Range Set Bereich1 = Tabelle1.Range("A1:D2") Set Bereich2 = Tabelle1.Range("A5:D6") Set GesamtBereich = Union(Bereich1, Bereich2) For Each Zelle In GesamtBereich If Zelle.Value > 100 Then Zelle.Interior.ColorIndex = 3 Else Zelle.Interior.ColorIndex = xlColorIndexNone End If Next Zelle End Sub
Die Beispiel Excel Datei mit dem sofort einsetzbaren Makro und 111+ andere Makros, die Ihr Leben leichter machen, finden Sie hier.
Beeindrucke deinen Chef mit coolen Excel Tricks!
- Lasse dich von deinen Kollegen nicht abhängen!
- Spare Zeit und nutze diese für angenehmere Dinge
- Steigere deine Produktivität und Effizienz
- Es ist leicht - In meinem Newsletter gebe ich Schritt für Schritt Anleitungen die jeder versteht
- Bei der Anmeldung zu meinem Newsletter erhälst du das Buch „Excel Tricks die deinen Chef beeindrucken“ als Willkommensgeschenk.
Quellen und weiterführende Literatur:
Bernd Held – VBA mit Excel: Das umfassende Handbuch
Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!