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

Balkendiagram mit Bilder Popup

Balkendiagram mit Bilder Popup
e-mo
Morgen alle zusammen,
ich habe eine Frage und hoffe ihr könnt mir behilflich sein.
Ich habe ein Balkendiagram, das mit die Verkaufszahlen für den aktuellen Monat für bestimmte Fahrzeuge gibt. z.B. in September: 20 Audis; 11 Renaults; 5 Mercedes; 7 Citroens etc etc....
Meine Frage:
Ist es möglich, ein bild-popup fenster für die jeweiligen Balken per Mouseover zu erstellen, dass mir die verkaufsentwicklung der einzelne Fahrzeuge für die vorangegangenen Monate darstellt? d.h., wenn ich mit meiner Maus über den Septemberbalken von Audi gehe, erscheint dann ein Bild mit den Verkaufszahlen von Audis von Januar - September...analog hierzu für die anderen Modelle.
Danke im voraus,
e-mo

34
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Balkendiagram mit Bilder Popup
Beverly
Hi,
wenn du ein Diagrammblatt verwendest, kannst du es mit diesem Code versuchen, der sich im Codemodul des Diagrammblattes befinden muss:
Private Sub Chart_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y  _
As Long)
Dim IDNum As Long
Dim a As Long
Dim b As Long
ActiveChart.GetChartElement x, y, IDNum, a, b
On Error Resume Next
If IDNum = 3 Then
SeriesCollection(a).Points(b).ApplyDataLabels
SeriesCollection(a).Points(b).DataLabel.Text = "Ich bin Punkt " & _
b & vbLf & "Reihe " & a
Else
ActiveChart.ApplyDataLabels LegendKey:=False, HasLeaderLines:=False, _
ShowSeriesName:=False, ShowCategoryName:=False, ShowValue:=False, _
ShowPercentage:=False, ShowBubbleSize:=False
End If
On Error GoTo 0
End Sub

Du müsstest deine darzustellenden Angaben auf eine String-Variable schreiben und sie mit der Zeile SeriesCollection(a).Points(b).DataLabel.Text = DeineVariable dem Beschriftungslabel als Inhalt zuweisen.


Anzeige
AW: Balkendiagram mit Bilder Popup
e-mo
Hallo Karin,
vielen Dank für den Input. Hast du eventuell hiervon eine Beispieldatei? Die Lösung, die du genannt hast, klingt genauso, wie ich mir das vorstelle.
Danke,
e-mo
AW: Balkendiagram mit Bilder Popup
Beverly
Hi,
du musst einfach nur den geposteten Code ins Codemodul des Diagrammblattes kopieren.
https://www.herber.de/bbs/user/74467.xls
Wie du die Anzeigedaten zusammenfassend auf die Variable schreibst, dazu kann ich nichts sagen, da ich deine Arbeitsmappe nicht kenne und deshalb nicht weiß wo die Daten hergenommen werden sollen.


Anzeige
AW: Balkendiagram mit Bilder Popup
e-mo
Hi Karin,
danke für das Beispiel :-)
Hierzu hätte ich noch 2 Fragen.
1. Wie binde ich das Diagramm in den VBA modus hinein?! bei Einfügen finde ich nur 3 formate zur auswahl, aber leider keins für Diagramm...
2. Dass mit dem Mouseover in deinem Beispiel ist schon sehr gut...ginge das auch für ein bild? Ich wollte eigentlich, anstatt der Aussage: "Ich bin Punkt..." ein Graph haben, der den Verlauf des Punktes für die letzten z. 6 Monate abbildet, also auch ein Balkendigramm in kleinformat für den jeweiligen Balken, in deinem Beispiel Teil 1...wenn mouseover darauf, dann wird ein balkendiagramm für Teil1 für die letzten 6 Monate gezeigt.
Danke,
e-mo
Anzeige
AW: Balkendiagram mit Bilder Popup
Beverly
Hi,
zu Frage 1: ich verstehe leider nicht was du meinst.
zu Frage 2: eine Grafik/Diagramm im Beschriftungslabel anzuzeigen ist nicht möglich.
Übrigens: es ist kein Balken- sondern ein Säulendiagramm


AW: Balkendiagram mit Bilder Popup
e-mo
Hi...
zu Frage 1: Wenn du im Code Anzeige Modus bist, kannst du dort Module, sehe ich normalerweise immer nur die Tabellen (Tabelle1, 2, 3 etc etc...und Arbeitsmappe...
wie bekomme ich das Diagrammicon dorthin?!
zu 2...schade das es nicht geht
und natürlich hast du recht....das sind säulendiagramme....habe mich die ganze zeit vertan...danke!
e-mo
Anzeige
AW: Balkendiagram mit Bilder Popup
e-mo
GENAU DAS SUCHE ICH!!!! WOW....endlich...DANKE!!
werde mir das mal genauer anschauen, und hoffentlich kann ich das regenerieren, was du da gezaubert hast! Falls ich nicht weiterkomme mit deinem Beispiel, hoffe ich, dass du mir irgendwie weiterhelfen kannst.
Danke,
e-mo
AW: Balkendiagram mit Bilder Popup
e-mo
hm...ich komme nicht weiter.
wenn ich in der Code-Ansicht bin, kann ich bei mir dieses Diagrammicon nicht einfügen. Kann mir einer weiterhelfen?
Danke,
e-mo
Anzeige
AW: Balkendiagram mit Bilder Popup
Nepumuk
Hallo,
was für ein "Diagrammicon" ?
Gruß
Nepumuk
AW: Balkendiagram mit Bilder Popup
e-mo
Hi Nepumuk,
also wenn ich ALT+ F11 drücke, dann komme ich in den VBAproject Modus.
Unter dem Ordner Microsoft Excel Objekte, sehe ich in deinem Beispiel 3 Icons mit den folgenden Namen:
Diagramm1 (Übersicht)
DieseArbeitsmappe
Tabelle1 (Tabelle1)
wie bekomme ich Diagramm1(Übersicht) in diese Struktur rein? Das ist ja das wichtige, damit sich der Code genau auf dieses Diagramm bezieht, oder?
Danke,
e-mo
AW: Balkendiagram mit Bilder Popup
Beverly
Hi,
Doppelklick auf Diagramm (Übersicht) und du befindest dich im Codemodul des Diagrammblattes. Andere Möglichkeit ohne Alt+F11: Rechtsklick auf den Reiter des Diagrammblattes -&gt Code anzeigen


Anzeige
AW: Balkendiagram mit Bilder Popup
e-mo
Hi Beverly,
das meinte ich gar nicht. Bitte sehe dir das Bild an:
Userbild
Danke,
e-mo
AW: Balkendiagram mit Bilder Popup
Beverly
Hi,
wie ich schon geschrieben habe: mache einen Doppelklick darauf und dann bist du im Codemodul des Diagrammblattes (rechtes Fenster).


AW: Balkendiagram mit Bilder Popup
e-mo
aber dieses Icon ist doch bei mir noch gar nicht da, um überhaupt dort einen doppelklick auszuführen um den code einzufügen. und genau das such ich grad. wie erstelle ich dieses objekt an dieser stelle?
Anzeige
AW: Balkendiagram mit Bilder Popup
Beverly
Hi,
dieses "Icon" entsteht von ganz alleine sobald du ein Diagrammblatt anlegst.


AW: Balkendiagram mit Bilder Popup
e-mo
ahh ok...danke! habe das jetzt versucht und geschafft :-) jetzt werde ich die codes mal ausprobieren...
danke nochmal...und frohe ostern noch :-)
e-mo
AW: Balkendiagram mit Bilder Popup
e-mo
Hallo,
habe was festgestellt :-(
im Diagrammsheet, kann ich leider nur EIN diagramm abbilden, wenn ich es mit der Popupfunktion haben möchte. Ich habe aber ein "Dashboard", wo ich aber 4 Diagramme in einen Quadranten abgebildet werden. Jetzt kann ich mit dieser Lösung leider die anderen 3 Diagramme nicht integrieren, da das Diagrammsheet weitere Diagramme nicht zuläßt.
Gibt es hierzu ein Lösungsvorschlag,
Danke,
e-mo
Anzeige
AW: Balkendiagram mit Bilder Popup
Beverly
Hi,
verwende ein "normales" Tabellenblatt, in welches du die 4 Diagramme einbettest. Eingebettete Diagrammobjekte haben jedoch keine Ereignisse, die man wie beim Diagrammblatt auswerten kann. Deshalb muss man hier Klassenprogrammierung anwenden, um dann auf die Ereignisse der Klasse zugreifen zu können, welche die selben sind wie im Diagrammblatt. Dazu muss die Klasse zuerst initialisiert, also die Diagrammobjekte der Klasse zugewiesen werden (z.B. beim Öffnen der Arbeitsmappe durch Starten des betreffenden Makros).
Diese Verfahrensweise setzt voraus, dass das Diagrammobjekt im Tabellenblatt erst selektiert werden muss, ehe der betreffende Code ausgelöst werden kann.
Erstelle ein Klasssenmodul und benenne es clsDiagramm. Schreibe in dieses Klassenmodul folgenden Code:
Option Explicit
Public WithEvents chrDia As Chart
Private Sub chrDia_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal  _
y As Long)
Dim IDNum As Long
Dim a As Long
Dim b As Long
Dim arrXWerte()
Dim strName As String
chrDia.GetChartElement x, y, IDNum, a, b
On Error Resume Next
If IDNum = 3 Then
arrXWerte = chrDia.SeriesCollection(a).XValues
strName = arrXWerte(b)
If Not UserForm1.Visible Then
Call Show_Chart(strName)
Else
If UserForm1.Caption  strName Then _
Call Show_Chart(strName)
End If
Else
Unload UserForm1
End If
On Error GoTo 0
End Sub

dieser Code ruft die API-Funktionen für das Einfügen der betreffenden "Unter"-Diagramme in das UserForm auf (genau wie bei dem Beispiel mit dem Diagrammblatt der Code im Codemodul des Diagrammblattes).
Schreibe außerdem in ein allgemeines Modul diesen Code (zum Initialisieren der Klasse):
Option Explicit
Dim arrDiagramme() As New clsDiagramm
Sub DiaInit()
Dim chrDiagramm As ChartObject
Dim intDiagramm As Integer
intDiagramm = 1
ReDim arrDiagramme(1 To Worksheets("Tabelle2").ChartObjects.Count) ' Name des  _
Tabellenblattes anpassen!!
For Each chrDiagramm In Worksheets("Tabelle2").ChartObjects
Set arrDiagramme(intDiagramm).chrDia = chrDiagramm.Chart
intDiagramm = intDiagramm + 1
Next chrDiagramm
End Sub

und rufe dieses Makro im Wokbook_Open Ereignis auf.


Anzeige
AW: Balkendiagram mit Bilder Popup
e-mo
Hi Karin,
kannst du mir das kurz in Nepumuks datei zeigen? Ich habe probleme mit den ganzen benennungen, daher sagt mir ein beispiel mehr aus.
Habe Nepumuks Datei genommen, und daraus kurz dargestellt, wie ich bei mir ungefähr aussieht.
Kannst du mir hier zeigen, wie das im Reiter: Dashboard mit den Graphigen aus Tabelle1 aussieht, wenn ich das im Dashboard klicke?
Es soll prinzipiell so sein, wie Nepumuk das im Reiter: Übersicht erstellt hat.
https://www.herber.de/bbs/user/74549.xlsm
AW: Balkendiagram mit Bilder Popup
Beverly
Hi,
mit meiner Erläuterung hatte ich mich auf das genannte Beispiel bezogen - du musst nur den bereits vorhandenen Code belassen und durch meinen geposteten entsprechend ergänzen. Außerdem musst du Worksheets("Tabelle2") ersetzen durch Worksheets("Dashboard").
Wie ich schon geschrieben hatte: das betreffende Diagramm (nicht das Tabellenblatt!!) muss angeklickt werden, bevor der Code ausgelöst werden kann.
https://www.herber.de/bbs/user/74550.xls


AW: Balkendiagram mit Bilder Popup
e-mo
Hallo,
PERFEKT!! genauso soll es sein! Funktioniert das auch, wenn ich mehrere Reiter habe?, zb. Dashboard, Dashboard1, Dashboard2 etc etc...?
Die änderungen im Worksheets("Dashboard")...muss ich diesbezüglich anpassen, wo finde ich jedoch den Code, womit ich die einzelne Säule mit dem richtigen Graph verbinde?
Gruss,
e-mo
AW: Balkendiagram mit Bilder Popup
Beverly
Hi,
wenn du mehrere Tabellenblätter hast, ist es einfacher, nicht das Workbook_Open Ereignis wie bisher zum Initialisieren der Diagramme zu verwenden sondern das Workbook_SheetActivate Ereignis. Lösche den Code im Codemodul Diese Arbeitsmappe und ersetze ihn durch den folgenden:
Option Explicit
Dim arrDiagramme() As New clsDiagramm
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim chrDiagramm As ChartObject
Dim intDiagramm As Integer
intDiagramm = 1
If InStr(Sh.Name, "Dashboard") > 0 And Sh.ChartObjects.Count > 0 Then
ReDim arrDiagramme(1 To Sh.ChartObjects.Count)
For Each chrDiagramm In Sh.ChartObjects
Set arrDiagramme(intDiagramm).chrDia = chrDiagramm.Chart
intDiagramm = intDiagramm + 1
Next chrDiagramm
End If
End Sub

Damit werden beim Aktivieren eines Tabellenblattes, wenn sein Name "Dashboard" enthält, die darauf befindlichen Diagramme initialisiert.
Lösche außerdem das Modul mdlDiaInit, das ist dann nicht mehr erforderlich.
Damit die Diagramme zum jeweiligen Datenpunkt angezeigt werden, musst du die betreffenden Diagramme in Tabelle1 so benennen, wie die Rubrik heißt.


AW: Balkendiagram mit Bilder Popup
e-mo
Guten Morgen...
werde das gleich mal ausprobieren. hoffentlich klappt das alles auf anhieb :-)
bis eventuell später,
gruss,
e-mo
AW: Balkendiagram mit Bilder Popup
e-mo
Hi...
habe das alles so abändern können, wie du das gesagt hast. klappt eigentlich auch, wie ich mir das vorgestellt habe, jedoch ist ein problem, was ich vorher nicht bedacht habe.
was ist, wenn sich in meinem beispiel (mehrere Dashboard Reiter), die Automarken sich wiederholen?
z.b.: Dashboard - Europa, Dashboard - US, Dashboard - Asia, mit der jeweiligen Gesamtdarstellung für den aktuellen Monat für sämtliche Automarken.
in den jeweiligen Dashboard sind die jeweiligen Automarken vertreten, d.h: VW, Porsche, Ferrari etc etc, hier kann ich die einzelnen Graphiken doch nicht gleich benennen, so dass die richtige Graphik für das jeweilige Gebiet abgebildet wird...
gibt es hierzu einen lösungsansatz?
danke,
e-mo
hier kann ich den
AW: Balkendiagram mit Bilder Popup
Beverly
Hi,
benenne die Diagramme so um, dass du dem Name noch den Namen des zutreffenden Tabellenblattes voransetzt - also aus z.B. VW machst du Dashboard - Europa VW. Im Klassenmodul musst du dann nur strName ersetzen durch diesen Ausdruck: ActiveSheet.Name & " " & strName


AW: Balkendiagram mit Bilder Popup
e-mo
hm...
habe das klassenmodul geöffnet und sehe folgendes:
Option Explicit
Public WithEvents chrDia As Chart
Private Sub chrDia_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal  _
y As Long)
Dim IDNum As Long
Dim a As Long
Dim b As Long
Dim arrXWerte()
Dim strName As String
chrDia.GetChartElement x, y, IDNum, a, b
On Error Resume Next
If IDNum = 3 Then
arrXWerte = chrDia.SeriesCollection(a).XValues
strName = arrXWerte(b)
If Not UserForm1.Visible Then
Call Show_Chart(strName)
Else
If UserForm1.Caption  strName Then _
Call Show_Chart(strName)
End If
Else
Unload UserForm1
End If
On Error GoTo 0
End Sub
wo ändere ich das? beim ändern bei den strName in: ActiveSheet.Name & " " & strName
wird der Code an dieser stelle rot...
e-mo
AW: Balkendiagram mit Bilder Popup
Beverly
Hi,
ich kann nicht erkennen, was du geändert hast und kann es deshalb auch nicht nachvollziehen - bei mir wird der Code problemlos akzeptiert:
Option Explicit
Public WithEvents chrDia As Chart
Private Sub chrDia_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal  _
y As Long)
Dim IDNum As Long
Dim a As Long
Dim b As Long
Dim arrXWerte()
Dim strName As String
chrDia.GetChartElement x, y, IDNum, a, b
On Error Resume Next
If IDNum = 3 Then
arrXWerte = chrDia.SeriesCollection(a).XValues
strName = arrXWerte(b)
If Not UserForm1.Visible Then
Call Show_Chart(ActiveSheet.Name & " " & strName)
Else
If UserForm1.Caption  ActiveSheet.Name & " " & strName Then _
Call Show_Chart(ActiveSheet.Name & " " & strName)
End If
Else
Unload UserForm1
End If
On Error GoTo 0
End Sub



AW: Balkendiagram mit Bilder Popup
e-mo
Hi Beverly...
ich habe es endlich geschafft!! Der Code stimmte...jedoch hat die Tabelle1 nicht gestimmt. in Meiner Datei war es die Tabelle35, hatte aber gedacht, dass wenn ich den Reiter in Tabelle1 benenne, dann wäre alles in ordnung, was nicht war! excel vergibt die Tabellenr. selbst...das war mein problem. wußte nicht, dass es die tabelle35 war.
nun bin ich sehr ehrleichter, du und nepumuk seid mir ne wirklich große hilfe gewesen! vielen dank!
wenn du in FFM oder BLN bist...dann hätte ich dich/euch zum bier/caffee eingeladen :-)
danke,
e-mo
AW: Balkendiagram mit Bilder Popup
Beverly
Hi,
der Code für das Kopieren der Diagramme ist so geschrieben, dass er sich auf den Codenamen des Tabellenblattes bezieht (der von Excel automatisch vergeben wird). Willst du dich dagegen auf den Namen im Tabellenreiter beziehen, dann musst du an der betreffenden Stelle den Code ändern in Worksheets("Tabelle1").


AW: Balkendiagram mit Bilder Popup
e-mo
HILFEEE.....
irgendwie hat es doch nicht geklappt:-(((((
habe folgendes gemacht...aus dem positiven Beispiel habe ich folgendes exportiert:
- UserForm1
- Modul1
- clsDiagramm
habe in Diese Arbeitsmappe den Code eingefügt:
Option Explicit
Dim arrDiagramme() As New clsDiagramm

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim chrDiagramm As ChartObject
Dim intDiagramm As Integer
intDiagramm = 1
If InStr(Sh.Name, "DB") > 0 And Sh.ChartObjects.Count > 0 Then
ReDim arrDiagramme(1 To Sh.ChartObjects.Count)
For Each chrDiagramm In Sh.ChartObjects
Set arrDiagramme(intDiagramm).chrDia = chrDiagramm.Chart
intDiagramm = intDiagramm + 1
Next chrDiagramm
End If
End Sub

habe extra einen reiter in meiner eigentlichen Datei mit der benennung: Tabelle1 erstellt, und darin die Säulendiagramme kopiert. Habe die einzelne Diagramme so umbenannt wie die Rubrik...aber wenn ich mit der Maus darauf bin, zeigt es mir den graphen nicht an...wieso?!
habe ich eine anpassung vergessen?!
e-mo
AW: Balkendiagram mit Bilder Popup
Beverly
Hi,
deine Tabellenblätter beinhalten auch wirklich den Ausdruck "DB" in dieser Form?


AW: Balkendiagram mit Bilder Popup
e-mo
Hi Beverly...
die Reiter beinhalten "DB - blablabla", und ich habe 15 davon, mit jeweils 4 quadranten.
ich habe zuvor deine vorherige antwort nicht gelesen, daher teste ich das gleich nochmal.
bis gleich :-)
e-mo

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige