Daten Grafisch bzw im Diagramm auswerten

  • Excel

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Jungspund.

    Daten Grafisch bzw im Diagramm auswerten

    Hallo zusammen,

    Ich bin gerade dabei eine Excel Auswertung für ein paar Messdaten zu Programmieren.
    Was das einlesen der Signale und das anlegen der Tabelle angeht.
    Hab ich bei euch schon eine Super Hilfe bekommen.
    [Excel] Daten über VBA importieren bzw. Datei öffnen
    Danke noch mal dafür.



    Jetzt geht es halt darum das ich jetzt mit VBA, die Daten aus der Tabelle
    in ein Diagramm umsetzen will.
    Ich weiß zwar genau was ich will aber dummerweise nicht wie ich es bekomme. :D

    Das Diagramm sollte über eine UserForm die Entsprechend auszuwertenden Daten übernehmen. (einblenden ausblenden)

    Dabei gibt es Analoge und Digitale Signale.
    Analoge Sig sind ja kein Problem aber Digitale Signale in einem Diagramm Rechteckig darzustellen. Also da fängt das Grübeln ja schon mal an. (Vielleicht über Balkendiagramme aber schön ist was anderes)


    Das oder Die Diagramme sollten über eine Lupenfunktion verfügen und über Bildlaufleisen will ich die Kurven einzeln nach Oben/Unten (Offset) und Zeitlich nach Links/Rechts verschieben.
    Außerdem noch eine Anpassung der Signalstärke
    (ein schwaches Signal soll ähnlich groß dargestellt werden wie ein Starkes Signal)

    Ich stell mir das so vor,
    • das ich für jeden Kanal einen Offset auf den Messwert Addiere.
      Die Signalanpassung geht sicher über einen Multiplikator für jeden Kanal.
      Und das Zeitliches verschieben und das Ranzoomen würde ich ja über die Achsenskalierung hinbekommen.


    Soweit ist das kein Problem.
    Außer das ich noch nicht mal genau weiß wie ich ein Diagramm erstelle sowie Kanäle und Skalierungswerte übergebe. Aber sicher nur ein kleines Problem.

    Kommen wir jetzt mal zu dem großem Problem,
    ich will aus dem Diagramm Momentanwerte auslesen.
    Ähnlich wie man es vielleicht von Chartanalysen kennt.

    Wird also einen Merker im Diagramm gesetzt, so sieht man die Messwerte z.B. in einer UserForm.
    Ich brauche aber auch Werte die zwischen den realen Messpunkten liegen.
    Hab ich also eine Messung die von 2V auf 5V steigt.
    Und es gibt nur 2 Messwerte (also 2 und 5) im Abstand von 30sek.
    Dann möchte ich gern auch Messwerte ermitteln die zwischen den Punkten liegt zB. in der 15.sek 3,5V.

    Und setzt man einen zweiten Merker dann wird eine Trendlinie zwischen den zwei Messpunkten eingefügt und die Anstiegsfunktion ausgegeben.

    Wenn jetzt auch noch der Merker mit einer Gestrichelten Linie, Wagerecht und Senkrecht dargestellt wird, dann wäre alles perfekt.

    So das ist also mein Problem. ?(
    Kennt jemand eine Lösungsansatz :D
    Ein guter Link oder ein brauchbare Tutorial nehme ich auch gern an,
    dann kann ich mich da mal in ruhe reinarbeiten.
    Das was ich vorhab geht ja wahrscheinlich eh schon ziemlich tiefer in die Materie der Diagramme.

    gruß
    Nick

    Aufzeichnen

    Hallo,

    ich arbeite noch nicht all zu lange mit VB, aber eine Möglichkeit, die vielleicht funktioniert, wäre dieses Makro einfach aufzuzeichnen. Handisch kann man ja diese Diagramme erzeugen, tu dies un lass während dessen daraus das Marko aufzeichnen und schon hast du ein funktionsfertiges Makro :)

    Ich hoffe es kann helfen :P

    Zyfer schrieb:

    schon hast du ein funktionsfertiges Makro
    Ich würde mal sagen:
    Die Objekte und Methoden, die du in deine eigene Prozedur übernehmen kannst.

    Der Macro-Recorder produziert nämlich ganz schön Overhead und unnötigen Code.
    Insbesondere mit seiner Eigenart die Objekte erst mal zu selektieren und dann mit dem Selection-Objekt zu arbeiten wird der Code sehr unelegant und inperformant.

    Aber als Hilfestellung für die Erstellung eigener Methoden ist das Teil Gold wert.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Schön das doch noch jemand antwort.

    Das mit dem Makro aufzeichnen ist halt so eine sacht.
    Aber als Basis erst mal nicht schleicht.

    Allerdings will ich aus einem Diagram auch wieder Daten auslesen und das macht die Sacht schon nicht mehr Makro fähig da das in einem normalem Excel Diagram normalerweise nicht möglich ist.

    Ich hab aber schon mal in meinem Studium ein Programm gesehen wo das funktionierte.
    Ich weiß allerdings nicht mehr genau wie Er das damals gemacht hatte.
    Kann vielleicht sein, das Er es über die XY Koordinaten des Cursor auf dem Monitor gemacht hat. Das ist jetzt aber auch nur geraten.

    In den letzten paar Tagen hab ich mal langsam angefangen mich da ran zu trauen.

    Jedoch Schritt für Schritt. Ist ja klar
    1. Also erst mal eine UserForm anlegen und die Datensätze auszuwählen.
    2. Dann das Diagram anlegen.
    3. Und zum Schluss halt die Messwerte aus dem Diagram auszulesen.

    Aber anscheint gibt es doch mal wieder Probleme bei mir.
    Ich will über 8 CheckBoxen auswählen welche Kanäle in dem Diagram übertragen werden sollen.
    Die Anzahl der aufgezeichneten Kanäle ist bei mir Variabel.
    Und um das Programm Bedienerfreundlich zu machen sollen die CheckBoxen für die Bedienung gesperrt sein wenn es keinen Datensatz von diesem Kanal gibt.

    Dummerweise sind bei mir die CheckBoxen nie gesperrt.
    Mach ich da was falsch?

    Quellcode

    1. Private Sub UserForm_Click()
    2. CheckBox1.Enabled = False 'Alle Deaktivieren (Handeintrag nicht möglich)
    3. CheckBox2.Enabled = False
    4. CheckBox3.Enabled = False
    5. CheckBox4.Enabled = False
    6. CheckBox5.Enabled = False
    7. CheckBox6.Enabled = False
    8. CheckBox7.Enabled = False
    9. CheckBox8.Enabled = False
    10. Select Case Kanaele_U 'Anzahl der U-Kanäle aus dem Tabellenkopf ermitteln
    11. Case 8
    12. CheckBox1.Enabled = True 'Eingabe frei geben für alle aufgezeichnete Kanäle (Handeintrag möglich)
    13. CheckBox2.Enabled = True
    14. CheckBox3.Enabled = True
    15. CheckBox4.Enabled = True
    16. CheckBox5.Enabled = True
    17. CheckBox6.Enabled = True
    18. CheckBox7.Enabled = True
    19. CheckBox8.Enabled = True
    20. Case 7
    21. ...
    22. ...
    23. ...


    gruß Nick
    OK was das Datenauslesen von Daten betrifft die zwischen zwei Messwerten liegen angeht.
    Da hab ich jetzt eine andere Lösung gefunden.

    Statt sie aus dem Diagram zu ermitteln.
    Werde ich sie jetzt durch Interpolation errechnen und dann im Diagram anzeigen lassen.

    Das ist zwar rückwärts gedacht aber sollte (müsste) funktionieren.

    mfg
    NICK