VB6: Excel-Diagramm ansprechen, Datenquelle ändern

Von: , Frage gestellt am Sa, 16. Jun 2007

Hallo ihr Wissenden,

ich finde nieregdns Hilfe für mein Problem: Ich möchte aus Visual Basic heraus ein Diagramm ändern, dass sich in einer Excel-Datei, auf einem Arbeitsblatt befindet.
Habe folgenden Code schon zusammengewürfelt, weil ich eigentlich nicht viel Ahnung von dem Thema habe!:

Private Sub Erstellen_Click()
'öffnen
Dim Excel As Object
Set Excel = CreateObject("Excel.Application") 
Excel.Visible = False
Excel.Workbooks.open "C:/diagramme.xls“
    
Excel.Sheets("Diagramme").Select
ActiveSheet.Charts("Diagramm 1").Select 'Fehler

ActiveChart.SetSourceData Source:=Excel.Sheets("Daten").Range("A3:A6,C3:C6"), _
        PlotBy:=xlColumns


'excel schließen
Excel.ActiveWorkbook.Close SAVECHANGES:=True
Excel.Quit
End Sub


Bei "ActiveSheet.Charts("Diagramm 1").Select" kommt dann der Fehler 424 "Objekt erforderlich". Dass das Digramm so heißt, sagt mir ein aufgenommenes Macro. Ersetze ich den Namen durch den Index, kommt das gleiche.

Bitte um Hilfe
Gruß Simon

15 Antworten zu dieser Frage

  1. Antwort von nach 2 Stunden 0 hilfreich
    Re: VB6: Excel-Diagramm ansprechen, Datenquelle än

    Da bin ich noch mal :-)...

    Keiner ne Idee?

    Wenn ich anstatt

    ActiveSheet.Charts("Diagramm 1").Select 'Fehler
    ActiveChart.SetSourceData Source:=Excel.Sheets("Daten").Range("A3:A6,C3:C6"), _
            PlotBy:=xlColumns
    

    das hier
    Excel.ActiveSheet.Charts("Diagramm 1").SourceData = ...
    
    

    schreibe, kommt ein "Anwendungs- oder objektdefinierter Fehler"!

    Ich muss doch nur wissen, wie man die Datenquelle ändert, hiiiielfe!!
    Gruß Simon

    • Antwort von nach 3 Stunden 0 hilfreich
      Re^2: VB6: Excel-Diagramm ansprechen, Datenquelle

      Hi Simon, Keiner ne Idee?
      drängel nicht so, es ist spät Abends und WE, oder hast du den "Antworten in 2 Stunden für 2000€ pro Anfrage" Tarif gebucht?

      Diagramme sind seltsam, habe da oft Probleme mit,
      probier mal:

      for each C in ActiveSheet.Charts
      Msgbox C.name
      Next C

      und berichte mal was da so erscheint, nur so kann ich mich "rantasten"
      Und wenn der Code problemlos durchläuft, okay, nehmen wir halt mal die nächste deiner Codezeilen in Augenschein.
      Step by Step.

      Ich gebe zu, ein bißchen hinderlich ist es schon an diesem Pc kein Excel zu haben, also nix testen zu können :-(

      Gruß
      Reinhard

      • Antwort von nach 4 Stunden 0 hilfreich
        Re^3: VB6: Excel-Diagramm ansprechen, Datenquelle

        Hi Reinhard,
        viielen danke schonmal für deine Antwort!! drängel nicht so, es ist spät Abends und WE, oder hast du den
        "Antworten in 2 Stunden für 2000€ pro Anfrage" Tarif gebucht?
        *grins* jaa Tschuldigung, das beschäftigt mich nur garde so sehr ^^ for each C in ActiveSheet.Charts
        Msgbox C.name
        Next C
        Mhm da kommt in der ersten Zeile der selbe Fehler "Objekt erforderlich"...
        Das scheint wohl schon der erste Fehler zu sein. Vielleicht muss ich irgendwie erstmal ActiveSheet oder Charts definieren?! (Habe ich mal mit ActiveSheet und Charts als Object probiert, dann kommt aber "Objektvariable oder With-Blockvariable nicht festgelegt")

        Noch ne Ideeee?
        Gruß Simon

        • Antwort von nach 13 Stunden 0 hilfreich
          Re^4: VB6: Excel-Diagramm ansprechen, Datenquelle

          Hallo Simon,

          sitze gerade auch einen Rechner ohne Excel, aber ist Dein Diagramm ein Diagramm, dass in einem Tabellenblatt eingebaut ist oder ein Diagrammblatt?

          MfG Georg V. [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

          • Antwort von nach 17 Stunden 0 hilfreich
            Re^5: VB6: Excel-Diagramm ansprechen, Datenquelle

            sitze gerade auch einen Rechner ohne Excel, aber ist Dein
            Diagramm ein Diagramm, dass in einem Tabellenblatt eingebaut
            ist oder ein Diagrammblatt?
            Hi,
            es ist ein Diagramm, welches auf einem Tabellenblatt ist. Darum auch mein
            Excel.Sheets("Diagramme").Select !

            Gruß Simon

        • Antwort von nach 21 Stunden 0 hilfreich
          Re^4: VB6: Excel-Diagramm ansprechen, Datenquelle

          Mhm da kommt in der ersten Zeile der selbe Fehler "Objekt
          erforderlich"...
          Das scheint wohl schon der erste Fehler zu sein. Vielleicht
          muss ich irgendwie erstmal ActiveSheet oder Charts
          definieren?! (Habe ich mal mit ActiveSheet und Charts als
          Object probiert, dann kommt aber "Objektvariable oder
          With-Blockvariable nicht festgelegt")
          Noch ne Ideeee?
          Hi Simon,
          probier mal:

          For Each C In ActiveSheet.Shapes
              MsgBox C.Name
          Next C
          ActiveSheet.Shapes("Chart 2").Select
          



          Gruß
          Reinhard

          • Antwort von nach einem Tag 0 hilfreich
            Re^5: VB6: Excel-Diagramm ansprechen, Datenquelle

            For Each C In ActiveSheet.Shapes
            MsgBox C.Name
            Next C
            ActiveSheet.Shapes("Chart 2").Select
            Hi und danke Reinhard,
            Also da kommt auch sofort "Objekt erforderlich" sobald etwas mit ActiveSheet kommt!
            Hm ich verzweifel so langsam...
            Ich geb mal den Programmteil und alles was dazugehört frei, vielleicht, kann sich den mal jemand angucken (vielleicht einer mit VB6 und Excel?)
            http://home.arcor.de/simpsons-fun/TestProjekt.zip

            Ansonsten hätte ich da ne Lösung von Microsoft, dann würde ich halt ein neues Diagramm erstellen ( http://support.microsoft.com/kb/142387/de )
            Aber da kommt sofort ein Fehler, wenn ich den Bereich vom Quelle-Einstellen ändere, aber der Fehler lässt sich bestimmt leichter beheben, oder?
            Gruß Simon

            • Antwort von nach einem Tag 0 hilfreich
              Re^6: VB6: Excel-Diagramm ansprechen, Datenquelle

              For Each C In ActiveSheet.Shapes
              MsgBox C.Name
              Next C
              ActiveSheet.Shapes("Chart 2").Select
              Also da kommt auch sofort "Objekt erforderlich" sobald etwas
              mit ActiveSheet kommt!
              Hi Simon,
              ich habe kein Vb, es wurde mit XL2002 getestet und da lief es.
              Was mir einfällt, laß mal das Visible=false weg, das führt nur dazu daß man nach dem ersten Versuch die Datei nur noch schreibgeschüützt öffnen kann, oder man schießt die versteckten Excel-Instanzen mit dem Taskmanager ab.
              Und, hat mit dem Problem nichts zu tun, aber benutze bitte keine Vba bekannten Namen als Variablennamen, also bitte Excel in objExcel o.ä. abändern. Hm ich verzweifel so langsam...
              Völlig normale Entwicklung bei Umgang mit MS-Produkten :-))) Ich geb mal den Programmteil und alles was dazugehört frei,
              vielleicht, kann sich den mal jemand angucken (vielleicht
              einer mit VB6 und Excel?)
              http://home.arcor.de/simpsons-fun/TestProjekt.zip
              Entpacken kann ich die zip erst heute Abend. Ansonsten hätte ich da ne Lösung von Microsoft, dann würde ich
              halt ein neues Diagramm erstellen (
              http://support.microsoft.com/kb/142387/de )
              Aber da kommt sofort ein Fehler, wenn ich den Bereich vom
              Quelle-Einstellen ändere, aber der Fehler lässt sich bestimmt
              leichter beheben, oder?
              Muß ich erst testen um was sagen zu können. Und da ich nur Vba habe besteht dann natürlich immer noch die winzige Möglichkeit, daß sich gleicher Code, in VB oder in Vba gestartet, unterschiedlich verhält.

              Gruß
              Reinhard

            • Antwort von nach 2 Tagen 0 hilfreich
              Re^7: VB6: Excel-Diagramm ansprechen, Datenquelle

              Hi Reinhard ich habe kein Vb, es wurde mit XL2002 getestet und da lief es.
              Hm also du hattest den gleichen Code wie ich (also mit dem ganzen Code vorher, den ich hier gepostet habe?)? Was mir einfällt, laß mal das Visible=false weg, das führt nur
              dazu daß man nach dem ersten Versuch die Datei nur noch
              schreibgeschüützt öffnen kann, oder man schießt die
              versteckten Excel-Instanzen mit dem Taskmanager ab.
              Mhm ja danke, das habe ich so langsam auch bemerkt^^ Und, hat mit dem Problem nichts zu tun, aber benutze bitte
              keine Vba bekannten Namen als Variablennamen, also bitte Excel
              in objExcel o.ä. abändern.
              Ja werde ich machen, habe den Code auch nur von woanders Copiert:-) Hm ich verzweifel so langsam...
              Völlig normale Entwicklung bei Umgang mit MS-Produkten :-)))
              xD, ja die wollen wohl noch en bissel an neuzukaufenden Tastaturen verdienen!

              Vielen Dank auf jeden Fall schonmal
              Gruß Simon



Keine passende Antwort gefunden? Jetzt eigene Frage stellen!