Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1460to1464
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
Werte in Zeile statt MsgBox
08.12.2015 14:48:34
Alex
Hallo zusammen,
ich stehe vor folgendem Problem.
Ich möchte aus einem Diagramm die X und Y Werte durch anklicken der Punktwolke anzeigen lassen. Das klappt auch, ich habe ein passendes Makro hierfür gefunden. Dieses ist wie folgt gestrickt:

Option Explicit
Private WithEvents mobjChart As Chart
Friend Property Set prpChart(objChart As Chart)
Set mobjChart = objChart
End Property
Private Sub mobjChart_MouseDown(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long,  _
ByVal y As Long)
Dim lngElementID As Long, lngArgument1 As Long, lngArgument2 As Long
Dim vntX_Value_Array As Variant, vntY_Value_Array As Variant
If Button = 1 Then
mobjChart.GetChartElement x, y, lngElementID, lngArgument1, lngArgument2
If lngElementID = xlSeries Then
vntX_Value_Array = mobjChart.SeriesCollection(lngArgument1).XValues
vntY_Value_Array = mobjChart.SeriesCollection(lngArgument1).Values
mobjChart.Deselect
MsgBox "X= " & vntX_Value_Array(lngArgument2) & _
" Y= " & vntY_Value_Array(lngArgument2)
End If
End If
End Sub
Jetzt ist es so, das leuchtet mir auch ein, das er den X und Y Wert in einer MsgBox ausspuckt. Wie muss ich den Code bearbeiten um den X und Y Wert in Tabellenblatt 1 zu schreiben (Name tabelle1)und diesen dann in Zeile A1 (x) bzw A2 (y).
Darüber hinaus: Verstehe ich es richtig, dass er bei jedem neuen Klick die Werte in den Kästchen überschreiben würde?
Wäre Euch sehr dankbar, wenn mir einer helfen würde!
Beste Grüße
alex

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

Betreff
Datum
Anwender
Anzeige
AW: Werte in Zeile statt MsgBox
08.12.2015 14:55:19
Daniel
Hi
naja ersezte einfach die Programmzeile mit der Messagebox durch folgende zwei Programmzeilen:
Sheets("Tabelle1").range("A1") = vntX_Value_Array(lngArgument2)
Sheets("Tabelle1").range("A2") = vntY_Value_Array(lngArgument2)
hierbei werden die Werte immer in die selben Zellen geschrieben und somit werden die alten Werte immer überschrieben.
Gruß Daniel

AW: Werte in Zeile statt MsgBox
08.12.2015 14:57:27
Alex
Hallo Daniel,
könnt dich knutschen, danke für die blitzschnelle Antwort!
Vielen dank!
Gruß
alex

AW: Werte in Zeile statt MsgBox
08.12.2015 14:56:55
Sepp
Hallo Alex,
Private Sub mobjChart_MouseDown(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, _
  ByVal y As Long)

Dim lngElementID As Long, lngArgument1 As Long, lngArgument2 As Long
Dim vntX_Value_Array As Variant, vntY_Value_Array As Variant
If Button = 1 Then
  mobjChart.GetChartElement x, y, lngElementID, lngArgument1, lngArgument2
  If lngElementID = xlSeries Then
    vntX_Value_Array = mobjChart.SeriesCollection(lngArgument1).XValues
    vntY_Value_Array = mobjChart.SeriesCollection(lngArgument1).Values
    mobjChart.Deselect
    With Sheets("Tabelle1")
      .Range("A1") = vntX_Value_Array(lngArgument2)
      .Range("A2") = vntY_Value_Array(lngArgument2)
    End With
    
  End If
End If
End Sub

und ja, die Werte werden überschrieben.
Gruß Sepp

Anzeige
AW: Werte in Zeile statt MsgBox
09.12.2015 08:46:27
Alex
Ich leider nochmal,
nun ist es so, dass ich einen Laufwerkfehler 1004 bekomme wenn ich die Arbeitsmappe öffne. Hab schon sämtliche mögliche Kombinationen von Namensänderungen etc gemacht und komme nicht weiter. Die Funktionalität ist komischerweise NICHT eingeschränkt.
Userbild
So sieht die Oberfläche aus. Die einzelnen Befehlszeilen wie folgt:
Diagramm4 (T über xd):
Option Explicit
Private Sub Chart_MouseDown(ByVal Button As Long, ByVal Shift As Long, _
ByVal x As Long, ByVal y As Long)
Dim lngElementID As Long, lngArgument1 As Long, lngArgument2 As Long
Dim vntX_Value_Array As Variant, vntY_Value_Array As Variant
If Button = 1 Then
Me.GetChartElement x, y, lngElementID, lngArgument1, lngArgument2
If lngElementID = xlSeries Then
vntX_Value_Array = Me.SeriesCollection(lngArgument1).XValues
vntY_Value_Array = Me.SeriesCollection(lngArgument1).Values
Me.Deselect
With Sheets("Tabelle5")
.Range("A1") = vntX_Value_Array(lngArgument2)
.Range("A2") = vntY_Value_Array(lngArgument2)
End With
End If
End If
End Sub
Diese Arbeitsmappe:
Option Explicit
Private objChart As clsChart
Private Sub Workbook_Open()
Set objChart = New clsChart
Set objChart.prpChart = Tabelle1.ChartObjects(1).Chart
End Sub

Der kursiv dagestellte Bereich weist den Fehler auf
Userbild
Klassenmodul:
Option Explicit
Private WithEvents mobjChart As Chart
Friend Property Set prpChart(objChart As Chart)
Set mobjChart = objChart
End Property
Private Sub mobjChart_MouseDown(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long,  _
ByVal y As Long)
Dim lngElementID As Long, lngArgument1 As Long, lngArgument2 As Long
Dim vntX_Value_Array As Variant, vntY_Value_Array As Variant
If Button = 1 Then
mobjChart.GetChartElement x, y, lngElementID, lngArgument1, lngArgument2
If lngElementID = xlSeries Then
vntX_Value_Array = mobjChart.SeriesCollection(lngArgument1).XValues
vntY_Value_Array = mobjChart.SeriesCollection(lngArgument1).Values
mobjChart.Deselect
With Sheets("Tabelle5")
.Range("A1") = vntX_Value_Array(lngArgument2)
.Range("A2") = vntY_Value_Array(lngArgument2)
End With
End If
End If
End Sub

Darüber hinaus, ist es ebenfalls möglich, neben dem mittlerweile funktionierenden Schreiben der Daten in ein seperates Blatt, gleichzeitig auch die MsgBox anzeigen zu lassen mit den Werten?
Eine letzte Wissensfrage - tut mir leid das ich so penetrant bin - ist es möglich, 2 unterschiedliche Arbeitsmappen bzw die darin befindlichen Arbeitsblätter mit anderen Arbeitsblättern zusammenzuführen?
Vielen Dank für eure Hilfe im Vorraus!
grüße
Alex

Anzeige
AW: Werte in Zeile statt MsgBox
09.12.2015 11:51:37
Alex
Ich glaub ich hätte einen Haken machen müssen beim post, sorry für den doppelten Spam..

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige