Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
840to844
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
840to844
840to844
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

autom. Aktualisierung von Diagrammtitel?!

autom. Aktualisierung von Diagrammtitel?!
26.01.2007 09:56:51
Diagrammtitel?!
Hallo Leute,
per VBA lasse ich mir automatisch verschiedene Diagramme aus einer Wertetabelle generieren, soweit kein Problem.
Des weiteren stell ich ebenfalls per VBA in der Wertetabelle verschiedene Filter ein, um in einem solchen Fall das Diagramm nur für solche Daten angezeigt zu bekommen.
Hier lasse ich mir bei der automatischen Erstellung der Diagramme den Diagrammtitel dynamisch wie folgt eintragen.

Sub Diagrammtitel()
Dim sTitle
sTitle = "Kennwerte" & Range("A1").Value
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = sTitle
End With
End Sub

Bei der nachträglichen Feinfilterung per VBA soll dann AUCH der Diagrammtitel aktualisiert werden.
Was muss ich hier in den Filtermakros eintragen, dass auch der Diagrammtitel neu ausgelesen wird?!
Danke schon mal!
Gruß Till

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: autom. Aktualisierung von Diagrammtitel?!
26.01.2007 13:10:05
Diagrammtitel?!
Hallo Till,
geht etwa so:

Sub Diagrammtitel()
Dim sTitle
'bei Diagramm auf eigenem Blatt
sTitle = "Kennwerte" & Range("A1").Value
With Charts("DiagrammBlattname")
.HasTitle = True
.ChartTitle.Characters.Text = sTitle
End With
'bei Diagramm, das in ein Tabellenblatt eingebettet ist
sTitle = "Kennwerte" & Range("A1").Value
With Worksheets("TabellenBlattname").ChartObjects("Chartname").Chart
.HasTitle = True
.ChartTitle.Characters.Text = sTitle
End With
End Sub

Gruß
Franz
AW: autom. Aktualisierung von Diagrammtitel?!
26.01.2007 15:37:37
Diagrammtitel?!
Hallo Franz,
vielen Dank erst mal für Deine Antwort.
O.k.
Eigentlich hast Du mir nur zwei Varianten gezeigt, wie ich den Titel angezeigt bekomme.
Das mach ich ja schon richtig mit meinem Code, verursacht auch keinerlei Probleme
So weit alles paletti!
Wenn ich jetzt aber per VBA die Filter in meiner Wertetabelle bedienen lasse, ändert sich auch automatisch der Eintrag unter "A1", entsprechend der Filterung (auch per VBA).
Leider aktualisiert sich aber dabei nicht der Titel in dem Diagramm.
Hier wollte ich eigentlich nur wissen, wie ich das mache!?
Hast Du dazu vielleicht auch eine Idee?
Danke!
Gruß Till
Anzeige
AW: autom. Aktualisierung von Diagrammtitel?!
27.01.2007 03:44:51
Diagrammtitel?!
Hallo Till,
ich wusste leider nicht, dass du so wenig VBA-Kenntnisse hast.
Leider aktualisiert sich aber dabei nicht der Titel in dem Diagramm.
Hier wollte ich eigentlich nur wissen, wie ich das mache!?

Hinter den Codezeilen mit denen du die Filter setzt, fügst du entsprechend meinem Muster für jedes Diagramm Code ein, mit dem du den Titel aus Zelle A1 ins Diagramm schreibst.
Oder gibt es da noch andere Hindernisse?
Gruss
Franz
AW: autom. Aktualisierung von Diagrammtitel?!
27.01.2007 09:32:52
Diagrammtitel?!
Hallo Franz,
vielen Dank für die Antwort bei so nachtschlafener Zeit.... ;-)
Das eigentliche Problem ist, dass ich mir auf dem Tabellenblatt hintereinander 5 Diagramme generieren lasse, die alle einen anderen Haupttitel haben, aber entsprechend der Filterung aus der Wertetabelle eben den Zusatz aus der Zelle "A1" bekommen sollen.
Mir war schon klar, dass das an der Stelle des Filterprozesses passieren soll. Nur wie adressiere ich die Diagramme, wenn ich deren internen Titel nicht kenne?
Kann man da evtl eine Schleife schreiben, die nacheinander alle 5 Diagramme abgrast?
Danke!
Gruß Till
Anzeige
AW: autom. Aktualisierung von Diagrammtitel?!
27.01.2007 18:55:59
Diagrammtitel?!
Hallo Till,
wenn jedes Diagramm einen andern Haupttitel hat, dann kannst du die Diagramme über den entsprechenden Textteil des Titels ansprechen.
Der Code für die Änderung des Titels nach dem Filtern kann dann etwa wie folgt aussehen. Den Namen der Tabelle und die Werte der Variablen muss du entsprechend den Haupttiteln deiner 5 Diagramme setzen.
Gruß
Franz

Sub DiagrammTitel()
Dim DiagObjekt As ChartObject, Diag As Chart, DiagTitel As ChartTitle
Dim wks As Worksheet, Haupttitel As String
'Diagrammtitel anpassen
Set wks = Worksheets("Test")
For Each DiagObjekt In wks.ChartObjects
Set Diag = DiagObjekt.Chart
Set DiagTitel = Diag.ChartTitle
Haupttitel = "Haupttitel Diagramm1" 'Haupttiteltitel 1. Diagramm
If Left(DiagTitel.Text, Len(Haupttitel)) = Haupttitel Then
DiagTitel.Text = Haupttitel & " " & wks.Range("A1").Value
End If
Haupttitel = "Haupttitel Diagramm2" 'Haupttiteltitel 2. Diagramm
If Left(DiagTitel.Text, Len(Haupttitel)) = Haupttitel Then
DiagTitel.Text = Haupttitel & " " & wks.Range("A1").Value
End If
Haupttitel = "Haupttitel Diagramm3" 'Haupttiteltitel 3. Diagramm
If Left(DiagTitel.Text, Len(Haupttitel)) = Haupttitel Then
DiagTitel.Text = Haupttitel & " " & wks.Range("A1").Value
End If
Haupttitel = "Haupttitel Diagramm4" 'Haupttiteltitel 4. Diagramm
If Left(DiagTitel.Text, Len(Haupttitel)) = Haupttitel Then
DiagTitel.Text = Haupttitel & " " & wks.Range("A1").Value
End If
Haupttitel = "Haupttitel Diagramm5" 'Haupttiteltitel 5. Diagramm
If Left(DiagTitel.Text, Len(Haupttitel)) = Haupttitel Then
DiagTitel.Text = Haupttitel & " " & wks.Range("A1").Value
End If
Next
End Sub

Anzeige
AW: autom. Aktualisierung von Diagrammtitel?!
28.01.2007 14:16:26
Diagrammtitel?!
Hallo Franz,
leider liegen die Diagramme nicht auf der selben Mappe wie auch die Wertetabelle.
Ich hab deshalb mal in Abänderung deines letzten Vorschlages folgendes versucht, aber leider noch ohne Erfolg.


Sub Aktualisier()
Dim wksListe As Worksheet, wks As Worksheet
Dim DiagObjekt As ChartObject, Diag As Chart, DiagTitel As ChartTitle
Dim Haupttitel As String
'On Error Resume Next
    Set wksListe = Worksheets("Wertetabelle")
    Set wks = Worksheets("div_Diagramme")
'Titel aktualisieren
  For Each DiagObjekt In wks.ChartObjects
    Set Diag = DiagObjekt.Chart
    Set DiagTitel = Diag.ChartTitle
    Haupttitel = "Kennlinie Qges - " 'Haupttitel 1. Diagramm
    If Left(DiagTitel.Text, Len(Haupttitel)) = Haupttitel Then
      DiagTitel.Text = Haupttitel & " " & wksListe.Range("F1").Value
    End If
    Haupttitel = "Kennlinie Vmittel - " 'Haupttitel 2. Diagramm
    If Left(DiagTitel.Text, Len(Haupttitel)) = Haupttitel Then
      DiagTitel.Text = Haupttitel & " " & wksListe.Range("F1").Value
    End If
    Haupttitel = "Kennlinie Belegungsgrad - " 'Haupttitel 3. Diagramm
    If Left(DiagTitel.Text, Len(Haupttitel)) = Haupttitel Then
      DiagTitel.Text = Haupttitel & " " & wksListe.Range("F1").Value
    End If
    Haupttitel = "Kennlinie Verkehrsstärke Pkw - " 'Haupttitel 4. Diagramm
    If Left(DiagTitel.Text, Len(Haupttitel)) = Haupttitel Then
      DiagTitel.Text = Haupttitel & " " & wksListe.Range("F1").Value
    End If
    Haupttitel = "Kennlinie Verkehrsstärke Lkw - " 'Haupttitel 5. Diagramm
    If Left(DiagTitel.Text, Len(Haupttitel)) = Haupttitel Then
      DiagTitel.Text = Haupttitel & " " & wksListe.Range("F1").Value
    End If
  Next
End Sub


Was läuft da noch falsch? Ich glaube das Makro bekommt da nicht den Fokus auf die unterschiedlichen Arbeitsblätter hin, oder?
Vielleicht hast Du ja noch eine Idee?
Danke!
Gruß Till
Anzeige
AW: autom. Aktualisierung von Diagrammtitel?!
29.01.2007 11:11:55
Diagrammtitel?!
Hallo Till,
in welcher Zeile bricht die Makroausführung denn ab?
leider liegen die Diagramme nicht auf der selben Mappe wie auch die Wertetabelle.
Meinst du mit "Mappe" ein anderes Tabellenblatt in der gleichen Datei?
Oder eine andere Excel-Arbeitsmappe(Datei) ? In diesem Fall muss die Set-Anweisung um das Workbook ergänzt werden.
z.B. Set wks = Workbooks("DiagDatei.xls").Worksheets("div_Diagramme")
Wenn es tatsächlich ein Problem des Focus sein sollte - ich kann das momentan nicht testen - dann probiere es mit dem Aktiviern des Diagrammblatts

Sub Aktualisier()
Dim wksListe As Worksheet, wks As Worksheet
Dim DiagObjekt As ChartObject, Diag As Chart, DiagTitel As ChartTitle
Dim Haupttitel As String
'On Error Resume Next
Set wksListe = Worksheets("Wertetabelle")
Set wks = Worksheets("div_Diagramme")
wks.Activate
'Titel aktualisieren

Ich werde das heute Abend noch mal testen.
Gruß
Franz
Anzeige
AW: autom. Aktualisierung von Diagrammtitel?!
29.01.2007 12:02:00
Diagrammtitel?!
Hallo Franz,
mit "Mappe" mein ich in der Tat ein anderes Tabellenblatt in der gleichen Datei.
Ich hab auch schon mal das mit "wks.Activate" versucht, aber auch leider ohne sichtbaren Erfolg.
Ich bekomme auch keinerlei Fehlermeldungungen!
Wäre nett, wenn Du das noch mal testen könntest!
Danke!
Gruß Till
AW: autom. Aktualisierung von Diagrammtitel?!
29.01.2007 21:08:58
Diagrammtitel?!
Hallo Till,
ich hab jetzt das Makro mit Datentabellen und Diagrammen auf verschiedenen Tabellenblättern mit deinen Modifikationen im Makro probiert. Das Umbenennen funktioniert einwandfrei, selbst dann, wenn ich im Listenblatt ein anderes Objekt markiert habe wenn des Marko startet.
Hier meine Beispieldatei erstellt unter Win98-Exel97: https://www.herber.de/bbs/user/39990.xls
Da das Makro ohne Fehlermeldung durchläuft gibt es zumindest keine Syntaxfehler und alle deklarierten Objekte werden gefunden. Kontrolliere doch noch enmal genau die Schreibweise deiner Diagrammtitel evtl. fehlt Makro ja noch irgendwo ein Leerzeichen oder ist eins zuviel. Du kannst auch mal das Makro im Schrittmodus ablaufen lassen oder einen Haltepunkt einbauen und dann mit Taste F8 zeilenweise das Makro abarbeiten und dabei die Werte der Variablen und auch der ausgelesenen DiagrammTitel einsehen -Überwachungsmodus oder mit der Maus auf die jeweilegen Makro-Codeelemente klicken.
Gruss
Franz
Anzeige
AW: autom. Aktualisierung von Diagrammtitel?!
30.01.2007 22:37:41
Diagrammtitel?!
Hallo Franz,
hast Dir ja wirklich viel Mühe gegeben. Vielen Dank dafür. Bei Dir funktioniert es ja super!
Deine Hilfestellung war ganz nützlich. Hab mal in meinem Code per F8 alle Schritte durchlaufen.
Das Problem ist in der Tat die Addressierung von "wks" und "wksListe". Hier kommt dann "nothing".
Das Makro was ich zum Ändern der Titel verwende steht leider doch in einer anderen Excel-Datei - eigentlich der Ursprungsdatei.
Die Sheets "Wertetabelle" und "div_Diagramme" werden in einem NICHT-gespeicherten txt-File generiert, was ich nur temporär geöffnet habe und im Ursprungszustand nur die txt-Datei im CSV-Format anzeigt.
Die Datei sieht zwar - da in Excel eingelesen - aus wie eine Excel-Datei. In der Kopfzeile steht aber immer noch 20070109_0.txt. Die Datei darf ich auch nicht einfach überspeichern oder als xls abspeichern.
Kommen wir also zu der richtigen Adressierung dieser temporären Datei, dessen Name (ohne das "_.txt" in "A1" der Ursprungs-Datei eintragen lasse, um sie dann ansprechen zu können.
Hab mal folgendes versucht:


Sub Aktualisier()
  Dim DiagObjekt As ChartObject, Diag As Chart, DiagTitel As ChartTitle
  Dim wksListe As Worksheet, wks As Worksheet, Haupttitel As String
  Dim cd
  cd = ThisWorkbook.Sheets("Tabelle1").Range("A1").Value & "_0.txt" 'neu
'Diagrammtitel anpassen
    Set wksListe = Workbooks(cd).Worksheets("Wertetabelle")
    Set wks = Workbooks(cd).Worksheets("div_Diagramme")
'Titel aktualisieren
  For Each DiagObjekt In wks.ChartObjects


danach würde dann der weitere Code von Dir folgen!
Kann das gehen? Oder wie umschiffe ich das Problem, die txt-Datei, die dann temporär die "Wertetabelle" und "div_Diagramme" enthält, nicht als XLS zu speichern und trotzdem korrekt ansprechen zu können?
Danke schon mal für weitere hilfreiche Impulse
Gruß Till
Anzeige
AW: autom. Aktualisierung von Diagrammtitel?!
31.01.2007 01:41:18
Diagrammtitel?!
Hallo Till,
so könnte es funktionieren. Oder hast du es schon erfolglos probiert?
Alternative ginge auch noch

Sub Aktualisier()
Dim DiagObjekt As ChartObject, Diag As Chart, DiagTitel As ChartTitle
Dim wksListe As Worksheet, wks As Worksheet, Haupttitel As String
Workbooks(ThisWorkbook.Sheets("Tabelle1").Range("A1").Value & "_0.txt").Activate 'neu
'Diagrammtitel anpassen
Set wksListe = ActiveWorkbook.Worksheets("Wertetabelle")
Set wks = ActiveWorkbook.Worksheets("div_Diagramme")
'Titel aktualisieren
For Each DiagObjekt In wks.ChartObjects
ThisWorkbook.Activate
End Sub

Gruss
Franz
Anzeige
AW: autom. Aktualisierung von Diagrammtitel?!
01.02.2007 23:44:04
Diagrammtitel?!
Hallo Franz,
Sorry, dass ich jetzt erst antorte....aber so glaube ich, klappt es..........
War schon ne lange Geburt!
Trotzdem vielen Dank!
Gruß Till

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige