Announcement

Collapse
No announcement yet.

Kommunikation mit Excel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Kommunikation mit Excel

    Hallo

    Ich bin gerade dabei ein Programm zu entwerfen welches mit Excel interagieren soll.
    Das öffnen von Excel stellt herbei kein Problem dar, mein Problem, besser gesagt meine Frage ist: ist es möglich aus der Excel-Anwendnung heraus, den Wert einer bestimmten Zelle an mein C#-Programm zu "senden" sobald der User in der Excel-Tabelle/Excel-Worksheet etwas ändert?

    Geh ich recht in der Annahme, dass ich also auf ein bestimmtes Ereignis reagieren muss?

    Wenn ja, wie geht das? Wenn nein, was könnte ich sonst machen?

    herzlichen Dank im Vorraus

    Gruß

  • #2
    Ich habe auch schon bereits aus C# heraus auf Excel zugegriffen.

    Problem bei dir ist, dass du möchtest, dass Excel Daten an dein C# Programm weiter gibt.
    Ich habe keine Ahnung ob das wirklich möglich ist.
    Aber da ich sehe, dass auch sonst niemand hier einen besseren Vorschlag für dich hat, hätte ich da eine andere Idee.

    Ob das jetzt die beste Möglichkeit ist, darüber kann man sich ja streiten...
    Aber es ist wenigstens eine Möglichkeit.

    Du könntest z.B mittels VBA versuchen auf dein Ereigniss zu reagieren und mittels "Call" dein C# Programm aufrufen.
    Auf diese Weise kannst du soviel ich weiß zwar keine Parameter mitgeben, aber du kannst ja innerhalb des C# Programms dir die Daten aus Excel herauslesen.

    Ich hoffe das hilft dir weiter.

    Gruß

    Comment


    • #3
      Hallo IHEP

      danke für deinen vorschlag, idee ist nicht schlecht.
      ich glaube aber nicht, dass es so funktionieren wird.

      mir ist da vor kurzem auch eine idee in den kopf geschossen:

      sobald sich seitens von excel etwas ändert, wird ein ereignis ausgelöst. dieses ereignis kann ich jetzt theoretisch, anstatt es im vba-code abzufangen, in meinem c# programm abfangen. soweit ich weiß hat man mit Microsoft.Office.Interop.Excel die möglichkeit, makros im excel-file auszuführen. wenn also jetzt diese ereignis ausgelöst wird, könnte ich ja die methode ExecuteExcel4Macro("MAKRONAME") aufrufen. diese methode hat object als rückgabewert, so würd ich dann also zu meinen daten kommen

      naja, das wär meine idee.

      ausprobieren müsst ich das ganze halt noch

      Comment


      • #4
        Hallo da_halbi,

        deine Idee hört sich auch gut an.
        Wusste bisher nicht, dass man Makros über C# aufrufen kann.
        Kannst ja mal berichten ob es geklappt hat.

        Aber was ich mich noch frage: "Wie willst du das Ereignis abfangen?
        Meinst du es gibt ein Event innerhalb C#, das überprüft ob sich Excel bzw. dein Datenblatt verändert?
        Also mir ist da nichts bekannt, daher dachte ich, dass wenn es ein Event für so etwas gibt, dieses eher über VBA abzufangen ist.

        Gruß
        IHEP

        Comment


        • #5
          ja, das gibt:

          http://support.microsoft.com/kb/823981

          Comment

          Working...
          X