Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Diagrammdaten ein- und ausblenden

Betrifft: Diagrammdaten ein- und ausblenden von: Torsten
Geschrieben am: 17.09.2020 12:01:40

Hallo zusammen,

ich habe ein Problem mit der Darstellung von Daten innerhalb von Diagrammen.
Für die Auswertung von Temperaturen möchte ich die gemessenen Werte mittels Kurve in einem Punkt- oder Liniendiagramm darstellen, um schnell Abweichungen zu vorherigen Tagen erkennen zu können.
Die Daten hole ich mir von einem Server, welcher sie mir wie in den Sheets mit Datum ausgibt. Ich möchte diese Daten einfach nur herunterladen und in die freien Sheets kopieren, weshalb ich mir mit Excel etwas umständlich mit der Wenn-Formel ein extra Sheet erstellt habe, um die Sensordaten zu gruppieren und leere Stellen mit #NV zu füllen.
In der Beispieldatei sind jetzt nur die Daten von 2 Sensoren, es werden aber deutlich mehr sein, wenn ich alle auslese. Zudem werden es mit der Zeit immer mehr und umfangreichere Datensätze werden, weshalb ich gerne einzelne Datensätze ausblenden würde, da es sonst nur noch schwer erkennbar sein wird, welche Kurve wozu gehört.
Ich hatte schon überlegt, ob man dies mit einer Pivot Tabelle machen kann. Die gelesenen und geschauten Tutorials dazu haben mir dazu aber wenig Hoffnung gemacht.
Habt ihr eine Idee wie ich die Daten aufbereiten sollte, um sie entsprechend darstellen zu können? Wie gesagt, möchte die neuen Datensätze dann am besten nur downloaden und reinkopieren, ohne großartige Formatierung und Bearbeitung.
Später will ich das dann nach Möglichkeit als Vorlage für weitere Daten anderer Sensoren nutzen.
Ich hoffe mit der Beispieldatei, sind meine Erklärung verständlich.

Viele Grüße
Torsten

https://www.herber.de/bbs/user/140285.xlsx

Betrifft: AW: Diagrammdaten ein- und ausblenden
von: fcs
Geschrieben am: 18.09.2020 08:16:37

Hallo Torsten,

ich hab mir deine Daten mal angesehen.

Grundsätzlich ist es kein Problem diese Daten, die pro Datum kommen, per Makro einzulesen und für die Diagrammdarstellung in eine gewünschte Form zu bringen.

Ich hab jetzt eine Fragen/Anmerkungen zur Zeitachse:
In deinen Beispieldaten für den 1.1.2020 und 2.1.2020 beginnen die Messdaten zu unterschiedlichen Uhrzeiten (07:33:52 bzw. 09:54:59)
Beide Messreihen haben 80 Messpunkte (mit und ohne Messwerte) decken aber unterschiedliche Laufzeiten 00:24:59 (bis 07:43:59) bzw. 00:15:00 (bis 10:09:59).

In deinen Diagrammen stellst du dann die Temperaturen über den Messpunkte dar.
Ist das wirklich so gewollt?
Wäre es nicht sinnvoller hier die Messwerte über der Laufzeit dazustellen?

Ich habe die Daten der Tage jetzt per Makro in eine Tabelle auf dem Blatt "Daten" übertragen.
Dabei werden zu jeder Messung Datum Zeit, Laufzeit, Messpunkt, Messgröße und Wert erfasst.

In dieser Form ist eine Auswertung per Pivot-Tabellenbericht möglich.
Für jedes Diagramm muss eine Kopie des Tabellenblatts mit dem Pivot-Bericht erstellt werden und dann die Filterwerte angepasst werden. Die Diagramme kann man dann auf ein separates Blatt verschieben.

Zur Aktualisierung der Auswertungen muss dann nach dem Ergänzen eines Tages nur der Pivot-Bericht auf einem der Blätter aktualisiert werden.

https://www.herber.de/bbs/user/140301.xlsm

LG
Franz

Betrifft: AW: Diagrammdaten ein- und ausblenden
von: Torsten
Geschrieben am: 18.09.2020 14:28:34

Hallo Franz,

vielen Dank, die Variante mit der Zeitachse ist sehr viel besser gelöst. Ich hatte die Messpunkte gewählt, da ich mit der zeitlichen Darstellung verschiedener Tage Probleme hatte. Auf deine Variante bin ich gar nicht gekommen.

Leider tritt bei neuen Daten immer wieder ein Fehler auf.

Laufzeitfehler '1004':
Anwendungs- oder objektdefinierter Fehler

wksDaten.Cells(Zeile_D, 3) = datLaufzeit
Ich denke, in der Datei sollte es reduzierbar sein.
Hast du eine Idee.

Viele Grüße
Torsten

https://www.herber.de/bbs/user/140313.xlsm

Betrifft: AW: Diagrammdaten ein- und ausblenden
von: fcs
Geschrieben am: 18.09.2020 15:56:48

Hallo Torsten,

auch nach fast 30 Jahren arbeiten mit Excel wird man immer mal wieder von kleinen Gemeinheiten überrascht.

Es gibt einen minimal negativen Wert von -5,29E-13 wenn unter VBA in der 1. Datenzeile (=Starzeit) die vom Makro berechnete Startzeit von der Summe aus Datum und Zeit abgezogen wird, um die Laufzeit zu berechnen. Hier kommt die Rechengenauigkeit von Excel ins Spiel.
Negative Werte können unter Excel aber nicht als Datum/Zeit angezeigt werden.
Im VBA-Editor wird zu diesem Zeitpunkt für die Variable datLaufzeit der Wert #00:00:00# angezeigt - alles scheint OK.

Warum es dann beim Eintragen des Wertes der Variablen in die Zelle zum Fehler kommt - das wissen (oder auch nicht) nur die Excel-Götter bei Microsoft.

Ich hab jetzt eine Fehler-Behandlung eingebaut, die in diesem Fall die Laufzeit auf 0 Sekunden setzt.

Noch 2 Hinweise:
Wenn du die Tabelle im Blatt "Daten" komplett leerst, dann musst du in den Pivot-Tabellenberichten das Feld "Laufzeit" ggf. neu gruppieren nach Stunden und Minuten.
Du musst die Daten der Messreihen im Blatt "Daten" nicht löschen, um bestimmte Tage im Diagramm zu vergleichen. Du kannst im Diagramm den Filter für das Datum auf die Tage setzen, die du vergleichen möchtest.

LG
Franz
Sub prcMesswerte_nach_Daten()
  'Übertragung der Messwerte eines Tages ins Blatt Daten
  Dim wksDaten As Worksheet
  Dim wksMesswerte As Worksheet
  Dim Zeile_M As Long, Zeile_D As Long, spa_M As Long
  Dim datZeit0 As Date, datDatum As Date, datZeit As Date, datLaufzeit As Date, MP As Long
  Dim iSh As Integer, arrSh() As String, sMsg As String
  
  On Error GoTo Fehler
  
  Set wksDaten = Worksheets("Daten")
  
  With wksDaten
    'letzte ausgefüllte Zeile in "Daten"
    Zeile_D = .Cells(.Rows.Count, 1).End(xlUp).Row
    If .Cells(Zeile_D, 1) = "" Then
        Zeile_D = Zeile_D - 1
    End If
  End With
  
  For Each wksMesswerte In ActiveWorkbook.Worksheets
    If IsDate(wksMesswerte.Name) Then
      iSh = iSh + 1
      ReDim Preserve arrSh(1 To iSh)
      arrSh(iSh) = wksMesswerte.Name
      sMsg = sMsg & vbLf & iSh & " = " & arrSh(iSh)
    End If
  Next
  
  If iSh = 0 Then
    MsgBox "Es gibr keine Blätter mit Datum als Name"
  Else
    iSh = InputBox("Bitte Nummer des gewünschten Datums eingeben" & sMsg, _
        "Blatt mit Import-Daten wählen", 1)
    Select Case Val(iSh)
    Case 0 'Abgebrochen
      
    Case 1 To UBound(arrSh)
      Set wksMesswerte = ActiveWorkbook.Worksheets(arrSh(iSh))
      With wksMesswerte
        Zeile_M = 2
        datZeit0 = .Cells(Zeile_M, 1).Value + .Cells(Zeile_M, 2).Value
        MP = 0
        For Zeile_M = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
          datDatum = .Cells(Zeile_M, 1).Value
          datZeit = .Cells(Zeile_M, 2)
          datLaufzeit = datDatum + datZeit - datZeit0
          MP = MP + 1
          For spa_M = 4 To .Cells(1, .Columns.Count).End(xlToLeft).Column
            If Trim(.Cells(Zeile_M, spa_M)) <> "" Then
              Zeile_D = Zeile_D + 1
              wksDaten.Cells(Zeile_D, 1) = datDatum
              wksDaten.Cells(Zeile_D, 2) = datZeit
              wksDaten.Cells(Zeile_D, 3) = datLaufzeit
              wksDaten.Cells(Zeile_D, 4) = MP
              wksDaten.Cells(Zeile_D, 5) = .Cells(1, spa_M).Text
              wksDaten.Cells(Zeile_D, 6) = .Cells(Zeile_M, spa_M).Value
            End If
          Next
        Next Zeile_M
      End With
    Case Else
      MsgBox "ungültige Auswahl"
    End Select
  End If
  
'Fehler-Behandlung
Fehler:
  With Err
  
    Select Case .Number
    Case 0 'alles ok
    Case 1004
      datLaufzeit = TimeSerial(0, 0, 0)
      Resume
    Case Else
      MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
    End Select
  
  End With
End Sub


Betrifft: AW: Diagrammdaten ein- und ausblenden
von: Torsten
Geschrieben am: 21.09.2020 11:59:35

Hallo Franz,

das klappt jetzt super! Vielen, vielen Dank.
Die Hinweise werde ich beachten.

Eine Frage habe ich noch.
Wenn ich den Inhalt der Tabelle in "Daten" einmal lösche und auch die entsprechenden Sheets mit den Sensor Infos und neue Sheets einlese, kommen beim Datumsfilter weiterhin Tage, welche nicht mehr vorhanden sind. Kann man da irgendetwas machen?

Viele Grüße
Torsten

Betrifft: AW: Diagrammdaten ein- und ausblenden
von: fcs
Geschrieben am: 21.09.2020 13:17:53

Hallo Torsten,

unter den Optionen für die Pivot-Tabellenberichte kannst du im Register "Daten" die Option "Elemente beibehalten, die aus der Quelle gelöscht wurden" auf "keine" setzen.


LG
Franz

Betrifft: AW: Diagrammdaten ein- und ausblenden
von: Torsten
Geschrieben am: 21.09.2020 17:08:32

Hallo Franz,

danke für die ganze Hilfe. Jetzt läuft es rund.

Viele Grüße
Torsten

Beiträge aus dem Excel-Forum zum Thema "Diagrammdaten ein- und ausblenden"