Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1200to1204
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Diagramme über Schleife ändern

Diagramme über Schleife ändern
Tipetan
Hallo Foren-Gemeinde,
Es besteht für mich die Aufgabe, mehrere gleiche Netzdiagramme (am Ende sind es 35 Stück) zu dynamisieren. Es soll in VBA mit Hilfe einer For…Next-Schleife pro Diagramm
  • die Datenquelle für das Netzdiagramm

  • ein Textfeld 1 mit einer Info und

  • ein Textfeld 2 mit einer anderen Info

  • geändert werden.
    Als vorbereitende Arbeit habe ich ein Netzdiagramm mit den beiden Textfeldern erstellt und anschließend kopiert.
    Jetzt zu meinem Problem. Das erste Diagramm wird absolut richtig verändert, doch ab dem 2ten Diagramm findet er die beiden Textfelder nicht. VB stoppt mit folgender Meldung:
    Laufzeitfehler ’-2147024809 (80070057)’:
    Der Index in der angegebenen Sammlung ist außerhalb des zulässigen Bereichs. 
    

    in der Zeile "oDia.Chart.Shapes(1).TextFrame.Characters.Text = TempText & "x°C""
    Wenn ich mir im ersten Schleifendurchlauf über das "Lokal-Fenster" das ChartObject "oDia" ansehe finde ich die beiden Textfelder. im 2ten und allen weiteren finde ich dort keine Textfelder.
    Kann mir bitte jemand weiterhelfen. Ich finde den Fehler nicht.
    Der Code sieht wie folgt aus
    Sub DiagrammQuelleAendern()
    Dim oBlattDiag As Worksheet
    Dim oBlattWerte As Worksheet
    Dim oDia As ChartObject
    Dim ns As Series
    Dim iZeile As Integer
    Dim iSpalte As Integer
    Dim arrDiag
    Dim i As Integer
    Dim OffsetDatenZeile As Integer
    Dim TempText As String
    TempText = "Durchschnittliche" & Chr(10) & "Tagestemperatur" & Chr(10)
    OffsetDatenZeile = 3
    Set oBlattDiag = Worksheets("Diagramm")
    Set oBlattWerte = Worksheets("Werte")
    For i = 1 To 4
    iZeile = OffsetDatenZeile + i
    Set oDia = oBlattDiag.ChartObjects(i)
    With oBlattWerte
    '---- Datenreihe Wert ändern
    oDia.Chart.SeriesCollection(1).Values = .Range(.Cells(iZeile, 2), .Cells(iZeile, 25) _
    )
    '---- Beschriftung der Rubrikenachse X
    oDia.Chart.SeriesCollection(1).XValues = .Range(.Cells(2, 2), .Cells(2, 25))
    '---- Diagrammtitel
    oDia.Chart.SeriesCollection(1).Name = .Cells(iZeile, 1)
    End With
    '---- Text für "Text Box 1" ändern
    oDia.Chart.Shapes(1).TextFrame.Characters.Text = TempText & "x°C"
    '---- Text für "Text Box 2" ändern
    oDia.Chart.Shapes(2).TextFrame.Characters.Text = oDia.Index & Chr(10) & oDia.Name
    '---- Diagramm formatieren
    DiagFormatDaten oDia.Chart
    Set oDia = Nothing
    MsgBox "Diagramm " & i & " ist fertig!"
    Next i
    Set oBlattDiag = Nothing
    Set oBlattWerte = Nothing
    End Sub
    

    Vielen Dank im Voraus
    TIPETAN

    7
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Benutzer
    Anzeige
    AW: Diagramme über Schleife ändern
    28.02.2011 09:26:52
    Uwe
    Hallo @TIPETAN,
    bis Du sicher, dass in Deinen Diagrammen die beiden Textfelder Bestandteil des Diagramms sind, denn der von dir beschriebene Fehler tritt bei mir nur auf, wenn ich die Textfelder nicht in das ChartObjekt eingefügt habe. Vielleicht kanns du eine Datei hochladen.
    Gruß, Uwe
    AW: Diagramme über Schleife ändern
    28.02.2011 09:49:49
    Beverly
    Hi,
    du verwendest ein Textfeld aus der Zeichnen-Symbolleiste? Bei meinem nachgebauten Beispiel gibt es mit deinem Code kein Problem - die Textfelder werden richtig erkannt in jedem der kopierten Diagramme.


    Anzeige
    AW: Diagramme über Schleife ändern
    28.02.2011 11:03:04
    Tipetan
    Hallo UWE,
    Hallo BEVERLY!
    Hier mein File: https://www.herber.de/bbs/user/73754.xls
    Ja ich habe das Textfeld aus der Zeichen Symbolleiste entnommen.
    Ich nehme an das die Textfelder im zweiten Diagramm enthalten sind, weil ich nachdem ich das erste markiert habe und anschließend kopiert und wieder eingefügt habe waren sie im zweiten enthalten.
    Vielen Dank bis hier her.
    TIPETAN
    AW: Diagramme über Schleife ändern
    28.02.2011 11:50:44
    Uwe
    Hallo, @TIPETAN,
    wie ich vermutet hatte, sind die Textfelder in deiner Chartkopie nicht im Objekt registriert.
    Setze im VBA-Editorfenster auf die Befehlszeile oDia.Chart.Shapes(1)... eine Haltemarke und fürhre den Programmteil mit F5 einmal bis zur Haltemarke aus.
    Öffne bitte im Editor unter Ansicht das "Lokal-Fenster" und öffne die Baumstruktur +oDia +Chart +Shapes. in der Variablien o.DIa.Chart.Schapes.count steht eine 2 für die beiden Textfelder.
    Wenn Du nun erneut F5 drückst, wird das zweite Diagramm gezeichnet bis das Programm an der Stoppmarke hält. Wieder in der Baumstruktur im Lokalfenster steht nun aber nun an der betreffenden Stelle eine 0, damit kennt dieses Diagramm kein Shape, also in Deinem Fall kein Textfeld.
    Komme im Moment nicht dazu, eine Korrekte Kopie hochzuladen.
    Gruß,
    Uwe
    Anzeige
    AW: Diagramme über Schleife ändern
    28.02.2011 12:02:31
    Beverly
    Hi,
    in deiner Arbeitsmappe sind zwar im 2. Diagramm die Textfelder vorhanden, werden jedoch aus unerklärlichen Gründen nicht erkannt - mit oDia.Chart.Shapes.Count wird 0 ausgegeben. Weshalb das in deiner Mappe so ist, kann ich nicht erklären, würde jedoch mal annehmen, dass die Mappe irgendwie korrumpiert ist. Hast du es schon mal in einer neuen Arbeitsmappe getestet?


    GELÖST: Diagramme über Schleife ändern
    28.02.2011 17:09:05
    Tipetan
    Hallo Beverly!
    Das wars. Die Datei war kaputt.
    Passiert so etwas öfter, dass Dateien kaputt gehen?
    Vielen Dank an Euch!
    Tipetan
    Anzeige
    AW: GELÖST: Diagramme über Schleife ändern
    28.02.2011 18:05:46
    Beverly
    Hi,
    naja, kann man schwer sagen, wie häufig das vorkommt - ist aber nun nicht so, dass das bei jeder 10. Mappe passiert. Nach meiner Erfahrung ist das eher selten der Fall, man sollte es nur im Gedächtnis behalten dass so etwas vorkommen kann und dass Fehlerursachen auch in korrumpierten Mappen liegen können.


    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige