Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Diagramm bei Verlassen bzw. Öffnen des Worksheets löschen
#1
Hallo zusammen,

ich erzeuge ein Diagramm, welches auf (gefilterten) Daten aus einem anderem Worksheets beruht. Nun möchte ich, dass das Diagramm beim Verlassen bzw. Öffnen des Worksheets gelöscht wird, da ich per Button ein neues Diagramm erzeugen möchte mit den aktuellen (gefilterten Daten). Ich habe es mit Worksheet_Activate() bzw. Worksheet_Deactivate() versucht, jedoch tut sich leider nichts.

Ich hab mit dem Makrorekorder das Diagramm gelöscht und wollte das Sub dazu durch die oben beschrieben Events auslösen.

Code:
Private Sub Worksheet_Deactivate()
   XLöschen
End Sub
Code:
Sub XLöschen()
'
' XLöschen Makro
'

'
   ActiveSheet.ChartObjects(1).Activate
   ActiveChart.Parent.Delete
End Sub

Bin über jede Hilfe dankbar :)
Antworten Top
#2
Hi,

schon mal so probiert:

Code:
Private Sub Worksheet_Deactivate()
   ActiveSheet.ChartObjects(1).Delete
End Sub
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#3
@BoskoBiati

Ich erhalte dabei einen Laufzeitfehler '1004':
Anwendungs- oder objektdefinierter Fehler.
Ich füge mal noch den Code zur Erzeugung des Graphen hinzu, vielleicht liegt es auch an dem Code...
Code:
'Erzeugung des Graphen und Zuweisung der Daten aus dem Tabellenblatt "Gehaltsdaten"

Sub ErzeugungGraph()

   
Dim data As Worksheet
Dim name As Range
Set data = ActiveWorkbook.Worksheets("Gehaltsdaten")

Application.ScreenUpdating = False
Worksheets("Gehaltsdaten").Activate
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=data.Range("A3:AC3000")

ActiveChart.SeriesCollection.NewSeries

   With ActiveChart.SeriesCollection(1)
   
       .XValues = "=Gehaltsdaten!$G$3:$G$800"
       .Values = "=Gehaltsdaten!$AC$3:$AC$800"
       .name = "=Gehaltsdaten!$B$3:$B$800"
       .Trendlines.Add Type:=xlLinear
     
   End With
 
ActiveChart.location Where:=xlLocationAsObject, _
  name:=ThisWorkbook.Worksheets(4).name
 
'Formatierung des Graphen
 
   With ActiveChart
   
       .PlotArea.Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorBackground1
       .HasLegend = False
       .Parent.Height = 600
       .Parent.Width = 1200
       .HasTitle = True
       .HasTitle = False
       .Axes(xlCategory, xlPrimary).HasTitle = True
       .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Alter"
       .Axes(xlValue, xlPrimary).HasTitle = True
       .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "JEK 35H"
       .Axes(xlValue).MinimumScale = 0
       .Axes(xlCategory).MaximumScale = 80
       .SeriesCollection(1).Format.Fill.ForeColor.RGB = rgbBlue
   
       
   End With
   
Worksheets(4).ChartObjects(1).Activate

With ActiveChart

   .Axes(xlValue).AxisTitle.Font.Size = 20
   .Axes(xlCategory).AxisTitle.Font.Size = 20
   .PlotArea.Interior.ColorIndex = 15
   
End With

'Aufrufen des Programms zur Beschriftung der Datenpunkte

     Call BeschriftungDiagramm
       
End Sub

'Beschriftet die Datenpunkte mit je dem ersten Buchstaben des Nach- und Vornamens

Sub BeschriftungDiagramm()

Dim lngPunkt As Long
Dim data As Worksheet

Set data = ActiveWorkbook.Worksheets("Gehaltsdaten")

  With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
     .ApplyDataLabels
     For lngPunkt = 1 To .Points.Count
        .Points(lngPunkt).DataLabel.Text = Left(data.Cells(lngPunkt + 2, 2), 1) & " " & Mid(data.Cells(lngPunkt + 2, 3), 2, 1)
                 
     Next lngPunkt
     
  End With
 
End Sub
Antworten Top
#4
Hallöchen,

in welcher Codezeile kommt denn der Fehler?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Hallo,
der Fehler tritt direkt in der 2. Zeile auf.


Angehängte Dateien Thumbnail(s)
   
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste