Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1112to1116
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

In Worksheet erstelltes Chart per VBA ansprechen

In Worksheet erstelltes Chart per VBA ansprechen
lorenz1980
Hi miteinander,
ich habe folgenden Code für Charts, die ein eigenes Worksheet darstellen - und dieses läuft:
Private Sub Chart_MouseDown(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y  _
As Long)
Dim ElementID As Long, Arg1 As Long, Arg2 As Long, inPunkt As Integer, arrXWerte(),  _
arrYWerte()
ActiveChart.GetChartElement x, y, ElementID, Arg1, Arg2
If ElementID = 3 Then
With ActiveChart.SeriesCollection(1)
.DataLabels.Delete
.Points(Arg2).ApplyDataLabels
.Points(Arg2).DataLabel.Text = " "
arrYWerte() = .Values
arrXWerte() = .XValues
For inPunkt = 1 To .Points.Count
If Worksheets("Datenblatt").Cells(inPunkt + 1, 13) = arrXWerte(Arg2) And _
Worksheets("Datenblatt").Cells(inPunkt + 1, 19) = arrYWerte(Arg2) Then
'.Points(Arg2).HasDataLabel = True
'.Points(Arg2).DataLabel.Text = " "
.Points(Arg2).DataLabel.Text = .Points(Arg2).DataLabel.Text & vbLf & _
Worksheets("Datenblatt").Cells(inPunkt + 1, 71)
End If
Next inPunkt
End With
End If
End Sub
Sinn des Ganzen: ich klicke einen Datenpunkt an und neben diesem erscheint, was in Zeile 71 steht.
Nun möchte ich diesen Code auch für ein Diagramm nutzen, welches auf einem Workshet mit Daten erstellt wurde. Wie setze ich das um?
Danke im Voraus

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
Public WithEvents im Klassenmodul der Tabelle
25.10.2009 13:29:53
ransi
HAllo
Da ich nicht weiß wie dein Diagramm aufgebaut ist, kann ich nur etwas allgemeines zum Besten geben.
Die Verknüpfung von deinem Diagramm mit einem MouseDown-Event kannst du so machen.
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Public WithEvents ch As Chart

Private Sub Worksheet_Activate()
Set ch = Tabelle1.ChartObjects(1).Chart
End Sub



Private Sub ch_MouseDown(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
Dim ElementID As Long, Arg1 As Long, Arg2 As Long, inPunkt As Integer, arrXWerte(), _
    arrYWerte()
MsgBox "Aufs Diagramm geclickt"
' ActiveChart.GetChartElement x, y, ElementID, Arg1, Arg2
' If ElementID = 3 Then
' With ActiveChart.SeriesCollection(1)
'' .DataLabels.Delete
' .Points(Arg2).ApplyDataLabels
' .Points(Arg2).DataLabel.Text = " "
' arrYWerte() = .Values
' arrXWerte() = .XValues
' For inPunkt = 1 To .Points.Count
' If Worksheets("Datenblatt").Cells(inPunkt + 1, 13) = arrXWerte(Arg2) And _
    ' Worksheets("Datenblatt").Cells(inPunkt + 1, 19) = arrYWerte(Arg2) Then

' '.Points(Arg2).HasDataLabel = True
' '.Points(Arg2).DataLabel.Text = " "
' .Points(Arg2).DataLabel.Text = .Points(Arg2).DataLabel.Text & vbLf & _
    ' Worksheets("Datenblatt").Cells(inPunkt + 1, 71)

' End If
' Next inPunkt
' End With
' End If

End Sub


ransi
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige