VBA Range zur Laufzeit auwählen!

Hallo,

mein Problem ist folgendes: Ich habe mehrere Tabellen und wollte einen Markierten Bereich farblich unterscheiden. Anhand von bestimmten Kriterien… z.B. >0 dann Farbe rot,

Hallo Dennis,

mein Problem ist folgendes: Ich habe mehrere Tabellen und
wollte einen Markierten Bereich farblich unterscheiden. Anhand
von bestimmten Kriterien… z.B. >0 dann Farbe rot,

Hallo Dennis.

Mit dem folgenden Code erreichst Du die gewünschte Funktionalität:

 Dim tmpCol As Long
 Dim tmpRow As Long

 For tmpRow = Selection.Row To Selection.Rows.Count
 For tmpCol = Selection.Column To Selection.Columns.Count
 If Cells(tmpRow, tmpCol) = 1 Then
 Cells(tmpRow, tmpCol).Interior.Color = vbRed
 ElseIf Cells(tmpRow, tmpCol) = 2 Then
 Cells(tmpRow, tmpCol).Interior.Color = vbGreen
 Else
 Cells(tmpRow, tmpCol).Interior.ColorIndex = xlNone
 End If
 Next tmpCol
 Next tmpRow

VG
Carsten

Hallo Carsten,

Mit dem folgenden Code erreichst Du die gewünschte
Funktionalität

nein.

For tmpRow = Selection.Row To Selection.Rows.Count

Selection.Row liefert die Zeilennummer der obersten Zelle im markierten Bereich.
Selection.Rows.Count liefert die Anzahl Zeilen im selektierten Bereich.
D.h., wenn A17:A25 markiert/selektiert ist so macht die Schleife das da:

For tmpRow = 17 to 8

D.h2, sie macht gar nix.

Gruß
Reinhard

Hallo Reinhard

Ok (genervt!), Korrektur für Bereiche, die nicht in A1 anfangen:

 Dim tmpRow As Long
 Dim tmpCol As Long
 For tmpRow = Selection.Row To Selection.Row + Selection.Rows.Count - 1
 For tmpCol = Selection.Column To Selection.Column + Selection.Columns.Count - 1
 If Cells(tmpRow, tmpCol) = 1 Then
 Cells(tmpRow, tmpCol).Interior.Color = vbRed
 ElseIf Cells(tmpRow, tmpCol) = 2 Then
 Cells(tmpRow, tmpCol).Interior.Color = vbGreen
 Else
 Cells(tmpRow, tmpCol).Interior.ColorIndex = xlNone
 End If
 Next tmpCol
 Next tmpRow

Es ist für Dennis bestimmt nicht unmöglich gewesen, den Code selbst anzupassen. Ich bin sicher, er ist allein auf die richtige Lösung gekommen. Du scheinst das aber nicht zu denken.

VG
Carsten

wollte einen Markierten Bereich farblich unterscheiden. Anhand
von bestimmten Kriterien… z.B. >0 dann Farbe rot, Sub Farbe()

Dim Zelle As Range
Selection.Cells.Interior.ColorIndex = xlNone
For Each Zelle In Selection
Select Case Zelle.Value
Case Is > 0
Zelle.Interior.ColorIndex = 3 'rot
Case Is

Gruß
Reinhard

Hallo Carsten,

Ok (genervt!)

es lag/liegt nicht in meiner Absicht dich zu nerven.

Es ist für Dennis bestimmt nicht unmöglich gewesen, den Code
selbst anzupassen. Ich bin sicher, er ist allein auf die
richtige Lösung gekommen. Du scheinst das aber nicht zu
denken.

Nein.

Gruß
Reinhard

Vielen dank für eure hilfe :smile: hat geklappt thx so much :wink: … find dieses Forum einfach nur hammer sehr hilfbereit :smile:

Mit freundlichen Grüßen
Dennis