Clever-Excel-Forum

Normale Version: Diagramm mit Text zu einer bestimmten Uhrzeit
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7 8
Hallo Helmut,

danke nochmal für deine Arbeit, nun funktioniert es wie es soll, nur die vertikalen Gitternetzlinien werden durch die farbigen Ereigniszeilen verdeckt und unter dem diagramm werden immer einige Leerzeilen angezeigt. Ja, ein paar Ereignisbeschriftungen habe ich nach rechts geschoben, allerdings nun über die Formatieren Funktion von Excel.
Hallo M...,

1. Wenn du die farbigen Säulen halb transparent machst, sieht man die Gitternetzlinien wieder.
2. Die Leerzeilen kann man verhindern, wenn man mit einem sehr kleinen Makro die Untergrenze der Y-Achse abhängig von den Daten einstellt.
Noch eine Frage Helmut,

nachdem ich mein Diagramm nun zu einer späteren Uhrzeit starten möchte, beginnt die X-Achse nach Umstellung aller Werte auf 10:00 trotzdem um 09:00. Wenn ich das Menü zur Formatierung der X-Achse aufmache, sehe ich als Minimum und Maximum nur dimmensionslose Zahlen, die sich zwar ändern lassen, aber dann zerschießt es mir sofort die X-Achse. Wie geht man das an?
Hallo M...,

zu:
Zitat:... Achse ... sehe ich als Minimum und Maximum nur dimmensionslose Zahlen ...
Ja das ist so in Punktdiagrammen. Wenn man aber weis, dass in Excel die Uhrzeiten Zahlen zwischen 0 und 1 sind kann man sich leicht behelfen (zB. ist 0,375 = 3/8 = 9/24 = 9:00 und 0,0104166667 = 1/96 = 1/24/4 = 0:15).


1. Ich trage die Uhrzeit oder den Bruch als Formel in eine Excelzelle, mache daraus eine Zahl mit vielen Nachkommastellen und kopiere möglichst viele davon in die Achsenfelder.

2. Das Maximum der X-Achse würde ich auf "Auto" lassen und die Teilstriche auf 0,00347222 = 0:05 setzen.


ps. Wenn du wie in "#12 2." geschrieben die Untergrenze der Y-Achse anpasst, könntest du im gleichen Makro die Untergrenze der X-Achse anpassen.
Hallo Helmut,

ich habe nun ein kleines Makro eingebaut (s. unten), womit auf Knopfdruck sowohl die X- als auch die Y-Achse skaliert werden, nun wäre noch die Frage, ob es möglich ist, die Zeilen je nach Inhalt automatisch zu formatieren (also eine bestimmte Farbe und andere Transparenz)


Sub Skalierung()

ActiveSheet.ChartObjects("Diagramm 3").Activate

With ActiveChart.Axes(xlCategory)
  .MaximumScale = ActiveSheet.Range("F127")
  .MinimumScale = ActiveSheet.Range("F79")
End With

With ActiveChart.Axes(xlValue)
  .MaximumScale = ActiveSheet.Range("J76")
  .MinimumScale = ActiveSheet.Range("K76")
End With

End Sub
Hallo M...,

A) zu
Zitat:... ich habe nun ein kleines Makro eingebaut (s. unten), womit auf Knopfdruck sowohl die X- als auch die Y-Achse skaliert werden ...
1. Ich würde die MaximumScale nicht per Programm schreiben, da ich die Automatik hier für ausreichend halte und die Maxima nicht manuell pflegen wollte.
2. Da hast für die Zellen feste Adressen eingetragen. Anders als in Formeln werden sie im Makro nicht angepasst, wenn ich zB. eine Zeile davor einfüge. Ich empfehle daher den Zellen einen Namen zu geben und sie im Makro über diesen Namen anzusprechen (siehe meine Signatur).
3. (nur Geschmacksache) Du solltest dir überlegen ob du im Makro für das Diagramm immer den Namen "Diagramm 3" lesen und schreiben willst oder ob du dem Diagramm einen sprechenden Namen gibst.

B) zu
Zitat:... ob es möglich ist, die Zeilen je nach Inhalt automatisch zu formatieren ...
Über das Makro ist es möglich. Ich empfehle hinter der Säulengrösse eine Spalte einzufügen und dem Bereich einen Namen zu geben. Die Transparenz würde ich als Zahlenwert eintragen und die gewünschte Farbe als Hintergrund formatieren. Beides kann im Makro für die Säulen übernommen werden.
Hallo Helmut,

das Problem ist denke ich, ein Makro zu schreiben, in dem mehrere if then Funktionen eingebaut sind (Wenn in einer Zeile etwas mit xy steht dann Farbe 1, wenn za dann Farbe 2, usw.).
Hallo M...,

eigentlich nicht.

Trotzdem bleibe ich bei meiner Empfehlung die Farben in der Tabelle zu bestimmen.

Hier ein Makrovorschlag und in der Anlage die Beispieldatei.
Code:
Private Sub cbTuwat_Click()
Dim Z As Long
Dim Farben As Variant
Dim rngFarben As Range
Dim ser As Series

Farben = Me.Range("Farben").Value
Set rngFarben = Me.Range("Farben").Cells(1, 1)
With Me.ChartObjects("Diagramm").Chart

    .Axes(xlCategory).MinimumScale = Me.Range("MinX").Value     'Minima und Maxima festlegen
    .Axes(xlValue).MinimumScale = Me.Range("MinY")
    .Axes(xlCategory).MaximumScale = Me.Range("MaxX").Value
    .Axes(xlValue).MaximumScale = Me.Range("MaxY")
   
    For Each ser In .FullSeriesCollection                       'Farben und Transparenz den Säulen zuordnen
        For Z = 1 To UBound(Farben, 1)
            If Farben(Z, 1) = ser.Name Then
                ser.Format.Fill.ForeColor.RGB = rngFarben.Offset(Z - 1, 0).Interior.Color
                ser.Format.Fill.Transparency = rngFarben.Offset(Z - 1, 1).Value
                Exit For
            End If
        Next Z
    Next ser
End With
End Sub


Das Makro muss im VBA-Projekt des Blattes sein (Daher Me.), wird über den Button "cbTuwat" aufgerufen und benötigt im Blatt vier benannte Zellen (MinX, MaxX, MinY und MaxY) und einen benannten Bereich (Farben).

Der Bereich "Farben" hat mindestens zwei Spalten.
Wenn der Text in der ersten Spalte mit dem Namen einer Datenreihen übereinstimmt wird
1. die Hintergrundfarbe der Zelle als Farbe der Säule übernommen und
2. der Wert der benachbarten Zelle als Transparenz der Farbe eingerichtet.


ps. Wenn du in der ersten Spalte des Bereiches "Farben" die Farben über bedingte Formatierung bestimmst, must du im Makro ".Interior.Color" durch ".DisplayFormat.Interior.Color" ersetzen.
Hallo Helmut,

das mit dem .DisplayFormat.Interior.Color hat leider nicht funktioniert, wenn die Zelle der ersten Spalte einfarbig ist, wird diese übernommen (ich Färbe die Zellen der ersten Spalte mit der bedingten Formatierung), sobald aber ein Muster zum EInsatz kommt, wird dieses nicht mehr übernommen.
Außerdem habe ich grade versucht, das Makro in meine Originaldatei zu übertragen, ich habe es bei Tabelle 1 eingefügt und die Bereiche Farben und Min/Max definiert, allerdings kann ich das makro keiner Schaltfläche zuordnen.
Seiten: 1 2 3 4 5 6 7 8