VBA

  • VBA von Franz vom 11.02.2005 10:48:42
Bild

Betrifft: VBA von: Franz
Geschrieben am: 11.02.2005 10:48:42

Kann man folgende Befehlszeilen vereinfacht darstellen?

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Range("D5") = "L" And Range("F5") > "1" Then Range("F5").Interior.ColorIndex = 36
If Range("D5") = "L" And Range("G5") > "1" Then Range("G5").Interior.ColorIndex = 36
If Range("D5") = "L" And Range("H5") > "1" Then Range("H5").Interior.ColorIndex = 36
If Range("D5") = "L" And Range("I5") > "1" Then Range("I5").Interior.ColorIndex = 36
If Range("D5") = "L" And Range("J5") > "1" Then Range("J5").Interior.ColorIndex = 36
....
End Sub


Gruß, Franz
Bild


Betrifft: AW: VBA-Code von: Galenzo
Geschrieben am: 11.02.2005 11:05:34

ich würde es so programmieren:
Dim c As Range
If [d5]= "L" Then
For Each c In [F5:J5]
c.Interior.ColorIndex = IIf(c = "I", 36, xlColorIndexNone)
Next
End If

Ist aber genauso lang :-(
kannst du das aber nicht auch über "bedingte Formatierung" lösen?


Bild


Betrifft: AW: VBA von: Cardexperte
Geschrieben am: 11.02.2005 11:08:23

Hello Franz, habe das nicht getestet aber mit einer Schleife sollte es mit cells klappen, also z.B. so:
For i = 6 To 10
If Cells(5, 4).Value = "L" And Cells(5, i).Value größer 1 Then Cells(5, i).Interior.ColorIndex = 36

Next i
Gruss Ws


Bild


Betrifft: AW: VBA von: UweD
Geschrieben am: 11.02.2005 11:09:55

Hallo
so:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Dim I%
    If Range("D5") = "L" Then
        For I = 6 To 10
            If Cells(5, I) > "1" Then Cells(5, I).Interior.ColorIndex = 36
        Next
    End If
End Sub


Gruß UweD


Bild


Betrifft: AW: VBA von: Kurt
Geschrieben am: 11.02.2005 11:16:57

hi,

oder so:

Dim i As Integer
If Range("D5") <> "L" Then Exit Sub
For i = 7 To 20
If Cells(5, i) > "1" Then Cells(5, i).Interior.ColorIndex = 36
Next


und Tschüss Kurt


 Bild

Beiträge aus den Excel-Beispielen zum Thema "treffen 2005!!!"