Announcement

Collapse
No announcement yet.

Umstellung Office 2000 auf 2007

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

  • #16
    Gleiches wie bei der 13. Antwort. Also dass Point nicht als Punkt von System.Drawing erkannt wird sondern als Schnittstelle von Excel.

    Außerdem kann mit nur 1 Zeile Code keine Aussage getroffen werden - aber ich vermute es ist das gleiche wie vorhin.

    Jetzt merkst du bestimmt wie wichtig ein sauberer objekt orientierter Entwurf der Anwendung ist - dann treten diese Probleme gar nicht auf.

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #17
      Originally posted by gfoidl View Post
      aber ich vermute es ist das gleiche wie vorhin.
      Ja, so war's

      Originally posted by gfoidl View Post
      Jetzt merkst du bestimmt wie wichtig ein sauberer objekt orientierter Entwurf der Anwendung ist - dann treten diese Probleme gar nicht auf.

      mfG Gü
      Meinst Du damit, dass ich das System.Drawing sofort hätte dazu schreiben müssen?
      Dazu hätte ich erst mal wissen müssen, dass es dazu gehört. Wenn überhaupt, hätte ich eher vermutet, dass das was mit Zeichnen zu tun hat.

      Jetzt steht in der Fehlerliste nur noch der Hinweis:

      Warnung 1 Für folgende Komponenten, auf die verwiesen wird, sind aktualisierte benutzerdefinierte Wrapper verfügbar: Excel ,Office ,VBIDE.

      Wie kann ich das denn noch beseitigen?

      vG

      fredyx

      Comment


      • #18
        Meinst Du damit, dass ich das System.Drawing sofort hätte dazu schreiben müssen?
        Nein das meine ich nicht. Ich meine eine "saubere" Trennung von Daten und Präsentation in "Schichten".

        Bei deinem Code (und bei vielen anderen auch, die meisten) ist eine Mischung von Datenzugriff und Präsentation vermischt. Dies führt zu Problemen - früher oder später.
        Wird jedoch von vornhinein eine Trennung von Daten und Präsentation vorgenommen sind dies unabhängige Objekte und es kommt zu keiner "Vermischung". Der Datentransfer - dieser ist unablässlich - kann weiterhin auf einfache Weise geschehen indem zB List<...> (C#) bzw. List(Of ...) (VB.net) zwischen den Schichten getauscht werden.
        Hört sich jetzt kompliziert an und ich kann das in wenigen Sätzen nicht ausdrücken - es werden darüber ja auch Bücher mit einigen 100 Seiten geschrieben.
        Aber wenn du das Grundverständnis dafür entwickelt hast dann ist es logisch und du wirst nicht mehr in Versuchung kommen eine "Vermischung" zu erstellen.

        Warnung 1 Für folgende Komponenten, auf die verwiesen wird, sind aktualisierte benutzerdefinierte Wrapper verfügbar: Excel ,Office ,VBIDE.
        Jetzt sind wir wieder am Anfang dieses Themas.
        Es ging ja darum dass Excel 2007 mit Code der für Excel 2000 geschrieben wurde automatisiert wird. Deshalb sind die Office-Interop-Assemblies von Excel 2000 verwendet worden. Diese Warnung ist daher normal und kann nur beseitigt werden wenn die Interop-Assemblies - auch Wrapper genannt - von Excel 2007 verwendet werden.

        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #19
          Hallo Gü,

          Originally posted by gfoidl View Post
          Jetzt sind wir wieder am Anfang dieses Themas.
          Es ging ja darum dass Excel 2007 mit Code der für Excel 2000 geschrieben wurde automatisiert wird. Deshalb sind die Office-Interop-Assemblies von Excel 2000 verwendet worden. Diese Warnung ist daher normal und kann nur beseitigt werden wenn die Interop-Assemblies - auch Wrapper genannt - von Excel 2007 verwendet werden.

          mfG Gü
          Wie vewende ich die nun?

          Ist es damit getan, dass ich die Verweise auf Excel einmal lösche und wieder hinzufüge?

          vG

          fredyx

          Comment


          • #20
            Hallo zusammen,

            hat da nicht doch noch jemand einen Rat für mich?

            vG

            fredyx

            Comment


            • #21
              Hallo,

              beim Lauf des Programms treten aber jetzt doch noch Fehler auf.

              z.B. in diesem Programmteil:

              [highlight=vbnet]
              '-----> Excel öffnen

              exApp = New ApplicationClass() 'bei Excel 2007
              exApp.Visible = True


              'öffnet "PSA Watch Makros.xls"
              exWB = exApp.Workbooks.Open(System.Windows.Forms.Applicat ion.StartupPath & MakroDatei)


              'öffnet die Datei für die persönlichen Daten
              exWB = exApp.Workbooks.Open(PfadNamePD & "\" & PersönlDatei)

              exWB.Charts.Item(DiagrammName).Activate() 'Diagramm wählen

              [/highlight]

              kommt bei

              "exWB.Charts.Item(DiagrammName).Activate()"

              die Meldung:

              "Mitglied nicht gefunden. (Ausnahme von HRESULT: 0x80020003 (DISP_E_MEMBERNOTFOUND))"

              Mit Excel 2000 ging das so!!

              Die Zeile an sich ist auch nicht falsch, denn in dem folgenden Testprogramm kommt da keine Fehlermeldung und der Befehl wird ausgeführt.

              [highlight=vbnet]
              ' Excel starten:
              exApp = New ApplicationClass()

              exApp.Visible = True

              exWB = exApp.Workbooks.Open(System.Windows.Forms.Applicat ion.StartupPath & "\Dateiname.xls")

              exWB.Charts.Item("Diagramm1").Activate()[/highlight]

              Ich habe den Fehler, ich hatte exWB falsch deklariert!
              vG

              fredyx
              Zuletzt editiert von fredyx; 06.12.2008, 18:52.

              Comment


              • #22
                Warum verwendest du in Zeile 8 und 13 die selbe Variable für 2 verschieden Arbeitsmappen?

                mfG Gü
                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                Comment


                • #23
                  Originally posted by gfoidl View Post
                  Warum verwendest du in Zeile 8 und 13 die selbe Variable für 2 verschieden Arbeitsmappen?

                  mfG Gü
                  Ja, das ist mir heute auch schon aufgefallen, hat aber bisher nie Probleme gemacht. Evtl. deshalb, weil ich die 1. Datei nur öffnen mußte, um deren Makros in der 2. Datei zu verwenden.

                  Aber auch wenn ich das so ändere:

                  [highlight=vbnet]
                  'öffnet "PSA Watch Makros.xls"
                  exWB = exApp.Workbooks.Open(System.Windows.Forms.Applicat ion.StartupPath & MakroDatei)

                  'öffnet die Datei für die persönlichen Daten
                  exWB2 = exApp.Workbooks.Open(PfadNamePD & "\" & PersönlDatei)

                  exWB2.Charts.Item(DiagrammName).Activate() 'Diagramm wählen
                  [/highlight]

                  kommt dieselbe Fehlermeldung wie vorher.

                  Was nun?

                  Comment


                  • #24
                    Gibts das "Diagramm1".? <- wäre die Fehlermeldung.

                    Was wird für eine Code generiert wenn du in Excel 2007 ein Makro aufzeichnest das Diagramm1 wählt?

                    mfG Gü
                    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                    Comment


                    • #25
                      Ich habe den Fehler, ich hatte exWB falsch deklariert!

                      Comment


                      • #26
                        Originally posted by gfoidl
                        Bei deinem Code...ist eine Mischung von Datenzugriff und Präsentation vermischt. Dies führt zu Problemen - früher oder später.
                        Verstehst du jetzt warum ich auf saubere Programmierung dränge. Das vermeidet Fehler! Ist vielleicht anfangs schwerer umzusetzten (bis man es gewohnt ist) aber das Debuggen ist viel leichter.

                        Außerdem hätte(n) ich/wir den Fehler nie finden können denn die Deklaration hast du in den Posts immer verschwiegen.

                        mfG Gü
                        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                        Comment


                        • #27
                          Hier noch ein kurzer Nachtrag!

                          Originally posted by fredyx View Post
                          "für folgende Komponenten, auf die verwiesen wird, sind aktualisierte benutzerdefinierte Wrapper verfügbar:Excel,Office,VBIDE"
                          Dieser Fehler ließ sich beheben durch Doppelklick auf die Fehlermeldung.

                          Dann erscheint noch eine Erklärung dazu und die Frage, ob der Fehler behoben werden soll.

                          Manchmal muss man auch einfach Glück haben!

                          vG

                          fredyx

                          Comment

                          Working...
                          X