ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
1033
1033
EMPFEHLEN
-
Hallo
Ich wollte in Excel über VBA ein Balkendiagramm aufgrund einer vorhandenen Tabelle erstellen:
Tabellendefinition:
u.s.wCode :1 2 3 4 5 6 7 8 9
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:
Code vb:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
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.Geändert von ComFreek (05.01.12 um 16:28 Uhr) Grund: [vb]- und [code]-Tags hinzugefügt
-
05.01.12 16:02 #2
- Registriert seit
- Jul 2008
- Ort
- Hinter dem Mond gleich links
- Beiträge
- 735
Ein Makro muss von extern getriggert werden.
Es wäre mir neu, dass man eine Makro-Funktion per Aufruf in einer Zelle auslösen kann.
Du musst das Change-Event verwenden.
Code vb:1 2 3 4 5 6 7 8 9 10 11
Private Sub Worksheet_Change(ByVal Target As Range) 'Me.Cells(1,2) ist B1, Target.Value ist die Zelle in B, die geändert wurde. Die If-Abfrage nimmt nur Werte aus Spalte B (Column=2) if Target.Column=2 then Call Balken (Me.Cells(1,2), Target.Value) End if End Sub
Zwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein
Code vb:1
If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")
-
Hallo Zvoni
Vielen Dank.
Dein Hinweis hat mir sehr gut weiter geholfen
-
09.03.12 10:27 #4
- Registriert seit
- Jul 2008
- Ort
- Hinter dem Mond gleich links
- Beiträge
- 735
Ich muss mir gerade selbst widersprechen: Der Aufruf einer VBA-Funktion aus Excel in einer Zelle heraus ist doch möglich, jedoch muss genannte Funktion als Public in einem Standard-Modul deklariert sein.
Dann kann man es wie eine beliebige Excel-Funktion in einer Zelle "=MeineFunktion(Zahl1, Zahl2)" verwenden.
Nur so für diejenigen die es interessiert.Zwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein
Code vb:1
If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")
Ähnliche Themen
-
» Sonstiges Outlook 2010 - Hotmail Fehler
Von smyle im Forum Office-AnwendungenAntworten: 1Letzter Beitrag: 24.03.11, 11:40 -
Fehler in VS 2010?
Von Aj2010 im Forum .NET CaféAntworten: 6Letzter Beitrag: 10.01.11, 08:25 -
[C] Fehler C2143 in VS 2010 Express
Von brunlorenz im Forum C/C++Antworten: 5Letzter Beitrag: 28.06.10, 11:53 -
Fehler 1004 bei Division
Von sheaven im Forum Visual Basic 6.0Antworten: 8Letzter Beitrag: 05.07.05, 19:43 -
Anwendungs- oder objektdefinierter Fehler
Von Oliver I Koeller im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 23.07.04, 21:58





Zitieren
Login





