Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Suchen und Ersetzen in Diagrammen

Suchen und Ersetzen in Diagrammen
19.04.2007 15:46:02
Torsten
Hallo
ich habe ein Excel-Tabellenblatt mit 30 kleinen Diagrammen (HP 9 Diag), die auf Datenfelder eines anderen Tabellenblatts (HP 9 Werte) referieren.
Die Tabellenblätter habe ich kopiert und umbenannt (HP 8 Diag, HP 8 Werte) und mit "Suchen und Ersetzen" auch die Referenzen in den Zellen ersetzen können (HP 9 durch HP 8). Leider wurden die 30 Diagramme in den Vorgang nicht mit einbezogen. Obwohl die Zellen die gleichen sind, nur eben die Blätter nicht.
Gibt es eine Möglichkeit, diesen Vorgang zu automatisieren? Sonst muss ich duch 30 Diagramme klicken. Und das ganze dann auch noch für HP 1, HP 2, HP 3, HP 4, HP... bis HP 7.
Kennt sich jemand damit aus?
Torsten

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen und Ersetzen in Diagrammen
19.04.2007 19:09:09
ingUR
Hallo, Torsten,
beim dialoggeführten Kopieren eines Tabellenblatts werden doch in der Regel die eingebettenten Diagramme des Tabellenblatts mitkopiert und die Datenreihenbezüge auf den Tabellenblattnamen der Kopie verändert; aus "HP 9 Diag" wird "HP 9 Diag (2)"
Wird nun der Tabellenblattname auf dem Reiter geändert, so ändern sich auch die Bezüge der Datenreihen in den eingebettenn Diagrammen der Seite. So wird z.B. wird aus =DATENREIHE(;;'HP 9 Diag (2)'!$C$2:$C$12;1) nach Umbennenung der Tabelle in "HP8 Diag" der Datenreihen-Referenzeintrag "=DATENREIHE(;;'HP8 Diag'!$C$2:$C$12;1)"
Wo also ist das Problem enstanden?
Es würde Zeit kosten, die besser für andere Lösungssuchen eingesetzt werden kann, wenn ich versuchen würde, mir eine für Deine Aufgabe, so wie ich meine sie zu verstehen, adäquate EXCEL-Beispielmappe zu erstellen, und ich wäre nicht einmal sicher, ob Dein Problematiken damit ausreichend vollständig beschrieben wäre. Vielleicht kannst Du zwei Arbeitsblätter mit Beispieleinträgen und Diagrammen hochladen, die erkennen lassen, was alles zu ändern ist, denn es ist sehr wohl möglich, automatisch die Datenreihen-Referenzen der eingebetten Diagramme unter Beachtung des aktiven Tabellennamens zu setzen.
Gruß.
Uwe

Anzeige
AW: Suchen und Ersetzen in Diagrammen
20.04.2007 13:52:50
Torsten
Hallo Uwe,
danke für die Hilfe. Aber die Datenreihen in den Diagrammen lässt Excel beim Kopieren von Blättern hübsch in Ruhe. Irgendwie auch logisch. Wenn die Diagramme eines Blattes "HP 9 Dia" auf die Daten des Blattes "HP 9 Tab" verweisen, warum sollte sich daran etwas ändern, nur weil "HP 9 Tab" unter z. B. "HP 8 Tab" kopiert wird. Und beim Kopieren eines Blattes mit Diagrammen "HP 9 Dia" nach "HP 8 Dia" passiert auch nichts, denn woher sollen die Diagramme der Kopie wissen, von welchem Blatt sie ihre Daten holen sollen?
Ein Beispiel habe ich hier: https://www.herber.de/bbs/user/41910.xls
Ich komme mit meinem Wissen hier nicht weiter.
Beste Grüße
Torsten

Anzeige
AW: Suchen und Ersetzen in Diagrammen
20.04.2007 15:42:00
ingUR
Gallo, Torsten,
danke für das Bereitsstellen einer Beispieltabelle mit Diagrammen.
Ich selber werde wohl erst morgen oder aber am Sonntag wieder Zeit finden, um den Versuch zu starten, Deine beschriebene Problematik mit den Diagrammen nachzuvollziehen.
Vielleicht gibt es aber auch bis dahin von anderer Seite den klärenden Hinweis.
Gruß,
Uwe

Anzeige
AW: Suchen und Ersetzen in Diagrammen
20.04.2007 17:53:00
ingUR
Hallo, Torsten,
bitte die nachfolgende Routine in einer Kopie der Arbeitsmappe ausführen, bevor das Ergebnis auf die endgültige Fassung übertragen wird, da bei der Untersuchung festgestellt wurde, dass es Datenserien(1) gab, deren Wertebezüge fehlerhaft sind ("#REF"") und die entsprechenden ChartObjekte gelöscht werden.
Falls dieses nicht erwünscht ist, ist die Zeile chtObj.Delete auszukommentieren oder zu entfernen. Der Hinweis für diese Fälle kann ggf. ebenso auskommentiert werden.
Die Prozedur ist in einem Standardmodulordner des VBA-Projektes in der Entwicklerumgebung abzulegen.
Der Aufruf kann aus einer beliebigen Tabelle der Mappe erfolgen [Strg][F8] :: ChgDataSeriesRef :: Ausführen.
Achtung: In der Arbeitsmappe werden ALLE Diagramme auf Tabellen, deren Tabellennamen den Bestandteil "Doku" sufweist, werden bearbeitet und jede Referenz wird durch "HP X Tab" ersetzt, wobei das X für die Ordnungszahl steht, die aus dem Tabellennamen hergeleitet wird.

Option Explicit
Sub ChgDataSeriesRef()
Dim ws As Worksheet, wsName As String
Dim chtObj As ChartObject, cht As Chart
Dim s As Integer, strF As String
For Each ws In Worksheets
ws.Activate
wsName = ws.Name
For Each chtObj In ActiveSheet.ChartObjects
If InStr(wsName, "Doku") Then wsName = Replace(wsName, "Doku", "Tab")
chtObj.Activate
With ActiveChart
strF = .SeriesCollection(1).Formula
If InStr(strF, "#REF") Then
MsgBox "Fehlerhafter Bezug im Chart (" & chtObj.Chart.Name & "): " & strF
chtObj.Delete
Else
.SeriesCollection(1).Formula = CheckWorksheetName(wsName, strF)
End If
End With
Next
Next
End Sub
Private Function CheckWorksheetName(wsName As String, strF As String) As String
Dim p1 As Integer, p2 As Integer
p1 = -1
p2 = -1
p1 = InStr(1, strF, wsName) 'Suche wsName für X-Werte
p2 = InStr(p1 + 1, strF, wsName) ' suche wsName für Y-Achse
If p2 

Viel Erfolg!
Uwe

Anzeige
AW: Suchen und Ersetzen in Diagrammen
23.04.2007 10:41:00
Torsten
Hallo Uwe,
alle Achtung, dass hat gepasst. Meinen allerherzlichsten Dank!!
Torsten
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Suchen und Ersetzen in Diagrammen


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Datei mit den Diagrammen, in denen Du Daten suchen und ersetzen möchtest.
  2. Kopiere das Tabellenblatt, das die Diagramme enthält, indem Du mit der rechten Maustaste darauf klickst und "Verschieben oder Kopieren" auswählst.
  3. Benenne das neue Blatt um, um die Referenzen zu aktualisieren (z.B. von "HP 9 Diag" nach "HP 8 Diag").
  4. Öffne die VBA-Entwicklungsumgebung mit [Alt] + [F11].
  5. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeinDateiname)" > "Einfügen" > "Modul".
  6. Kopiere den folgenden VBA-Code in das Modul:
Option Explicit
Sub ChgDataSeriesRef()
    Dim ws As Worksheet, wsName As String
    Dim chtObj As ChartObject, cht As Chart
    Dim strF As String
    For Each ws In Worksheets
        ws.Activate
        wsName = ws.Name
        For Each chtObj In ActiveSheet.ChartObjects
            If InStr(wsName, "Doku") Then wsName = Replace(wsName, "Doku", "Tab")
            chtObj.Activate
            With ActiveChart
                strF = .SeriesCollection(1).Formula
                If InStr(strF, "#REF") Then
                    MsgBox "Fehlerhafter Bezug im Chart (" & chtObj.Chart.Name & "): " & strF
                    chtObj.Delete
                Else
                    .SeriesCollection(1).Formula = CheckWorksheetName(wsName, strF)
                End If
            End With
        Next
    Next
End Sub

Private Function CheckWorksheetName(wsName As String, strF As String) As String
    Dim p1 As Integer, p2 As Integer
    p1 = InStr(1, strF, wsName) 'Suche wsName für X-Werte
    p2 = InStr(p1 + 1, strF, wsName) ' suche wsName für Y-Achse
    ' Hier kann der Code zur Anpassung des wsName hinzugefügt werden
End Function
  1. Schließe die Entwicklungsumgebung und kehre zurück zu Excel.
  2. Führe das Makro aus, indem Du [Strg] + [F8] drückst und ChgDataSeriesRef auswählst.

Häufige Fehler und Lösungen

  • Fehler: "#REF" in Diagrammen: Dieser Fehler tritt auf, wenn die Datenquelle ungültig ist. Du kannst den Fehler beheben, indem Du sicherstellst, dass die Referenzen korrekt sind, bevor Du das Makro ausführst.

  • Diagramme werden nicht aktualisiert: Vergewissere Dich, dass die Diagramme in den entsprechenden Arbeitsblättern aktiv sind. Das Makro funktioniert nur, wenn die richtigen Blätter ausgewählt sind.


Alternative Methoden

Eine manuelle Methode, um die Referenzen in Diagrammen zu ändern, besteht darin, jeden Diagramm einzeln zu öffnen und die Datenquelle manuell zu aktualisieren. Dies kann jedoch zeitaufwendig sein, insbesondere bei vielen Diagrammen.

Ein anderer Ansatz wäre die Verwendung von Excel-Daten suchen und ersetzen in Kombination mit den Diagrammschutzoptionen, um sicherzustellen, dass alle Bezüge aktualisiert werden.


Praktische Beispiele

Angenommen, Du hast ein Diagramm, das auf ='HP 9 Werte'!$C$2:$C$12 verweist. Nach dem Kopieren und Umbenennen des Blatts in "HP 8 Werte", sollte der Bezug im Diagramm automatisch auf ='HP 8 Werte'!$C$2:$C$12 aktualisiert werden, wenn Du das Makro ausführst.

Ein Beispiel für den VBA-Code, um die Änderungen in einem Diagramm zu überprüfen, könnte so aussehen:

If InStr(strF, "HP 9 Werte") Then
    strF = Replace(strF, "HP 9 Werte", "HP 8 Werte")
End If

Tipps für Profis

  • Nutze Kommentare im VBA-Code, um Deine Schritte zu dokumentieren. So kannst Du später leichter nachvollziehen, was jeder Teil des Codes bewirkt.
  • Teste den Code in einer Kopie Deiner Arbeitsmappe, um Datenverluste zu vermeiden.
  • Verwende Excel Tabstopp suchen und ersetzen, um effizienter durch die Arbeitsblätter zu navigieren.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass alle Diagramme aktualisiert werden? Führe das Makro aus, nachdem Du alle notwendigen Tabellenblätter kopiert hast. Es wird alle Diagramme auf den Blättern bearbeiten, die den entsprechenden Tabellennamen enthalten.

2. Was passiert, wenn das Makro einen Fehler findet? Das Makro zeigt eine Fehlermeldung an, wenn es auf einen "#REF" Fehler stößt, und löscht das fehlerhafte Diagramm, es sei denn, Du kommentierst die Zeile aus.

3. Kann ich das Makro für andere Diagrammtypen verwenden? Ja, das Makro funktioniert mit allen Diagrammtypen in Excel, solange die Diagramme die richtige Struktur für die Datenreferenz haben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige