Discussion:
Problem mit einem dynamischen Diagramm
(zu alt für eine Antwort)
Hans Alborg
2015-07-13 21:34:54 UTC
Permalink
Hallo.

<Excel 2007>

tja, eigentlich, obwohl selbst mal gebaut, ist mir das heute ein Rätsel:

Ich habe auf einem Tabellenblatt ein kleines Liniendiagramm eingebettet.
Links davon befindet sich eine Tabelle, die meine Überstunden anzeigt.
Für das Diagramm sind Spalte G mit dem Datum und Spalte H mit der
Stundensumme relevant.

Wenn ich einen bestimmten Kopfteil der Tabelle anklicke (statt der
stressigen ActiveX-Buttons) kann ich einen Neuaufbau der Tabelle (mit VBA)
auslösen.
Die Linienanzeige des Diagramms baut sich analog dazu auf.
Wie? Keine Ahnung (mehr)! Nicht jedenfalls mit VBA.

Mein Problem ist, daß das Diagramm nur auf dem Rechner reagiert, wo ich es
mal eingerichtet hatte. Bei anderen Computern kommt eine Bezugs-
Fehlermeldung, und es fehlen die Einträge "Diagrammbereich" und "horizontale
Achsenbeschriftungen" (=Spalte G, Datum).

Nach meiner Suche im VBA-Code bei Schrittbetrieb sah ich hier auf dem
Ursprungsrechner ebenfalls daß diese Einträge fehlten, wenn noch nichts in
der Tabelle steht. Die Bezugsmeldung kam dabei (im Schrittbetrieb) auch auf
diesem Rechner.

Somit ist diese Meldung evtl. kein Indiz dafür, daß auf anderen Rechnern
keine Kurve entsteht. Evtl. kann ich sie überhaupt irgendwie vermeiden, z.B.
wenn ich den ersten Datensatz (Zeile 6) immer stehen lasse?

Also die Fragen: wie kann sich das Diagramm dynamisch aufbauen, wie kommt
der sich erweiternde Bezug ins Feld "Diagrammbereich"?
Und warum geht das bei anderen Rechnern nicht?

TIA,

Hans
Claus Busch
2015-07-14 05:40:20 UTC
Permalink
Hallo Hans,
Post by Hans Alborg
Ich habe auf einem Tabellenblatt ein kleines Liniendiagramm eingebettet.
Links davon befindet sich eine Tabelle, die meine Überstunden anzeigt.
Für das Diagramm sind Spalte G mit dem Datum und Spalte H mit der
Stundensumme relevant.
Wenn ich einen bestimmten Kopfteil der Tabelle anklicke (statt der
stressigen ActiveX-Buttons) kann ich einen Neuaufbau der Tabelle (mit VBA)
auslösen.
Die Linienanzeige des Diagramms baut sich analog dazu auf.
Wie? Keine Ahnung (mehr)! Nicht jedenfalls mit VBA.
du kannst deinen beiden Spalten einen dynamischen Bereichsnamen vergeben
haben und diesen in dem Diagramm verwenden.
Eine weiter Methode wäre, die Daten als Tabelle zu formatieren. Dann
wird immer der korrekte Bereich erfasst.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Hans Alborg
2015-07-14 15:07:18 UTC
Permalink
Hi Claus,

"Claus Busch" schrieb...
Post by Claus Busch
Post by Hans Alborg
Die Linienanzeige des Diagramms baut sich analog dazu auf.
Wie? Keine Ahnung (mehr)! Nicht jedenfalls mit VBA.
du kannst deinen beiden Spalten einen dynamischen Bereichsnamen vergeben
haben und diesen in dem Diagramm verwenden.
Das steht im Datenbereichsfeld des Diagramms:
='Arbeitszeit'!$G$5:$H$87

Mit Beginn des Tabellenaufbaus, ohne Daten, ist das Feld leer!

Also kein Name. $H$nn erhöht sich mit jeder Zeilenschleife , letzte Zeile
ist gerade 87.
Klick in den Bereich zeigt im Namensfeld nur die Zelladresse.
Post by Claus Busch
Eine weiter Methode wäre, die Daten als Tabelle zu formatieren. Dann wird
immer der korrekte Bereich erfasst.
Naja, die Daten werden ja untereinander geschrieben, mit einer wachsenden
Tabellenformatierung (Rahmen).
Ist es das?
Warum geht es auf anderen Computern nicht?

Vielen Dank für Deine Mühe (mal wieder)!

Hans
Claus Busch
2015-07-14 15:47:45 UTC
Permalink
Hallo Hans,
Post by Hans Alborg
Naja, die Daten werden ja untereinander geschrieben, mit einer wachsenden
Tabellenformatierung (Rahmen).
Ist es das?
Warum geht es auf anderen Computern nicht?
bei Tabellenformatierung wird immer der korrekte Bereich angezeigt. Aber
dazu muss man nicht klicken. Du hast geschrieben, dass du in den
Kopfteil der Tabelle klicken musst, damit sich das Diagramm erweitert.
Ist vielleicht Code im Sheet_SelectionChange-Ereignis?Oder hast du dort
einen Formular-Button oder ein Shape versteckt und diesem Code
zugeordnet?
Dynamische Namen und als Tabelle formatierte Daten machen das ohne einen
Klick.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Hans Alborg
2015-07-14 19:01:55 UTC
Permalink
Hi Claus,

"Claus Busch" schrieb...
Post by Claus Busch
Post by Hans Alborg
Warum geht es auf anderen Computern nicht?
bei Tabellenformatierung wird immer der korrekte Bereich angezeigt.
Im Diagramm?? Mein Glück...
Post by Claus Busch
Aber dazu muss man nicht klicken.
Stimmt.
Post by Claus Busch
Du hast geschrieben, dass du in den Kopfteil der Tabelle klicken musst,
damit sich das Diagramm erweitert.
Nein, hab ich nicht: der Klick "oben" in Zeile 1,2 ersetzt nur einen
ActiveX-Button.
Die Tabelle wird gelöscht und baut sich per VBA- Schleife incl. der Rahmen
neu auf.
Unabhängig vom Diagramm (das kam auch später dazu).

Wenn am Anfang noch keine Zeile existiert, steht im Bereichsfeld des
Diagramms garnichts.
Dann, mit der ersten Zeile, plötzlich ='Arbeitszeit'!$G$5:$H$5.
Das erweitert sich selbst mit jeder neuen Zeile, und wie
='Arbeitszeit'!$G$5:$H5 zeigt, ist kein Name im Spiel.
Und die Diagrammlinie erweitert sich während des Aufbaus der Tabelle mit.
Post by Claus Busch
Ist vielleicht Code im Sheet_SelectionChange-Ereignis?
Klar, um den Button zu simulieren den es bis Dez.14 mal gab. Es wird aber
nur der Code zum Tabellenbau ausgeführt, hab ich ja mit dem
VBA-Einzelschrittmodus geprüft.
(Diese Tabelle liegt übrigens direkt links vom Diagramm. Rechts davon ist
eine weitere Tabelle die sich auch neu aufbaut beim Klick auf "ihren" Kopf.
Das hat aber garnichts mit dem Diagramm zu tun.)

Ich versteh ja, daß Excel das Diagramm nach der Tabellenlänge allein
erweitert, aber wie kommt der erste Bezug ='Arbeitszeit'!$G$5:$H$5 in das
Diagramm? Excel kann doch nicht wissen, welche Spalten ich haben will? Z.B.
weil ja die rechte Tabelle auch noch da ist...
Post by Claus Busch
Oder hast du dort einen Formular-Button oder ein Shape versteckt und
diesem Code zugeordnet?
Nein. Mir gefallen inzwischen Zellen besser als Buttons. Obwohl ganz ohne
geht's auch nicht.
Post by Claus Busch
... und als Tabelle formatierte Daten machen das ohne einen Klick.
Dann wird's wohl so laufen. Aber warum nur auf dem Entwicklungscomputer?

Hans
Claus Busch
2015-07-14 19:13:54 UTC
Permalink
Hallo Hans,
Post by Hans Alborg
Ich versteh ja, daß Excel das Diagramm nach der Tabellenlänge allein
erweitert, aber wie kommt der erste Bezug ='Arbeitszeit'!$G$5:$H$5 in das
Diagramm? Excel kann doch nicht wissen, welche Spalten ich haben will? Z.B.
weil ja die rechte Tabelle auch noch da ist...
das Diagramm über diesen Bereich bestand doch schon. Der Bereich bleibt
im Diagramm gespeichert. Kannst du kontrollieren bei leerem Diagramm
über Entwurf => Daten auswählen. Wenn dann in diesem Bereich wieder
Daten erscheinen, werden sie auch wieder genommen.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Hans Alborg
2015-07-15 16:29:47 UTC
Permalink
Hallo Claus,

