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 M...,

A) Zur Übername eines Musters
Ein Muster benötigt natürlich noch andere Eigenschaften als nur die Farbe. Wenn es wirklich ein Muster sein soll, kannst du ja einmal manuell eine Zelle und eine Säule mit einem Muster formatieren und dabei aufzeichnen welche Eigenschaften gesetzt werden.
(Also vor der Formatierung im Menü "Entwicklertools" "Makro aufzeichnen" drücken und nach der Formatierung "Aufzeichnungen beenden".)
Diese Eigenschaften müssen dann im Makro von der Zelle auf die Säule übernommen werden.

B) Zur Zuordnung der Schaltfläche
Ich arbeite immer mit ActiveX Steuerelementen, da braucht/kann man dem Button kein Makro zuordnen. Wenn du das Wort "Private" vor "Sub" entfernst wird dir das Makro auch bei der Zuordnung angezeigt. (Ich würde auch den Namen der Sub ändern.)
Hallo Helmut,

scheinbar habe ich beim Einbetten deines Makros einen Fehler gemacht. Sobald ich auf die Schaltfläche klicke, werden zwar die Grenzen eingestellt, allerdings werden weder die Farbe, noch die Transparenz übernommen. Ich habe diesbezüglich den Bereich Säule00 sowie die Transparenzspalte rechts daneben bis unten markiert, und mittels Rechtsklick einen Namen definiert ("Farben"). ALlerdings werden beide nach Klick auf die Schaltfläche nicht übernommen. Habe ich hier was übersehen?

Ich habe jetzt bezüglich eines Farbmusters mal ein Makro aufgezeichnet:

Code:
Sub Makro1()
'
' Makro1 Makro
'

'
    With Selection.Interior
        .Pattern = xlPatternLinearGradient
        .Gradient.Degree = 90
        .Gradient.ColorStops.Clear
    End With
    With Selection.Interior.Gradient.ColorStops.Add(0)
        .Color = 16777215
        .TintAndShade = 0
    End With
    With Selection.Interior.Gradient.ColorStops.Add(1)
        .Color = 2703605
        .TintAndShade = 0
    End With
End Sub
Allerdings bekomme ich jede Menge Fehlermeldungen, wenn ich die entsprechenden Codezeilen in das ursprüngliche Makro einfügen will:
Code:
If Farben(Z, 1) = ser.Name Then
                ser.Format.Fill.ForeColor.RGB = rngFarben.Offset(Z - 1, 0).Interior.Color
                ser.Format.Pattern = rngFarben.Offset(Z - 1, 0).xlPatternLinearGradient
                ser.Format.Interior.Gradient.ColorStops.Add(0) = rngFarben.Offset(Z - 1, 0).Interior.Gradient.ColorStops
                ser.Format.Interior.Gradient.ColorStops.Add(1) = rngFarben.Offset(Z - 1, 0).Color
                ser.Format.Fill.Transparency = rngFarben.Offset(Z - 1, 1).Value
                Exit For
Kurzes Update: Das Problem mit dem Übertragen der Farben ist gelöst, jetzt geht es nur noch um das Makro (s. letzter Post).
Hallo M...,

A) Wenn sich die Grenzen ändern, wird das Makro also durchgeführt. Ausserdem findet es einen benannten Bereich "Farben", da es ansonsten bei der Zeile
Code:
Farben = Me.Range("Farben").Value
mit einem Fehler abbrechen würde.

B) Ich vermute, dass das Makro keinen Reihennamen findet, der mit einem Text in der ersten Spalte des Bereiches "Farben" übereistimmt.
Code:
If Farben(Z, 1) = ser.Name Then

1. Entweder die Reihen haben einen anderen Namen (mit "Daten auswählen" oder "Diagrammtyp ändern" kannst du sehen unter welchen Namen Reihen eingerichtet sind ) oder
2. die Namen sind nicht in der ersten Spalte des benannten Bereiches (unter "Formeln">"Definierte Namen">"Namensmanager" oder einfach mit F5 und anklicken von "Farben" kannst du den Bereich erkennen).
Hallo Helmut,

ich denke ich werde die Formatierung der Säulen mit einem Farbverlauf oder Muster dann manuell machen, sind ja zum Glück nicht viele. Was mich jedoch noch beschäftigt:

Die dreieckigen Symbole im Diagramm sind sehr unscharf. Ich habe diese als Bild eingefügt, da die Standardpunkte leider sehr überschaubar sind. Leider musste ich das Bild vor dem Einfügen verkleinern (auf 13x13 Pixel), da man die Größe des Bildes nach dem Einfügen nicht mehr verstellen kann. Letzteres ist auch das Problem, wenn ich bei der Auswahl des Bildes eines aus der Piktogrammsammlung übernehme. Gibt es da irgendeinen Trick, wie man eingefügte Bilder als Markierungssymbol nachträglich noch kleiner machen kann?
Hallo M...,

Ja, man kann nach Einfügen der Grafik unter "Datenreihe formatieren">"Markierung">"Markierungsoptionen">"Integriert" den Typ Quadrat oder Kreis wählen. Dann wird die Grafik in diesen Typ in aktueller Grösse eingepasst. Die Grösse kann man dann ganz normal verändern.
Hallo Helmut,

danke für den Hinweis, das ist doch bescheuert von Excel, dass man die Größe von Bildern nicht direkt ändern kann...

Ich habe mich jetzt nochmal mit dem Thema Verbindungslinien befasst. Das Diagramm ist jetzt so eingestellt, dass die X-Achse immer eine Zeitspanne von 2 Stunden 45 Minuten umfasst, und auch die Breite des Diagramms bleibt immer gleich breit, somit entsprechen Abstände auf der X-Achse immer einer konstanten Zeitspanne. Ist es möglich mittels Makro, entsprechende Verbindungslinien in der Mitte der Söulen einzuzeichnen, die jeweills die Zahlen verbinden, wobei die Granzen der Linien genau den Grenzen der Rahmen um die Zahlen entsprechen (s. angehängtes Bild).
Hallo M...,

A. Ja, man kann per Makro beliebige Formen pixelgenau positionieren. Aber das sprengt meines Erachtens die Hilfe in diesem Forum. Das könnte eine Auftragsprogrammierung werden (was ich nicht mache).

B. Hier noch einmal ein Vorschlag zum Eintrag von Zeitbereichen (wieder ohne Verbindungslinien nur mit Intervallklammern) für drei Ereignisse der gleichen Bezeichnung.

1. Start der Medikation von 5 ml/h:  "[5"
2. Wechsel von 5 auf 2 ml/h:"5][2"
3. Ende der Medikation: "2]"
Hallo  M...,

so eine grafische Aufbereitung kann, abhängig von Sonderfällen (wie in deinem Beispiel die Texte in Rechtecke), beliebig komplex sein. Falls du dich selbst einmal probieren möchtest hier einige Bemerkunge  für einfache Linien.

A) Tabelle
1. Ich würde noch eine Diagramm-Datenreihe für Beschriftungen anlegen, so dass ich pro Zeile entweder zwei getrennte Ereignisse oder ein Ereignis über eine Intervall angeben kann. Das Programm muss erkennen können, ob es sich um ein Intervall handelt.
2. Die Daten der beiden Datenreihen in einen benannten Bereich zusammenfassen.

B) Namen der Linien
Ich würde allen vom Progamm gezeichneten Linien einen Namen mit gleichem Anfang geben, so dass ich nicht aus Versehen die falsche Form lösche.

C) Programm
1. alle Formen in der Diagrammfläche mit dem obigen Namensanfang löschen.
2. Für jede zu zeichnende Linie eine Form mit gleichem Namensanfang auf der Diagrammfläche anlegen und folgende Eigenschaften bestimmen:
a) die Länge der Form unter Berücksichtigung der Intervallgrenzen, der Grenzen der X-Achse und der Breite der Zeichnungsfläche
b) die Startposition von links auf der Diagrammfläche abhängig von dem X-Wert des Intervallstarts, den Grenzen der X-Achse und dem Start der Zeichnungsfläche auf der Diagrammfläche.
c) die Startposition von oben auf der Diagrammfläche abhängig von dem Y-Wert des Ereignisses, den Grenzen der Y-Achse und dem Start der Zeichnungsfläche auf der Diagrammfläche.
Hallo Helmut,

danke für deine Anregungen, ich habe auch überlegt einfach ein Makro zu basteln, indem die Zeitabschnitte zwischen zwei Einträgen einfach mit einem "-" im 30 Sekundentakt aufgefüllt werden, so ergibt sich im Bild auch eine durchgezogene Linie, auch wenn diese nicht so dick ist wie die gezeichnete, außerdem verbraucht das jede Menge Zeilen.

Eine weitere Frage: Wenn ich zu einer bestimmten Zeit z.B. die Zeit 1000 eintrage, dann wird die Zahl by default zentriert eingetragen, d.h. die Zeitmarke befindet sich in der Mitte der Zahl. Wenn ich allerdings dann die Zahl auf rechts stelle, befindet sich zwischen der Zeitmarke und dem Beginn der 1 ein riesiger Abstand, der auch nach dem Anpassen des Randes auf 0 cm nicht komplett weg ist, kann man das noch irgendwie beeinflussen?
Seiten: 1 2 3 4 5 6 7 8