Hallo
Ich wollte in Excel über VBA ein Balkendiagramm aufgrund einer vorhandenen Tabelle erstellen:
Tabellendefinition:
u.s.w
B1 = 100%
Balkenmaximalänge = 100 Spalten für 100%, d.h. 980 = 100 Spalten
Für die Spalten 2 bis .. soll ab Spalte 3 ein Balken dargestellt werden, der über soviele Spalten geht, wie der Wert der entsprechenden Zeile in Spalte 2 in Prozent von B1 entspricht.
Die Farbe des Balkens soll der Farbe entsprechen, die als Interior.ColorIndex der Zelle dieser Zeile eingestellt ist, die die Zahl enthält.
Beispiel:
B2 = 98 entspricht 10% Balkenlänge von 100 Spalten, entspricht 10 Spalten.
Also für Zeile 2 soll ab Spalte 3 ein Balken von 10 Spalten länge dargestellt werden.
In der Farbe, die B2 hat.
Das habe ich mit fogender Sub versucht:
In der Zelle C2 steht: =Balken(A2;B2)
Leider funktioniert das so nicht!
Wenn ich aber während der Programmausführung im Direktfenster foglendes Eingebe:
Cells(nZeile, nSpalte).Interior.ColorIndex = Cells(nZeile, 2).Interior.ColorIndex
während auf genau dieser Zeile in der Sub Balken ein Haltepunkt steht, funktioniert die Ausführung der Anweisung und die entsprechende Zelle in der Tabelle wir mit der korrekten Farbe hinterlegt.
Wo ist der Fehler?
Was mache ich falsch?
Für weiterführende Hinweise bin ich dankbar.
Ich wollte in Excel über VBA ein Balkendiagramm aufgrund einer vorhandenen Tabelle erstellen:
Tabellendefinition:
Code:
A-----B------C-----D-----usw
1 980
2 98
3 111
4 76
B1 = 100%
Balkenmaximalänge = 100 Spalten für 100%, d.h. 980 = 100 Spalten
Für die Spalten 2 bis .. soll ab Spalte 3 ein Balken dargestellt werden, der über soviele Spalten geht, wie der Wert der entsprechenden Zeile in Spalte 2 in Prozent von B1 entspricht.
Die Farbe des Balkens soll der Farbe entsprechen, die als Interior.ColorIndex der Zelle dieser Zeile eingestellt ist, die die Zahl enthält.
Beispiel:
B2 = 98 entspricht 10% Balkenlänge von 100 Spalten, entspricht 10 Spalten.
Also für Zeile 2 soll ab Spalte 3 ein Balken von 10 Spalten länge dargestellt werden.
In der Farbe, die B2 hat.
Das habe ich mit fogender Sub versucht:
Visual Basic:
Sub Balken(ByVal n100Proz As Integer, ByVal nAktProz As Integer)
On Error GoTo Err_Balken
Dim tCellAdr As String
Dim iBalkenLaenge As Integer
Dim nZeile As Long
Dim nSpalte As Long
tCellAdr = ActiveCell.Address ' $Spalte$Zeile
iBalkenLaenge = Int(100 / n100Proz * nAktProz)
nZeile = CInt(Mid$(tCellAdr, 4, Len(tCellAdr) - 3))
For nSpalte = 3 To 3 + iBalkenLaenge
Cells(nZeile, nSpalte).Interior.ColorIndex = Cells(nZeile, 2).Interior.ColorIndex
Next nSpalte
Exit Sub
Err_Balken:
MsgBox Err.Number & " " & Err.Description
End Sub
In der Zelle C2 steht: =Balken(A2;B2)
Leider funktioniert das so nicht!
Wenn ich aber während der Programmausführung im Direktfenster foglendes Eingebe:
Cells(nZeile, nSpalte).Interior.ColorIndex = Cells(nZeile, 2).Interior.ColorIndex
während auf genau dieser Zeile in der Sub Balken ein Haltepunkt steht, funktioniert die Ausführung der Anweisung und die entsprechende Zelle in der Tabelle wir mit der korrekten Farbe hinterlegt.
Wo ist der Fehler?
Was mache ich falsch?
Für weiterführende Hinweise bin ich dankbar.
Zuletzt bearbeitet von einem Moderator: