online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon FTWilli vom 18.04.2020, 02:22 Options

eingelesene Diagramdaten in einem XY-Diagramm darstellen

Hallo liebe Profi's.

Ich hab ein mittelschweres Problem mit Excel 2003 / VBA6 und ich weiß einfach nicht mehr weiter. Ich hoffe ihr könnt mir helfen ...

Fangen wir von vorne an.

Jeden Tag bekomme ich in etwa 100 Messdaten in jeweils einer Exceldatei. Eine Datei besitzt dabei immer den gleichen Aufbau. Am Anfang steht immer unwichtiges Zeug und die wichtigen Daten beginnen ab B77 und hören bei C200 auf. Es handelt sich dabei um XY Werte, die eine einzelne Kurve bilden.

Um alle Daten in eine Excel zu laden benutze ich folgenden Code.



Public Sub EinlesenDaten()
    Dim intFilecount As Integer
    Dim strFileName As String
    Dim objSheet As Worksheet
    Application.ScreenUpdating = False
    Set objSheet = ThisWorkbook.Worksheet
    With Application.FileSearch
        .NewSearch
        .LookIn = "C:\testordner\daten"
        .FileType = msoFileTypeExcelWorkbooks
        .Execute
        For intFilecount = 1 To .FoundFiles.Count
            strFileName = Dir$(.FoundFiles.Item(intFilecount))
            GetObject (.FoundFiles.Item(intFilecount))
            With Workbooks(strFileName).Worksheets(1)
                .Range("B77:C200").Copy _
                    objSheet.Cells(objSheet.Rows.Count, 1). _
                    End(xlUp).Offset(1)
            End With
            Workbooks(strFileName).Close SaveChanges:=False
        Next
    End With
    With Application
        .CutCopyMode = False
        .ScreenUpdating = True
    End With
End Sub
[/quote]


Das klappt soweit ganz gut.
Es werden alle wichtigen Daten untereinander eingelesen". Nun möchte ich  alle  Daten in einem XY Diagramm einlesen um möglich Vorgänge zu erkennen. Wichtig ist dabei das die einzelenen Kurven (1 Kurve ist 1 Datei mit ihren unterschiedlichen Messwerten) alle in dieses Diagramm eingelesen werden.

Um es etwas verständlicher zu sagen bzw. zu zeigen werd ich mal den Aufbau der Gesamtdatei aufzeigen.


[code]

Zeile       X                    Y
1              1                    2          'Beginn Messdaten Kurve 1 
2              2                    5,6
.
.
.
20      0,000                     14,03   'Ende Messdaten kurve 1
21          1                    2,394  'Beginn Messdaten Kurve 2
.
.
.
30    0,000                 15.34  ' Ende Messdaten Kurve 2 
.
.
usw




Das Ende einer Messreihe ist dann gegegeben wenn der X- wert = 0 ist. Es soll also von 1 zu 20 alle Daten in das Diagramm als eine Kurve eintragen und bei 21 zu 30 eine neue Kurve eintragen.

Mit wenig Datenreihen wäre dies ja kein Problem aber bei 100 kann man keinen Makrorecorder anwenden.

Könnt ihr mir irgendwie helfen? Ihr seit meine letzte Hoffnung.

Habt vielen Dank im Vorraus.

P.S. Wenn ihr etwas nicht verstehen solltet oder ich unverständlich geschrieben habe, liegt das sicher daran das ich mir die ganze Nacht um die Ohren schlage um dieses Problem zu lösen.


Antwort schreiben

Antwort 1 von Primut vom 18.04.2020, 03:21 Options

Hi,
nur eine ganz kleine Nebenbei-Antwort, weil mir die Zeit für eine komplette Lösung fehlt:

Zitat:
Mit wenig Datenreihen wäre dies ja kein Problem aber bei 100 kann man keinen Makrorecorder anwenden.

Warum???
Du kannst doch beispielsweise den Makrorekorder nur für den ersten Datensatz benutzen und dann das Makro entsprechend erweitern, nämlich das Makro in einer Schleife wo entsprechend hochgezählt wird, mit den richtigen variablen Bezügen wiederholen lassen.

Gruß
    Primut

Antwort 2 von FTWilli vom 18.04.2020, 03:58 Options

Zitat:

Du kannst doch beispielsweise den Makrorekorder nur für den ersten Datensatz benutzen und dann das Makro entsprechend erweitern, nämlich das Makro in einer Schleife wo entsprechend hochgezählt wird, mit den richtigen variablen Bezügen wiederholen lassen.


Naja - entweder es ist zu spät oder ich stelle mich gerade zu blöde an ...

Könntest du mir, wenn du die dafür Zeit hast, mal deinen Lösungsansatz schicken???
Bei mir kommt dann immer ein unbekannter Lauffehler raus!!! (Und die Zeilen sind nicht verbunden!!)

Antwort 3 von Primut vom 18.04.2020, 22:14 Options

Also ich hoffe, das bekommt auch ein anderer hin, mir fehlt wie schon erwähnt die Zeit.

Für ein komplettes Makro fehlen aber dann noch ganz konkrete Daten, wie beispielsweise von wo nach wo soll nach welchem System wohin eingelesen werden, wieviel Datenreihen etc.....

Viel Erfolg

    Primut

Antwort 4 von Beverly vom 19.04.2020, 08:27 Options

Hi Willi,

ich weiß nicht, ob ich das Problem richtig verstanden habe, aber versuche es mal so
Sub diagramm()
    Dim loZeile As Long
    Dim chDiagramm As Chart
    Dim strStart As String
    Dim strEnde As String
    Set chDiagramm = ActiveSheet.ChartObjects(1).Chart
    With chDiagramm
        .SetSourceData Source:=Range("IV1")
        strStart = "B77"
        For loZeile = 77 To 200
            If Cells(loZeile, 3) = 0 Then
                strEnde = "B" & loZeile
                .SeriesCollection.NewSeries
                With .SeriesCollection(.SeriesCollection.Count)
                    .XValues = Range(strStart & ":" & strEnde)
                    .Values = Range(strStart & ":" & strEnde).Offset(0, 1)
                End With
                strStart = "B" & loZeile + 1
            End If
        Next loZeile
    End With
End Sub

Bis später,
Karin

Ähnliche Themen

Wie kann ich Datenreihen automatisch kürzen lassen?
Gewaltinho  31.05.2007 - 94 Hits - 4 Antworten

Excel Diagramm 2 Messwerte uebereinander darstellen
Sydney-Tim  29.04.2007 - 258 Hits - 1 Antwort

Diagramm-Darstellung
holztobi  20.08.2007 - 27 Hits -

Treppen Diagramm
yuan  07.12.2007 - 142 Hits - 2 Antworten

Diagramm in Excel
ohneahnungsein  29.02.2008 - 79 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Sun Jan 25 18:15:21 2026