Hi,
@Karin (Beverly)
was du beschrieben hast, macht Charlotte's Code bereits...
Dann lese ich den Code anders. Für mich ermittelt dieser Code den WerteBereich der
ersten Datenreihe des Diagramms und geht dann eine im Code fix vorgegebene Menge an Datenreihen (hier 4) durch. Ebenso erwartet er die Beschriftungen fix in Spalten, beginnend bei fix "O4"
- Dies würde ich dann z.B. variabel halten wollen indem ich die Anzahl der Datenreihen aus
ActiveChart.SeriesCollection.Count holen würde. Im Anschluss daran würde ich erst, für jede Datenreihe erneut, den jeweiligen WerteBereich ermitteln wollen. (Hier könnte man dann auch gleich ermitteln, ob die Daten der Datenreihe in einer Spalte oder einer Zeile angeordnet sind.)
--kleiner Test für obigen Code (AW4): Zwei Datenreihen im Diagramm, erste Datenreihe 10 Werte, zweite Reihe 20 Werte. In jeder Reihe würden nur 10 Werte beschriftet werden, wenn man bei der Diagrammerstellung nicht den Gesamtbereich auswaehlt, sondern für jede Reihe den Bereich (einmal 10, einmal 20Zellen) explizit vorgibt.
Man sollte dem Benutzer schon so viel Freiheit lassen...
<Spass> Die hat er doch. Er kann die Datenpunkte jederzeit von Hand beschriften..., ohne ein Makro... ;-)</Spass>
Aber zurück zum Thema: Ich hatte mich erstmal an den Vorgaben von Charlotte_S aus AW4 orientiert. Dabei würde ich die Anzahl der Datenreihen variabel halten wollen, wie auch den genauen Bereich der Datenherkunft . Einzige Vorgabe (im ersten Gankengang): Beschriftungsbereich direkt neben dem Wertebereich in gleicher Grösse und Anordnung. Ob die erste Datenreihe in A1 oder wie hier in K4 beginnt, und der Beschriftungsbereich somit in E1 oder wie hier in O4 beginnt ermittelt das Makro selbst. Ob es 2, 4 oder 40 Datenreihen sind, ebenso (incl. sich dadurch ergebende Verschiebung des Beschriftungsbereiches). Mit etwas Aufwand könnte ich mir auch vorstellen zu ermitteln, ob die Datenbereiche aller Reihen zusammenhängend sind oder nicht. Wenn zusammenhängend in Zeilen, dann als Vorgabe (oder auch Auswahl) ob der ebenfalls zusammenhängende Beschriftungsbereich direkt darüber oder darunter zu finden ist. Wenn zusammenhängend in Spalten dann als Vorgabe (oder auch Auswahl) ob der ebenfalls zusammenhängende Beschriftungsbereich direkt rechts oder links daneben zu finden ist. (So der erste Gedanke)
Nun nach nochmalige Lesen des Threads stolperte ich nochmal über AW7 und den dortigen Hinweis auf "InputBox Typ 8". (Vorteil für mich: wieder etwas gelernt... da ich diese Möglichkeit noch nicht kannte.) Somit kenne ich nat. auch noch nicht die Probleme, die Charlotte_S bei der Fehlerbehandlung solcher Boxen erwähnt hat. (Hier wäre ich für den ein oder anderen Stichpunkt dankbar.) Auf den ersten (noch verschwommenen;-)) Blick ergeben sich aber meiner Meinung nach doch ein paar Möglichkeiten. Datenreihen durchgehen, je Datenreihe evtl. Abfrage ob behandeln oder nicht, wenn ja mittels Input Typ8 Bereich auswählen lassen (Prüfung ob Grösse der Bereiche identisch ist und Werte zur Beschriftung enthalten z.B.) bei Abbruch Rückfrage ob nächste Datenreihe oder KomplettAbbruch, etc. etc. Entscheidungen und Bereiche zwischenspeichern und wenn letzte Datenreihe positiv, dann mit diesen Ergebnissen die Arbeit aufnehmen. Sicher steht hier einiges an Programmieraufwand ins Haus. Aber die Aufgabe klingt mal interessant. (Zumindest bei meiner Unkenntnis der zu erwartenden Probleme ;-))
Ein Problem habe ich mit meinen Kenntnissen schon: Nach dem Lauf des Makros aus AW4 sind die Punkte entsprechend beschriftet. Ändere ich in Tabelle1 eine Beschriftung, aktualisiert sich im Diagramm nicht das entsprechende Beschriftungslabel. Zudem erhalte ich bei Selektion eines einzelnen Beschriftunglabels im Diagramm die Fehlermeldung "Die eingegebene Formel enthält einen Fehler". (Excel 2007)
bye
malSchauen