Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Aufgez. Macro funktioniert nur auf einem Blatt

Aufgez. Macro funktioniert nur auf einem Blatt
Mathias
Liebes Forum,
ich habe ein Macro aufgezeichnet, das nicht mit anderen Diagrammblättern in derselben Exceldatei funktioniert. Was muss ich tun, damit ich das Macro auf jedem Tabellenblatt oder sogar in anderen Exceldateien ausführen kann, ohne dass ich den Laufzeitfehler "Das Element mit dem angegebenen Namen wurde nicht gefunden" erhalte.
Ich danke Euch herzlich für Eure Unterstützung eines absoluten Macro-Neulings.
Viele Grüsse
Mathias

Sub Diagramm_Formatierung()
' Diagramm_Formatierung Makro
' Löschen des Titels, verändern der Grösse der Zeichnungsfläche und Ändern der Grösse der  _
Legendenschriftart
' Tastenkombination: Strg+y
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.ChartTitle.Select
Selection.Delete
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.PlotArea.Select
ActiveSheet.ChartObjects("Diagramm 1").Activate
Selection.Top = 0.834
Selection.Width = 409.407
Selection.Height = 409.407
ActiveSheet.ChartObjects("Diagramm 1").Activate
Selection.Left = 113.62
Selection.Width = 415.407
Selection.Height = 415.407
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.Legend.Select
End Sub

AW: Aufgez. Macro funktioniert nur auf einem Blatt
03.12.2010 11:15:32
Harald
Hallo Mathias,
zu vermuten wäre, dass das auf den anderen Blättern Diagramm eben nicht "Diagramm 1" heißt.
Klic´k mal mit der rechten Maustaste auf das gewünschte Diagramm und dann in dem Pop-Up Menü auf "Makro zuweisen". Dann siehst Du in dem neuen Fenster einen Text, der "Diagramm1_BeiKlick" lauten sollte. Dann heißt das Diagramm auch "Diagramm 1" sonst eben anders. (Die eben geöffneten Pop-Ups kannst Du abbrechen, war nur eine Krücke, um den Diagrammnamen herauszubekommen.
Wenn das Diagramm aber "Diagramm 1" heißen sollte, dann poste doch mal eine Beispieldatei, dann liegt das Problem wohl woanders.
Gruß
Harald
Anzeige
AW: Aufgez. Macro funktioniert nur auf einem Blatt
03.12.2010 11:35:34
Mathias
Hallo Herr Kapp,
herzlichen Dank für Ihren Hinweis. Die Diagramme heissen wirklich pro Diagrammblatt anders. Gibt es denn die Möglichkeit, eine Art "Platzhalter" für die anderen Blätter zu verwenden oder einfach alle Diagramme in der Datei automatisch abarbeiten zu lassen oder muss ich jetzt ein Macro jeweils pro Blatt aufnehmen - dann würde es aber auch keinen Sinn mehr machen...
Bitte entschuldigen Sie, dass ich so unpräzise bin, aber leider bin ich noch neu in der Macro-Welt.
Besten Dank und viele Grüsse
Mathias
AW: Aufgez. Macro funktioniert nur auf einem Blatt
03.12.2010 11:27:37
Josef

Hallo Mathias,
das ist klar, das es so nicht geht, Du beziehst dich ja fix auf "Diagramm 1".
So sollte es auf allen Tabellenblättern funktionieren, deine gewünschten Werte musst du anpassen.

Sub Diagramm_Formatierung()
  '
  ' Diagramm_Formatierung Makro
  ' Löschen des Titels, verändern der Grösse der Zeichnungsfläche und Ändern der Grösse der _
    Legendenschriftart

  '
  ' Tastenkombination: Strg+y
  '
  
  Dim objChrt As Chart
  
  
  With ActiveSheet
    If .ChartObjects.Count > 0 Then
      Set objChrt = .ChartObjects(1).Chart
      
      With objChrt
        If .HasTitle Then .ChartTitle.Delete
        If .HasLegend Then .Legend.Font.Size = 14
        With .ChartArea
          .Top = 0
          .Left = 110
          .Width = 415
          .Height = 415
        End With
        With .PlotArea
          .Top = 1
          .Left = 113
          .Width = 410
          .Height = 410
        End With
      End With
    End If
    
  End With
  
  Set objChrt = Nothing
End Sub

Gruß Sepp

Anzeige
AW: Aufgez. Macro funktioniert nur auf einem Blatt
03.12.2010 11:44:12
Mathias
Hallo Herr Ehrensberger,
Ihnen auch herzlichen Dank für Ihre Bemühungen. Ich glaube, dass Ihre Lösung auf mein Problem trifft. Ich habe Ihren Code direkt in den VBA-Editor der Excel-Mappe an die Stelle meines alten Codes kopiert. Ich habe dann das Macro ausgeführt und es kam keine Fehlermeldung, es passierte aber mit dem Diagramm-Blatt auch nichts.
Haben Sie noch einen Tipp dazu bzw. muss ich noch das Macro irgendwie aktivieren?
Ich habe selbstverständlich Verständnis, dass Sie mir keinen Grundkurs in VBA geben können - falls es aber nur ein kleiner Hinweis ist, der zur Lösung des neuen Problems führt - freue ich mich sehr!
Nochmals vielen herzlichen Dank!
Viele Grüsse
Mathias
Anzeige
AW: Aufgez. Macro funktioniert nur auf einem Blatt
03.12.2010 12:18:33
Josef

Hallo Mathias,
hier im Forum bevorzugen wir das Du-Wort.
Aus deinem Makro ging hervor, das es sich um ein Diagramm in einem Tabellenblatt handelt, jetzt sprichst du von einem Diagramm-Blatt, beschreib mal genau was du erreichen willst.

Gruß Sepp

AW: Aufgez. Macro funktioniert nur auf einem Blatt
03.12.2010 12:34:52
Mathias
Hallo Sepp,
während der Diagrammerstellung kann ich ja auswählen, ob das Diagramm auf das Tabellenblatt gelegt werden soll, aus dem auch die Daten kommen oder ob es als "separates" bzw. neues Blatt einfügt werden soll. Die Diagramme liegen in meiner Datei als neue Blätter vor und das sind eine Menge Diagramme...
Da ich bei der Diagrammerstellung den Fehler gemacht habe und die Formatierung nicht optimal eingestellt habe, muss ich nun nachbessern und den Diagrammtitel löschen, das Diagramm (die Zeichnungsfläche) grösser ziehen und den Legendentext vergrössern und noch (was ich bisher vergessen habe) den Rahmen um das Diagramm entfernen).
Diese vier Arbeitsschritte wollte ich automatisch ablaufen lassen, damit ich nicht durch 80 Diagramme einzeln laufen muss und bzgl. der Grösse wirklich eine einheitliche Grösse habe, da ich mit der Maus nicht so genau die Grösse händisch ziehen kann.
Wie gesagt, es handelt sich um eine Excel-Datei, in der ein Tabellenblatt mit den Ausgangsdaten liegt und 80 Diagramme in einzelnen Tabellenblättern nacheinander.
Vielen herzlichen Dank für Deine Hilfe bzw. Zeit!
Viele Grüsse
Markus
Anzeige
Sepp's Code leicht modifiziert...
03.12.2010 12:47:04
Renee
Hallo Ma-rkus oder -thias,
Code in ein Modul, behandelt alle Diagrammblätter der aktiven Mappe:
Sub Diagramm_Formatierung()
' Diagramm_Formatierung Makro
' Löschen des Titels, verändern der Grösse der Zeichnungsfläche und Ändern der Grösse der _
Legendenschriftart
' Tastenkombination: Strg+y
Dim objChrt As Chart
For Each objChrt In ActiveWorkbook.Charts
With objChrt
If .HasTitle Then .ChartTitle.Delete
If .HasLegend Then .Legend.Font.Size = 14
With .ChartArea
.Top = 0
.Left = 110
.Width = 415
.Height = 415
End With
With .PlotArea
.Top = 1
.Left = 113
.Width = 410
.Height = 410
End With
End With
Next
End Sub

GreetZ Renée
Anzeige
AW: Sepp's Code leicht modifiziert...
03.12.2010 13:38:15
Mathias
Hallo Renée,
vielen herzlichen Dank. Dein Code funktioniert soweit - leider wird das Diagramm etwas kleiner statt grösser und es kommt die Meldung, dass die Methode "Top" für die PlotArea nicht ausgeführt werden kann. Ich werde mal versuchen, etwas die Werte zu verändern...
Nochmals herzlichen Dank und viele Grüsse
Mathias
AW: Aufgez. Macro funktioniert nur auf einem Blatt
03.12.2010 12:48:39
Josef

Hallo Markus oder Mathias?
Also Diagrammblätter, zeichne doch noch einmal deinen Formatierungsvorgang auf und Poste den Code.

Gruß Sepp

Anzeige
AW: Aufgez. Macro funktioniert nur auf einem Blatt
03.12.2010 13:33:33
Mathias
Hallo Sepp,
anbei findest Du den Code, den ich während der Formatierung eines Diagrammblattes aufgezeichnet habe. Diese Prozedur möchte ich nun für alle Diagrammblätter (die restlichen 79) in der Exceldatei wiederholen - natürlich ohne Laufzeitfehler. Die Lösung von Renée funktioniert, lediglich die Zeichnungsfläche des Diagramms wird eher kleiner, statt grösser.
Herzlichen Dank für Deine Hilfe und viele Grüsse
Mathias
(Das kommt davon, wenn man während des Postens mit den Kollegen redet)
Sub Diagramm_Formatierung()
' Diagramm_Formatierung Makro
' Diagrammtitel löschen, Schriftgrösse Legende 14pt, Zeichnungsfläche Diagramm vergrössern,  _
Rahmen um Diagramm entfernen
' Tastenkombination: Strg+y
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.ChartTitle.Select
Selection.Delete
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.Legend.Select
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.PlotArea.Select
ActiveSheet.ChartObjects("Diagramm 1").Activate
Selection.Top = 2.729
Selection.Width = 366.617
Selection.Height = 366.617
ActiveSheet.ChartObjects("Diagramm 1").Activate
Selection.Left = 70.62
Selection.Width = 415.617
Selection.Height = 415.617
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.ChartArea.Select
End Sub

Anzeige

320 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige