Excel Grafik erstellen (verschiedene Spalten)



  • Hallo miteinander

    Mitlerweile bin ich am verzweifeln. Egal, was ich versuche, es funktioniert nicht....

    Ich möchte aus einer Datenquelle (5 Spalten) Diagramme erstellen. Ein Übersichtsdiagramm, dann Spalte 2-5 einzeln. Das Diagramm ist ein XY. (Benutze das COM Objekt)

    Sobald die Spalten nicht mehr nebeneinander sind, funktioniert gar nichts mehr. Beim Debuggen wird die Anwendung abgebrochen und eine Fehlermeldung wird angezeigt.

    Das ist das Makro vom Excel VBA

    Range("A21:A40,C21:C40,G21:G40").Select

    Jetzt das ganze in C#

    1. Aneinanderliegende Spalten (funktioniert)
    Range m__chartRange = m__xlWorkSheet.get_Range(strUpperLeftCel, strLowerRightCel);
    m__xlChart.SetSourceData(m__chartRange, Type.Missing);
    m__xlChart.ChartType = XlChartType.xlXYScatterLinesNoMarkers;
    m__xlChart.HasTitle = true;
    m__xlChart.ChartTitle.Text = strTitle;
    
    1. Getrennte Spalten (funktioniert nicht)
    Range m__chartRange = m__xlWorkSheet.get_Range("A1:A37,C1:C37,E1:E37,J1:J37", Type.Missing);
    m__xlChart.SetSourceData(m__chartRange, Type.Missing);
    m__xlChart.ChartType = XlChartType.xlXYScatterLinesNoMarkers;
    m__xlChart.HasTitle = true;
    m__xlChart.ChartTitle.Text = strTitle;
    

    3)MSDN Beispiel (funktioniert auch nicht)
    http://msdn.microsoft.com/en-us/library/aa168292(v=office.11).aspx

    rng = ThisApplication.get_Range("Test", Type.Missing);
    for (int i = 1; i <= rng.Areas.Count; i++)
    { 
        System.Diagnostics.Debug.WriteLine(
            rng.Areas[i].get_Address(Type.Missing, Type.Missing, 
            Excel.XlReferenceStyle.xlA1, Type.Missing, Type.Missing));
    }
    

    Die Fehlermeldung ist dann immer in etwa so:

    "Ausnahme von HRESULT: 0x800A03EC"
    bei Excel._Worksheet.get_Range(Object Cell1, Object Cell2)
    bei MotionAnalyzer.CExcelWriter.vDrawChart(String strUpperLeftCel, String strLowerRightCel, String strTitle, Boolean bAutoscale, Boolean bNewWorkSheet, Boolean bAtEnd) in C:\SVNDaten\Tools\MotionAnalyzer\ExcelWriter.cs:Zeile 225.
    bei MotionAnalyzer.Form1.CopyClipboardBackgroundWorker_RunWorkerCompleted(Object sender, RunWorkerCompletedEventArgs e) in C:\SVNDaten\Tools\MotionAnalyzer\Form1.cs:Zeile 1016.
    bei System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    bei System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)

    Ich habe keine Ahnung, was ich falsch mache...

    Könnt Ihr mir eventuell helfen?
    MFG
    P51D


Anmelden zum Antworten