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
#51
Hallo M...,

A) Fehler
Aus irgendeinem Grund passten die Bereiche für die Diagrammkurven und Beschriftungen nicht mehr zu den Grenzen der strukturierten Tabellen "Ereignisse" und "Positionen". Excel hat sich dadurch bei der Anzeige des Diagramms wohl verschluckt.
Ich musste die Beschriftungen löschen, die Bereiche für die Diagrammkurven anpassen und dann die Beschriftungen wieder einrichten.
Falls du es auch einmal machen muss, musst du daran denken unter "Ausrichtung" die Ränder der Beschriftungen auf 0 zu stellen.

B) Zuviele Datensätze in der Tabelle "Positionen"
Für die Tabelle "Ereignisse" mag es ja sinnvoll sein etliche Zeilen vorzuhalten, von denen immer nur einige genutzt werden. Aber nicht für die Tabelle "Positionen". Bei 42 eingerichteten Säulen (-1 bis 40) benötige ich nur 41 Datensätze in der Tabelle (Säule-1 bekommt keine Anzeigeposition).

C) Ein wenig andere Nutzung
Hier habe ich einige Änderungen (in Klammern der Stand) einmal exemplarisch eingebaut.

1. Säule00 (geändert)
Ich habe der Säule eine doppelte Höhe gegeben und eine weisse Farbe mit Transparenz 0 zugeordnet.
Dadurch werden die Beschriftungen der X-Achse nicht mehr in die Beschriftungen der Ereigniszeile geschrieben und nicht mehr durch die Gitternetzlinien unterbrochen.

2. Untergrenze der der Kurven (nicht geändert)
Hier könntest du auch 20 oder 30 eintragen, damit der Kurvenbereich kleiner und der Zeilenbereich grösser wird.

3. nutzen des Bis-Bereiches in der Tabelle Ereignisse (teilweise geändert)
Auch wenn ich zu einigen Ereignissen keine Linie zeichnen möchte, kann es meines Erachtens Sinn machen zwei Ereignisse eines Ereignisnamens in eine Zeile zu schreiben. Das macht die Tabelle kürzer und nach meiner Meinung auch übersichtlicher.
Ich hab das einmal umgesetzt für 2 (vorher 4) Zeilen unter "Ereignsse", 1 (vorher 2) Zeile unter "   " und 1 (vorher 2) Zeile unter "Medikamente".
Vielleicht gibt es noch mehr zusammenhängende Ereignisse ohne Pfeile.
ps. Die Bereiche "Total" im unteren Bereich der Tabelle "Ereignisse" würde ich  wie die Ereignisse "Ausfuhr" und "Infusionen" im Bis-Bereich beschriften.

4. benannte Zellen für  die Positionen "Verworfen" und "Total" (geändert)
Hier habe ich deine Berechnung in der benannten Zelle gemacht und in der Tabelle "Ereignisse" nur noch zugeordnet. Hiermit kann man die Positionierung leichter ändern.

5. Zuordnung der Kurve HF zu X1 (nicht geändert)
Wie schon geschrieben wird die Tabelle Kurven vom Makro nicht genutzt. Wenn die bisherigen vier Kurven fast immer zu den gleichen Zeiten eingetragen werden, solltest du die Spalte HF vor X2 schreiben und in den Diagrammreihen der Spalte X1 zuordnen.
Dann kannst du die Spalten Kurve05 und Kurve06 für Ereignisse zu anderen Zeiten (X2) nutzen.

6. Ermöglichen eine Beschriftungszeile zu übergehen (nicht geändert)
Bisher kann man, indem man in der Tabell "Positionen" den Ereignisnamen zu einer Position löscht, anschliessend dieser Zeile keine Farbe und keine Ereignsse (und damit auch keine Pfeile)zuordnen. Trotzdem werden die anderen Positionen im Diagramm nicht nach oben verschoben.
Wenn du in der Zelle AJ5 diese Formel einträgst
Code:
=MAX(WENN([@Ereignisname]="";"";WENN((MinWertY-[@Position]*HauptstricheY)>=0;MinWertY-AbstandY-[@Position]*HauptstricheY+HauptstricheY/2;MinWertY-AbstandY-[@Position]*HauptstricheY+HauptstricheY/2));AGGREGAT(15;6;$AJ$3:AJ4;1)-HauptstricheY)

und nach unten koopierst erfolgt in Zukunft eine verschiebung der unteren Zeilen wenn ein Name gelöscht wird.


Angehängte Dateien
.xlsm   Kopie von Narkoseprotokoll letzter Stand-2.xlsm (Größe: 496,64 KB / Downloads: 5)
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
#52
Hallo Helmut,

vielen Dank nochmals für deine Arbeit. Ich habe jetzt noch ein Zeitmakro eingebunden (https://www.win-10-forum.de/threads/korr...gen.20895/), so dass man beim live-Ausfüllen eine senkrechte gestrichelte Linie an der aktuellen Zeit hat. Sieht lustig aus, man kann der Linie beim Wandern von links nach rechts zusehen:D

Gibt es eine Möglichkeit, die Säule 0 noch etwas schmaler zu machen? Ich habe schonmal versucht, AbstandY von 20 auf 15 zu setzen, dadurch verschiebt sich aber die Skalierung der X-Achse.

NACHTRAG:

Wenn man in der von dir geposteten Datei in S97 den Punkt "Oxytocin" auswählt, und dann für eine Zeit einen Wert eingibt, erscheint dieser nicht in der Tabelle, ist das bei dir auch so?
Antworten Top
#53
Hallo M...


A) zu
Zitat:Gibt es eine Möglichkeit, die Säule 0 noch etwas schmaler zu machen? ...dadurch verschiebt sich aber die Skalierung der X-Achse.
Ja.

Ich hoffe aber du meinst die Y- und nicht die X-Achse, ansonsten verstehe ich es nicht.

Wenn die Untergrenze der Kurven ("MinWertY") 0 ist, die Säule00 die Höhe 15 hat und alle anderen Säulen die Höhe 10 haben, hat die Summe der Säulenhöhen eine 5 am Ende und damit auch das Minimum der Y-Achse. Da Excel aber die Gitternetzlinien am Minimum orientiert, haben alle Beschriftungen der Y-Achse eine 5 am Ende.
Wenn man das Minimum der Y-Achse um 5 reduziert, passt zwar die Achsenbeschriftung, aber die Säulen (Zeilenbeschriftungen) liegen nicht mehr zwischen den Gitternetzlinien.

Mein Vorschlag: Setzte die Höhe der Säule ("AbstandY") auf 15 und die Untergrenze der Kurven ("MinWertY") auf 15 oder 25.
Eine Untergrenze der Kurve auf -5 ginge auch, du hast damit aber nichts gewonnen, da du nur einen Bereich der Säule00 durch einen nicht genutzten Kurvenbereich ersetzt.

B) zu

Zitat:Wenn man in der von dir geposteten Datei in S97 den Punkt "Oxytocin" auswählt, und dann für eine Zeit einen Wert eingibt, erscheint dieser nicht in der Tabelle, ist das bei dir auch so?
Ja, leider.

Ich habe die Beschriftungen gelöscht und wieder neu eingerichtet und dann hats geklappt.
Ich habe solch ein Verhalten in Excel auch schon früher gesehen, konnte es aber noch nicht genau eingrenzen. Ich vermute dass sich die Zuordnung der Beschriftungen verschluckt, wenn es zuviele leere Beschriftungen gibt. Daher habe ich in die nicht genutzten Zellen der Beschriftungen ein " " eingetragen. Falls sich aber eine fehlerhafte Zuordnung wiederholt, müste man im Makro immer wieder die Beschriftung entfernen und wieder neu zuordnen.


Angehängte Dateien
.xlsm   Kopie von Narkoseprotokoll letzter Stand-2.xlsm (Größe: 497,56 KB / Downloads: 1)
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
#54
Wie lösche ich denn die Beschriftungen richtig und füge Sie dann wieder ein, ohne dass das Makro einen Laufzeitfehler ausgibt?
Antworten Top
#55
Hallo M...,


a) Beschriftung auswählen und entfernen
b) Datenreihe auswählen und "Datenbeschriftung hinzufügen"
c) Beschriftungen auswählen (jetzt Y-Werte) und unter "Datenbeschriftung formatieren:
1. "Wert aus Zellen" anwählen und den "Datenbeschriftungsbereich auswählen" (nur die Zellen der Tabellenspalte),
2. "Y.Wert" und "Führungslinien anzeigen" abwählen und
3. unter "Ausrichtung" alle vier Räder (mindesten rechter und linker Rand) auf 0 setzen.
d) Makro ausführen
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
#56
Hallo M...,

wenn du folgende Zeilen in das Makro (im oberen Teil hinter den drei Set und vor den Kommentarzeilen mit "Grenzen festlegen") einfügst, werden die Beschriftungen bei jedem Aufruf des Makros zu Beginn neu zugewiesen.
Code:
'---------------------------------------------------------
' Ereignisbeschriftung links und rechts neu zuordnen
'---------------------------------------------------------
With Dia.FullSeriesCollection("EreignisseLinks")
    AktName = "=" & Me.Name & "!" & rngTextVon.Address
    .DataLabels.Delete
    .ApplyDataLabels
    .DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, AktName, 0
    .DataLabels.ShowRange = True
    .DataLabels.ShowValue = False
    .HasLeaderLines = False
    .DataLabels.Format.TextFrame2.MarginRight = 0
    .DataLabels.Format.TextFrame2.MarginLeft = 0
End With
With Dia.FullSeriesCollection("EreignisseRechts")
    AktName = "=" & Me.Name & "!" & rngTextBis.Address
    .DataLabels.Delete
    .ApplyDataLabels
    .DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, AktName, 0
    .DataLabels.ShowRange = True
    .DataLabels.ShowValue = False
    .HasLeaderLines = False
    .DataLabels.Format.TextFrame2.MarginRight = 0
    .DataLabels.Format.TextFrame2.MarginLeft = 0
End With
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
#57
Irgendwas scheine ich falsch zu machen, hier meine Schritte:

1. Beschriftungen innerhalb der Säulen (zb "Total") anwählen und Löschen
2. Auf eine beliebige Säule klicken und Datenbeschriftungen hinzufügen
3. Rechtsklick auf eine der Beschriftungen der Säulen (z. B. Ereignisse)
1. "Wert aus Zellen" anwählen und den "Datenbeschriftungsbereich auswählen" (nur die Zellen der Tabellenspalte),
2. "Y.Wert" und "Führungslinien anzeigen" abwählen und
3. unter "Ausrichtung" alle vier Räder (mindesten rechter und linker Rand) auf 0 setzen.
d) Makro ausführen


Im Anschluss bekomme ich einen Aufruf zum Debuggen (s. Screenshot), diesen Fehler hatte ich die Tage schon öfter, dieser lässt sich nur beseitigen, indem alle "M" aus der Ereignistabelle entfernt werden.

Kommando zurück, die Beschriftungen funktionieren wieder, nur was hat es mit dem Laufzeitfehler auf sich?


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#58
Leider fängt Excel jetzt bei mir komplett an zu spinnen, nach jedem Öffnen der Datei, sind die Datenbeschriftungen der Ereignisse Links und Rechts verschoben (die Seitenränder stehen nicht mehr auf 0), wenn ich diese manuell ändere und abspeichere, ist nach dem Öffnen das selbe Problem erneut vorhanden.
Antworten Top
#59
Hallo M...,



A) zu #57
a) Ich hatten nicht geschrieben "beliebige Säule". Für die Beschriftung must du schon die richtige Datenreihe auswählen.
b) Der Fehler tritt auf, wenn ich eine Beschriftung positionieren will, aber keine Beschriftung eingerichtet ist.

Wenn du das Makro mit dem code aus #56 (oder besser mit dem unten aufgeführten code) erweitert hast, ist eine manuelle neue Einrichtung nicht mehr notwendig.

B) zu #58
a) Was bedeutet "die Seitenränder stehen nicht mehr auf 0" und "manuell ändere" ?
b) Mir ist aufgefallen, das der rechte und linke Abstand der Beschriftungen nach einem erneuten Öffnen nicht mehr auf 0 stehen.
Das war auch schon in älteren Versionen dieser Datei so.
Excel scheint eine Änderung des Abstandes nicht abzuspeichern, wenn ich sie für alle Beschriftungen einer Datenreihe mache.
Du solltest anstelle des codes aus #56 den folgenden code einfügen in dem ich die Abstände für alle Datenpunkte einzeln auf 0 setze.
Code:
'---------------------------------------------------------
' Ereignisbeschriftung links und rechts neu zuordnen
'---------------------------------------------------------
Dim Punkt As Point
With Dia.FullSeriesCollection("EreignisseLinks")
    AktName = "=" & Me.Name & "!" & rngTextVon.Address
    .DataLabels.Delete
    .ApplyDataLabels
    .DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, AktName, 0
    .DataLabels.ShowRange = True
    .DataLabels.ShowValue = False
    .HasLeaderLines = False
    For Each Punkt In .Points
        If Len(Punkt.DataLabel.Caption) > 0 Then
            Punkt.DataLabel.Format.TextFrame2.MarginRight = 0
            Punkt.DataLabel.Format.TextFrame2.MarginLeft = 0
        End If
    Next Punkt
End With
With Dia.FullSeriesCollection("EreignisseRechts")
    AktName = "=" & Me.Name & "!" & rngTextBis.Address
    .DataLabels.Delete
    .ApplyDataLabels
    .DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, AktName, 0
    .DataLabels.ShowRange = True
    .DataLabels.ShowValue = False
    .HasLeaderLines = False
    For Each Punkt In .Points
        If Len(Punkt.DataLabel.Caption) > 0 Then
            Punkt.DataLabel.Format.TextFrame2.MarginRight = 0
            Punkt.DataLabel.Format.TextFrame2.MarginLeft = 0
        End If
    Next Punkt
End With
With Dia.FullSeriesCollection("EreignisNamen")
    For Each Punkt In .Points
        If Len(Punkt.DataLabel.Caption) > 0 Then
            Punkt.DataLabel.Format.TextFrame2.MarginRight = 0
            Punkt.DataLabel.Format.TextFrame2.MarginLeft = 0
        End If
    Next Punkt
End With
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
#60
Hallo Helmut,

ich habe jetzt mal das Makro ausgetauscht gegen deinen letzten Vorschlag, und jetzt funktioniert es, auch nach dem Schließen und wieder Speichern sind die Grenzen noch bei 0.

B) nachdem die Beschriftungen verschoben waren, hab ich die Reihe Ereignissbeschriftungen Links angeklickt und habe dann gesehen, dass die Seitenränder nicht auf 0 cm, sondern auf 0,11 cm stand. Ich habe diese dann auf 0 korrigiert.
Antworten Top


Gehe zu:


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