Mfg, Franz
"Walter Hess" <Hess...@t-online.de> schrieb im Newsbeitrag
news:8E4rm...@hessline.t-online.de...
> Hallo Newsgroup,
>
> kann man ein Textfeld fest an einer Saeule im Diagramm verankern,
> so dass es beim Anpassen des Diagramms auf den erweiterten
> Tabellenbereich mit der Saeule wandert ?
>
> Bei allen Lesern hier, denen dieser Beitrag aus einem anderen Forum
> bekannt ist m÷chte ich mich schon jetzt fłr das crossposting
> entschuldigen.
>
> Leider bekam ich noch keine Auskunft auf meine Anfrage.
>
> Tschau
> Meinem Diagramm habe ich eine Bildlaufleiste spendiert mit der man
> sehr komfortabel die Tabelle rauf und runter scrollen kann.
Kannst du das näher erläutern, was du da gemacht hast?
> Nur die verflixten Wertbeschreibungen (Textfelder) bleiben stur auf
> der gleichen vertikalen Linie.
Alle auf einer vertikalen Linie. Auf der selben?
Mfg, Franz
"Walter Hess" <Hess...@t-online.de> schrieb im Newsbeitrag
news:8E8yeDZ$s...@hessline.t-online.de...
> Hallo Franz,
>
> danke schoen, habe es gleich getestet, funzt fast alles wie Du
> geschrieben hast nur weigert sich der eingetragene Text der
> Saeule zu folgen.
>
> Meinem Diagramm habe ich eine Bildlaufleiste spendiert mit der man
> sehr komfortabel die Tabelle rauf und runter scrollen kann.
> Nur die verflixten Wertbeschreibungen (Textfelder) bleiben stur auf
> der gleichen vertikalen Linie.
> Das Einzigste was die machen, sie positionieren sich immer auf den
> gleichen Abstand zur Saeulenspitze.
>
>
> >Tach, in einem Tread wurde mal beschrieben, das du den entsprechenden
> >Datenpunkt markierst und per Datenpunkt formatieren laesst du dir den
> >Wert anzeigen. Anschliessend doppelt auf den Wert klicken und beliebige
> >Zeichenfolge eingeben. Dieser folgt dann der zugehoerigen Saeule etc..
> >
> >Mfg, Franz
> >
> >"Walter Hess" <Hess...@t-online.de> schrieb im Newsbeitrag
>
> >> kann man ein Textfeld fest an einer Saeule im Diagramm verankern,
> >> so dass es beim Anpassen des Diagramms auf den erweiterten
> >> Tabellenbereich mit der Saeule wandert ?
>
> Tschau
>
>
>
>
>
> Tschau
ActiveChart.SeriesCollection(1).Points(5).DataLabel
Also im ersten Moment würde ich sagen, ohne es ausprobiert zu haben, das du
entsprechend deiner Bildlaufleiste auch das Datalabel verschieben mußt oder
löscht und dann mittels .Text an der richtigen Stelle wieder setzt.
Allerdings hilft dir das wohl nur solange du innerhalb deiner 15 Points
bist, weil du sonst wahrscheinlich eine Fehlermeldung bekommst das du
außerhalb des gültigen Index bist. Wahrscheinlich hast du auch mehr als nur
ein Datalabel, weil es über das Jahr mehrere drastische Änderungen geben
kann. Wie kann man das bewerkstelligen? Im ersten Moment würde ich es so
probieren. Ich habe meine Spalte mit Datümern, dann mit Werten, die ich für
das Säulendiagramm hernehme. In die nächste Spalte würde ich in den
entsprechenden Zeilen, die eine drastische Veränderung haben, meinen Text
schreiben den ich angezeigt haben will.
Jetzt würde ich mir in etwa so was schreiben:
Prüfe den Bereich der für die Säulen hergenommen wird, darauf ob in 1+5+1
Spalte etwas steht und schreibe diesen Wert an die Stelle des
?.Points(?).Datalabel.Text = ?.Range(??).Text
Ist zwar keine fertige Lösung, aber vieleicht ein Anstoss.
Mfg, Franz
"Walter Hess" <Hess...@t-online.de> schrieb im Newsbeitrag
news:8EC-K...@hessline.t-online.de...
> Hallo Fritz,
>
>
> >Also jetzt bin ich ein bischen verwirrt. Du Hast eine Saeulendiagramm.
> >Richtig?
> Ja.
>
> >Anschliessend laesst du in den Optionen den Wert der jeweiligen
> >Saeule anzeigen. Klicks auf einen Wert doppelt und gibts deinen Text
> >ein. Richtig?
> Nicht ganz, man muss zweimal klicken damit man ueberschreiben kann.
>
> >Jetzt muesste der Wert bzw dein Text an der Saeule
> >"kleben", d.h. du veraenderst den Wert der Saeule, der Text verschiebt
> >sich entsprechend in der Hoehe. Richtig?
> Ja.
>
> >Du erweiterst dein Diagramm, so das mehr oder weniger Saeulen angezeigt
> >werden. Der Text bleibt an der richtigen Saeule kleben. Richtig?
> Falsch, ich verlagere das Diagramm nach links oder nach rechts.
> Wenn ich wie Du schreibst "erweitere" bleibt der Text kleben.
>
> >> Meinem Diagramm habe ich eine Bildlaufleiste spendiert mit der man
> >> sehr komfortabel die Tabelle rauf und runter scrollen kann.
> >Kannst du das naeher erlaeutern, was du da gemacht hast?
> Ich werde es mal versuchen. Stell Dir eine Tabelle vor mit 365
> Datenzeilen = fuer jeden Tag des Jahres eine Zeile. In der ersten
> Spalte ist das Datum = Rubrikenachse X. Jede Zeile enthaelt neben der
> Spalte mit dem Datum 5 weitere Datenspalten = im Diagramm je Tag 5
> Saeulen.
> Im Diagramm sind die aktuellsten (letzten) 15 Tage dargestellt.
> Damit ich komfortabel den aelteren Teil der Tabelle mit diesem 15 Tage
> Diagramm betrachten kann verwende ich eine Bildlaufleiste mit ein wenig
> VBA und verlagere damit den Darstellungsbereich des Diagrammes.
> Es werden aber immer 15 Tage angezeigt. Mit jedem Klick auf die
> Endpfeile der Bildlaufleiste verlagere ich das Diagramm 2 Tage nach
> rechts oder nach links.
> Besondere Ereignisse die zu einer drastischen Datenaenderung im laufe
> des Jahres gefuehrt haben will ich mit dem wandernden Textfeld
> darstellen.
>
> >> Nur die verflixten Wertbeschreibungen (Textfelder) bleiben stur auf
> >> der gleichen vertikalen Linie.
> >Alle auf einer vertikalen Linie. Auf der selben?
> Ich haette besser schreiben sollen: "Nur das verflixte Textfeld bleibt
> stur auf der gleichen vertikalen Position des Monitor's".
>
> Hoffentlich habe ich nicht mehrfach die letzte Mail gesendet.
> Seltsamerweise konnte ich sie bei Google nicht finden und hab sie
> nochmal auf die Reise geschickt.
>
> Wann hast Du denn die letzte Mail von mir erhalten ?
> Ich habe den Verdacht, dass mein Newsreader mit DSL nicht klarkommt.
>
> Tschau
Hallo,
haben den Lösungsvorschlag ebenfalls ausprobiert, da wir hier ein ähnliches
Problem haben. Bei uns ist jedoch die Datenreihe ab Oktober nicht leer,
sondern die restlichen Felder für November und Dezember sind mit Null
gefüllt.
Wie kann man dann die Grafik dazu bringen, die Monate Nov.+Dez. nicht als
Null darzustellen?
Gruß
S. Minnerup
"Walter Hess" <Hess...@t-online.de> schrieb im Newsbeitrag
news:8E4rm...@hessline.t-online.de...
> Hallo Newsgroup,
>
> kann man ein Textfeld fest an einer Saeule im Diagramm verankern,
> so dass es beim Anpassen des Diagramms auf den erweiterten
> Tabellenbereich mit der Saeule wandert ?
>
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
If IDNum = xlLegendEntry Then _
MsgBox "WARNING: Move away from the legend"
End Sub
Wenn die IDNum = xlDataLabel ist, dann wird in a der SeriesIndex
zurückgegeben und in b der Pointindex. Somit kannst du per If b = blabla
then
was auch immer.
Wieder keine fertige Lösung, aber vieleicht ein Anstoss.
Mfg, Franz
"Walter Hess" <Hess...@t-online.de> schrieb im Newsbeitrag
news:8EPII...@hessline.t-online.de...
> Hallo Franz,
>
> >Pruefe den Bereich der fuer die Saeulen hergenommen wird, darauf ob in
> >1+5+1 Spalte etwas steht und schreibe diesen Wert an die Stelle des
> >?.Points(?).Datalabel.Text = ?.Range(??).Text
> >
> >Ist zwar keine fertige Loesung, aber vieleicht ein Anstoss.
>
> Du hattest recht es war der Anstoss.
>
> Mit folgendem Code konnte ich das Problem einigermassen loesen.
>
> Function Textfeld()
>
> Arbeitsblatt = ActiveSheet.Name
> Tabellenblatt = "Info"
> ActiveChart.SeriesCollection(7).Select
> ActiveChart.SeriesCollection(7).ApplyDataLabels
Type:=xlDataLabelsShowNone, _
> AutoText:=True, LegendKey:=False
> ActiveChart.Deselect
> Wert1 = Bl 'Das ist der momentane Wert der Bildlaufleiste
> Wert2 = Bl + ListWert - 1 'Listwert = der gewaehlte Wert der ListBox
> n = 1
> For i = Bl To Wert2
> Ereignis = Sheets(Tabellenblatt).Range("B" & i).Value
> If Len(Ereignis) > 1 Then 'Zelle mit Wert ermitteln
> ActiveChart.SeriesCollection(7).Points(n).Select
> ActiveChart.SeriesCollection(7).Points(n).ApplyDataLabels Type:= _
> xlDataLabelsShowValue, AutoText:=True
> ActiveChart.SeriesCollection(7).Points(n).DataLabel.Select
> 'Hier wird der Zell-Bereich gebastel
> Bereich = "='" & Tabellenblatt & "'!R" & Bl + n - 1 & "C2"
> Selection.Text = Bereich
> With Selection.Font
> .Name = "Arial"
> .FontStyle = "Fett"
> .Size = 7
> .Underline = xlUnderlineStyleNone
> .ColorIndex = xlAutomatic
> .Background = xlAutomatic
> End With
> ActiveChart.ChartArea.Select
> ActiveChart.Deselect
> End If
> n = n + 1
> Next i
>
> End Function
>
>
> Was fuer meinen Fall noch besser waere.
>
> Als Datenbeschriftung zeige ich ein grosses Ausrufezeichen.
> Beim "mauspfeildrueberhalten" soll dann das gelbe
> Kommentarfenster (ToolTipText) sichtbar werden.
>
> Hast Du auch dazu eine Anregung fuer mich ?
>
> Tschau
Antwort = ActiveChart.SeriesCollection(a).Points(b).DataLabel.Text
In der Variablen Antwort steht dann dein Datalabeltext , weil a und b ja
deine Indexe sind, ausgelöst durch MouseMove und weg If IDNum = xlDatalabel
nur diese berücksichtigt wurden. Wenn du eine Msgbox Antwort anfügst,
bekommst du wirklich nur dann eine Msgbox angezeigt, wenn die entsprechende
Säule auch ein Datalabel hat.
PS: Hatte ich letztens ganz vergessen, das das Ereignis Chart_MouseMove nur
bei Diagrammblättern zur Verfügung steht, glaube ich...
Mfg, Franz
"Walter Hess" <Hess...@t-online.de> schrieb im Newsbeitrag
news:8EXWVWL$s...@hessline.t-online.de...
> Hallo Franz,
>
> >Ab xl2000 koennte dir das aus der OH weiterhelfen:
> Das geht auch in xl97.
>
> 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
> If IDNum = xlDataLabel Then MsgBox "Bla bla"
>
> End Sub
>
> Leider komme ich mit a und b allein nicht weiter, was mir fehlt ist der
> Inhalt des DataLabel. Nur wenn ich abfragen kann was als DataLabel
> geschrieben steht komme ich weiter.
>
> Ist das ueberhaupt moeglich ?
>
> Tschau