ich hoffe mir kann jemand helfen: Ich bin absolut kein Programmierer oder in der Richtung gut bewandert. Ich habe mit VBA bis jetzt schon meine Tabelle soweit bearbeitet, dass ich meinen Code für eine Spalte funktionsfähig habe (siehe unten). Dabei ist dies leider hart gecodet und auf explizite Zellen gecodet (B16-B32).
Jetzt stehe ich vor dem Problem, dass ich quasi das gleiche Vorgehen auch für Spalten B-G, Leerspalte, I-K, Leerspalte und M-R haben möchte. Ich hatte mich mal versucht mit einer Do While Schleife, aber ich komme mit der Laufvariablen nicht klar, und wie ich die in meiner If-Bedingung dann einbauen muss. Der Code soll also auf alle Spalten angewendet werden, außer die beiden Leerspalten und dann ein Abbruchkriterium nach der Spalte R besitzen (welches wäre egal, was mir jetzt da einfällt: wenn 2 spalten hintereinander leer, oder man ein unsichtbares Wort in die Zelle einbaut "Ende" z.b.
Private Sub Worksheet_Change(ByVal Target As Range)
Range("B26:B32").FormatConditions.Delete
Range("B26:B32").Interior.ColorIndex = 0
Dim intCol As Integer
intCol = 2
If Range("B16").Value = "na" And Range("B17").Value = "na" Then
Range("B26:B32").Interior.ColorIndex = 15
ElseIf Range("B16").Value "na" And Range("B17").Value = "na" And Range("H5").Value "VN800/VN600 HFO" Then
Set barrange = Range("B26:B27")
Range("B28:B32").Interior.ColorIndex = 15
barrange.FormatConditions.AddDatabar
With barrange.FormatConditions(1)
.MinPoint.Modify newtype:=xlConditionValueNumber, newvalue:=0
.MaxPoint.Modify newtype:=xlConditionValueHighestValue
End With
With barrange.FormatConditions(1).BarColor
.Color = 255
.TintAndShade = 0
End With
ElseIf Range("B16").Value "na" And Range("B17").Value "na" Then
Set barrange = Range("B26:B30")
Range("B31:B32").Interior.ColorIndex = 15
barrange.FormatConditions.AddDatabar
With barrange.FormatConditions(1)
.MinPoint.Modify newtype:=xlConditionValueNumber, newvalue:=0
.MaxPoint.Modify newtype:=xlConditionValueHighestValue
End With
With barrange.FormatConditions(1).BarColor
.Color = 255
.TintAndShade = 0
End With
ElseIf Range("B16").Value "na" And Range("H5").Value = "VN800/VN600 HFO" Then
Range("B26:B30").Interior.ColorIndex = 15
Set barrange = Range("B31:B32")
barrange.FormatConditions.AddDatabar
With barrange.FormatConditions(1)
.MinPoint.Modify newtype:=xlConditionValueNumber, newvalue:=0
.MaxPoint.Modify newtype:=xlConditionValueHighestValue
End With
With barrange.FormatConditions(1).BarColor
.Color = 255
.TintAndShade = 0
End With
End If
Loop
End Sub
Hier mein versuch dder Do While schleife, bzw zumindest der Anfang
Do While Len(Cells(16, intCol).Formula) ""
intCol = intCol + 1
Ich hoffe sehr, dass mir jemand helfen kann. Ich komme selber nicht weiterMfG