Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Diagramm mit Text zu einer bestimmten Uhrzeit
#11
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.
Antworten Top
#12
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.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





[-] Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:
  • Medic89
Antworten Top
#13
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?


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#14
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.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#15
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
Antworten Top
#16
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.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#17
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.).
Antworten Top
#18
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.


Angehängte Dateien
.xlsm   Narkoseprotokoll.xlsm (Größe: 64,28 KB / Downloads: 13)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#19
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.
Antworten Top
#20
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.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste