Announcement

Collapse
No announcement yet.

Excel per Microsoft.Office.Interop.Excel

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

  • Excel per Microsoft.Office.Interop.Excel

    Hallo zusammen,
    kennt jemand eine gute Seite, auf der die Zugriffe per Microsoft.Office.Interop.Excel gut erklärt sind. Z.B. Zugriff auf Chart und dessen formatierung usw.

    Danke

  • #2
    Hallo,

    eine Seite kann ich dir nicht empfehlen, aber eine andere Vorgehensweise:

    Zeichen in Excel ein Makro auf in dem alle Aktionen enthalten sind die dann auch im Programm sein sollen. Portiere den Marko-Code nach VB.net.


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

    Comment


    • #3
      Man kann so nicht alles übernehmen...
      z.B.

      Macro Excel
      Code:
      .Selection.Font.ColorIndex = 5
      
      .Sheets("Diagramm").Select
              With .ActiveChart
                  .ChartTitle.Select
                  .Application.Selection.Characters.Text = "Titel"
      ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
      'Dies funktioniert auch nicht
                  With .Axes(xlValue).AxisTitle
                      .Select
                      .Application.Selection.Characters.Text = "YTitel"
                  End With
      ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
             End With
      Das funktioniert nicht...
      Zuletzt editiert von M Merlin; 30.10.2009, 20:33.

      Comment


      • #4
        Ich hab auch portieren und nicht kopieren erwähnt Die Objekte für Excel und das Worksheet müssen in .net-Marnier erstellt werden.

        Wie die Eigenschaften in Excel heißen und welche Werte gesetzt werden müssen zeigt das Makro.


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

        Comment


        • #5
          Ich hab auch portieren und nicht kopieren erwähnt
          Entschuldige, ich bin zwar dankbar für deine Hilfe, aber manche Antworten sind keine wirkliche Hilfe, sonder ziemliche Schlaumeier antworten.

          Woher soll man wissen wie z.B. der Code ( .Selection.Font.ColorIndex = 5 ) aus dem Macro ins .Net portiert wird, wenn ich es nirgends nachlesen kann....

          Solche Antworten habe ich von dir schön öfters in diesem Forum gelesen, ich denke das kannst du dir auch verkneifen ... denn das hilft keinem weiter ... Das solltest du als Moderator eigentlich wissen ...

          Comment


          • #6
            Woher soll man wissen wie z.B. der Code ( .Selection.Font.ColorIndex = 5 ) aus dem Macro ins .Net portiert wird, wenn ich es nirgends nachlesen kann....
            In dem man überlegt, was der Code macht und weiter überlegt, wie das in der Zielsprache umzusetzen ist

            Man nennt das auch programmieren. Was weniger bedeutet, Befehle aneinander zu reihen, sondern Lösungen zu suchen und umzusetzen
            Christian

            Comment


            • #7
              Hallo M Merlin,

              danke für deine Hinweise.

              Wenn du schon seit Aug. 2006 im Forum gemeldet bist kann ich schon davon ausgehen dass du wissen solltest wie die VB(.net)-Syntax ist. Weiters solltest du wissen bzw. mit deiner Intelligenz erkennen können dass VBA und VB.net eine ähnliche Syntax haben.

              Dies vorausgesetzt sollte erkannt werden dass das VB-Schlüsselwort With im Makro steht. Somit sollte weiters die Bedeutung von .Selection.Font.ColorIndex = 5 in Zusammenhang mit With eine Zuweisung einer Eigenschaft sein. Und zwar zu dem Objekt das unter With angegeben wurde.

              Hättest du also das Marko richtig kopiert würde es eher funktionieren. Aber anscheinend ist Copy & Paste zu hoch für dich.

              Mir ist bewusst dass das keine hilfreiche Antwort ist, aber was solls wenn ich nichts voraussetzen kann von jemanden der scheinbar schon so lange dabei ist.

              Programmieren heißt auch eigenständiges logisches denken!


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

              Comment


              • #8
                mit deiner Intelligenz erkennen
                Ich möchte dich nochmals darauf hinweisen das solche Anmerkungen hier nichts zu suchen haben. Du als Moderator solltest dich mit solchen andeutenden Beschimpfungen zurückhalten...

                Es ging mir auch nicht um das With... sondern um den Rest der Umsetzung
                Mir scheint es das du dich mit der Problematik Steuerung Excel per .net noch nicht näher beschäftigt hast, sonst würdest du die Problematik wissen und nicht auf irgendwelchen With rumreiten....

                Die Umsetzung der Syntax ist nicht eindeutig:
                Macro VBA
                Code:
                Sheets("Diagramm ").Select

                .Net
                Code:
                XLSObj = New Microsoft.Office.Interop.Excel.Application
                Dim SheetDiagramm As Microsoft.Office.Interop.Excel.Chart = CType(XLSObj.ActiveWorkbook.Sheets("Diagramm"), Microsoft.Office.Interop.Excel.Chart)
                SheetDiagramm.Select()

                Ich denke weiterhin, dass man dieses nicht nur durch logisches Denken heraus bekommt, sondern es sehr hilfreich ist, wenn man die Syntax nachlesen kann... Gerade im Bereich Diagramm sind viele Sachen die man nicht direkt ins .Net bringen kann...
                Ein weiteres Beispiel:

                VBA
                Code:
                With ActiveChart.Axes(xlValue)
                        .MinimumScale = 200
                        .MaximumScale = 400
                    End With
                .Net
                Code:
                Dim XAxes As Microsoft.Office.Interop.Excel.Axis = CType(SheetDiagramm.Axes(Microsoft.Office.Interop.Excel.XlAxisType.xlCategory, Microsoft.Office.Interop.Excel.XlAxisGroup.xlPrimary), Microsoft.Office.Interop.Excel.Axis)
                            With XAxes
                              .MinimumScale = 200
                              .MaximumScale = 400
                            End With

                Comment


                • #9
                  Hallo,

                  das ist keine Beschimpfung sondern eine Festellung und eine Antwort auf deine Antwort.

                  Welche Antwort erwartest du denn wenn der VBA-Code schon fast kopiert werden kann. Die ganze Syntax von Excel/VBA ist in Excel dokumentiert. Der kleine Schritt nach VB.net ist logisch - noch dazu da die Syntax so ähnlich ist.
                  Da ich das selber gemacht habe kann ich das behaupten.

                  Dennoch würde ich sofern möglich auf Excel für die Diagrammdarstellung verzichten und eine .net-Komponente nehmen.

                  Aber ich werde deinen Ratschlag befolgen und dir meine Antworten ersparen


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

                  Comment

                  Working...
                  X