"Claus Busch" schrieb...
das Diagramm über diesen Bereich bestand doch schon. Der Bereich bleibt im
Diagramm gespeichert.
Kannst du kontrollieren bei leerem Diagramm über Entwurf => Daten
auswählen.
Ist dasselbe Fenster das ich meinte wenn ich mit Rechtsklick ins Diagramm
"Daten auswählen" wähle.
Da gibt's die 3 Felder für "Diagrammdatenbereich" (leer ohne die Tabelle),
"Legendeneinträge (Reihe)" (steht "Überstd" drin, ist der Kopfname der
Spalte F) und "horizontale Achsenbeschriftungen (Rubrik)", ist ohne Tabelle
auch leer.

Soll sich das Diagramm Anhand des Namens der F- Spalte aufbauen?
Erstaunlich.

Na ich kann jedenfalls mal gucken, ob "Üstd." bei den anderen Computern
drinsteht.

Hans
Hans Alborg
2015-07-15 18:57:26 UTC
Permalink
Hmm, ich lasse jetzt die erste Datenzeile stehen und überschreibe sie dann.
Ist zwar nicht fein aber die Bezugsfehlermeldung wegen der gelöschten
Tabelle ist weg. Jedenfalls wie sie auf dem Entwicklungsrechner im VBA-
Schrittbetrieb zu sehen war. Bin gespannt was morgen der Rechner am
Arbeitsplatz macht.

Hans
Claus Busch
2015-07-15 19:10:15 UTC
Permalink
Hallo Hans,
Post by Hans Alborg
Hmm, ich lasse jetzt die erste Datenzeile stehen und überschreibe sie dann.
Ist zwar nicht fein aber die Bezugsfehlermeldung wegen der gelöschten
Tabelle ist weg. Jedenfalls wie sie auf dem Entwicklungsrechner im VBA-
Schrittbetrieb zu sehen war. Bin gespannt was morgen der Rechner am
Arbeitsplatz macht.
ich weiß nicht, was dein Code macht. Wenn ich ein Diagramm erstelle und
dann die Daten in der Tabelle lösche (auch die Überschriften), bleibt im
Diagramm der Datenbereich bestehen und das Diagramm schreibt sich neu,
wenn in diesen Bereich wieder Werte eingetragen werden. Im Bereich
Reihen steht dort dann <Leere Reihe>.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Hans Alborg
2015-07-15 20:42:51 UTC
Permalink
"Claus Busch" schrieb...
...bleibt im Diagramm der Datenbereich bestehen und das Diagramm schreibt
sich neu, wenn in diesen Bereich wieder Werte eingetragen werden. Im
Bereich Reihen steht dort dann <Leere Reihe>.
Hm, Du hast recht. Weiter nichts als "Überstd" bleibt bei gelöschter Tabelle
stehen (im Reihenfeld), aber das ist nicht die Überschrift einer Spalte,
sondern die dynamische Zeilenzahl dieser Spalte. Ich mußte schon genau
hinsehen um die Markierung des Bereichs zu erkennen (wegen der Farbgebung).

Leider sehe ich den Bereichsnamen "Üstd" nicht im Namensfeld links von der
Bearbeitungsleiste, sondern nur Zelladressen. Komisch.

Dann hat sich das wohl erstmal geklärt.

Hans
Hans Alborg
2015-07-17 09:32:20 UTC
Permalink
Update: durch das Stehenlassen der ersten Tabellenzeile baut sich jetzt das
Diagramm auch bei den anderen Rechnern auf!

Hans
Claus Busch
2015-07-17 10:11:08 UTC
Permalink
Hallo Hans,
Post by Hans Alborg
Update: durch das Stehenlassen der ersten Tabellenzeile baut sich jetzt das
Diagramm auch bei den anderen Rechnern auf!
das sind die Kleinigkeiten mit großer Wirkung ;-)
Danke für die Rückmeldung.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Lesen Sie weiter auf narkive:
Loading...