ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
494
494
EMPFEHLEN
-
30.10.09 02:15 #1uwe44k Tutorials.de Gastzugang
Hallo an alle,
ich weiß nicht ob ich hier richtig bin, hab auch im Forum nicht gesucht weil ich neu hier bin und mich hier nicht auskenne.
Meine Frage:
Ich habe eine Tabelle (logisch - sonst wär ich nicht hier) in der ich Tageseingaben mache mit Werten.
Also: Spalte A Spalte B
01.01.09 - Wert 35
02.01.09 - Wert 48
bis zum 31.12.09
Jetzt habe ich Monatsdiagramme die den Wert pro Tag farblich anzeigen.
Meine Formel dazu:
Privat Sub Worksheet_Change (ByVal Target As Range)
Dim WertG, WertG_Vor, WertB, WertB-Vor, Zelle
Zelle = Target.Adress(0, 0)
'Monatsdiagramm:
ActiveSheet.ChartObjects("Diagramm 1").Activate
AktivateChart.Axes(xlValue).Select
With AktivateChart.Axes(xlValue)
.MinimumScale = WertG - 5
.MaximumScale = WertG + 5
CrossesAt = - 5
AktivateChart.Axes(xlValue).Select
Selction.TickLabels.AutoScale.Font
With Selection.TickLabes.Font
If WertG > WertG_Vor Then
.ColorIndex = 3
Elseif WertG < WertG_Vor Then
.ColorIndex = 10
Elseif WertG = WertG_Vor Then
.ColorIndex = xlAutomatic
End If
End With
End With
End Sub
Meine Frage jetzt dazu:
Wenn ich die Formel in einem Modul kopiere und den Befehl "Monatsdiagramm" auskommentiere, warum Springt dann VBA nicht in den Modul?
Ich hoffe ich hab es genügend erklärt, für Schreibfehler übernehm ich keine Haftung und vielen Dank für eure Antworten
Gruß Uwe
-
Wie rufst du deine prozedure auf?
Hier noch den Code formatiert, damit es andere leichter haben um den Code zu lesen
Code vb:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
Privat Sub Worksheet_Change (ByVal Target As Range) Dim WertG, WertG_Vor, WertB, WertB-Vor, Zelle Zelle = Target.Adress(0, 0) 'Monatsdiagramm: ActiveSheet.ChartObjects("Diagramm 1").Activate AktivateChart.Axes(xlValue).Select With AktivateChart.Axes(xlValue) .MinimumScale = WertG - 5 .MaximumScale = WertG + 5 CrossesAt = - 5 AktivateChart.Axes(xlValue).Select Selction.TickLabels.AutoScale.Font With Selection.TickLabes.Font If WertG > WertG_Vor Then .ColorIndex = 3 Elseif WertG < WertG_Vor Then .ColorIndex = 10 Elseif WertG = WertG_Vor Then .ColorIndex = xlAutomatic End If End With End With End Sub
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
30.10.09 11:00 #3
Hier der korrigierte Code (Schreibfehler von uwe44k):
Code vb:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
Private Sub Worksheet_Change (ByVal Target As Range) Dim WertG, WertG_Vor, WertB, WertB_Vor, Zelle Zelle = Target.Adress(0, 0) 'Monatsdiagramm: ActiveSheet.ChartObjects("Diagramm 1").Activate AktivateChart.Axes(xlValue).Select With AktivateChart.Axes(xlValue) .MinimumScale = WertG - 5 .MaximumScale = WertG + 5 CrossesAt = - 5 AktivateChart.Axes(xlValue).Select Selction.TickLabels.AutoScale.Font With Selection.TickLabes.Font If WertG > WertG_Vor Then .ColorIndex = 3 Elseif WertG < WertG_Vor Then .ColorIndex = 10 Elseif WertG = WertG_Vor Then .ColorIndex = xlAutomatic End If End With End With End Sub
Ich denke aber, du hast hier wahrscheinlich einen Logikfehler. Du schreibst, dass du den Code in ein Modul kopierst, er gehört aber in den Codebereich der Tabelle (siehe Graphik). Erst dann greift VBA bei der Zellenänderung darauf zu.
Der Doc!A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
B: Die Scrollbar da rechts ist dir schon mal aufgefallen?
-
30.10.09 11:24 #4uwe44k Tutorials.de Gastzugang
Danke für eure Hilfe,
der Code steht momentan im Codebereich der Tabelle. Er funktioniert auch bei Änderung der Zellen. Ich habe aber jetzt 12 Tabellen (von Jan - Dez) und wollte von Zeile 8 bis Zeile 25 in einem Modul schreiben und den Code in Modul mit Zeile 6 "Monatsdiagramm:" starten, was aber nicht funktioniert.
Gruß Uwe
-
Du musst deine Prozedure umbenammsen
Code vb:1 2 3 4 5
'alt: Private Sub Worksheet_Change (ByVal Target As Range) 'neu: Private Sub myFunction (ByVal Target As Range)
Anschliessend hinter deiner Tabelle die folgend sub setzen.
Code vb:1 2 3
Private Sub Worksheet_Change (ByVal Target As Range) Call myFunction(Target) End Sub
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
30.10.09 11:37 #6Uwe44k Tutorials.de Gastzugang
Danke!
Es Funktoniert
)))
Ähnliche Themen
-
[IE7 Problem] Problem mit ul/li Höhen im IE7 bei Verwendung eines vertikalen Menüs
Von josDesign im Forum CSSAntworten: 0Letzter Beitrag: 11.01.11, 21:40 -
Problem: Flash MX (7.1) exportiert meine Fla nicht mehr - dringendes Problem
Von Lukasz im Forum Flash PlattformAntworten: 4Letzter Beitrag: 22.03.06, 20:50 -
Problem mit hover- background ändern & Problem bei Reload
Von ollioollio im Forum CSSAntworten: 0Letzter Beitrag: 06.10.04, 14:03 -
PROBLEM! Pinnacle 2 GB Begrenzung Windows 2000 DC 50 PROBLEM!
Von hennym im Forum Videoschnitt, Videotechnik & -produktionAntworten: 6Letzter Beitrag: 17.09.03, 22:09 -
Problem mit PopUp (Ja ich weiss Suche benutzten, hab ein ganz anderes Problem)
Von killkrog im Forum Javascript & AjaxAntworten: 6Letzter Beitrag: 13.06.02, 12:29





Zitieren


Login





