Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1096to1100
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

Datenpunkte beschriften

Datenpunkte beschriften
Tim
Guten Morgen.
Ich benötige Hilfe bei einer Grafik. Ich möchte gerne die Nummern aus Spalte A als Namen für die Datenpunkte in meiner Grafik haben. Wie kann man das anstellen?
https://www.herber.de/bbs/user/63914.xls
AW: Archiv...
19.08.2009 09:05:07
Tim
Ersteinmal danke für den Tipp. Klingt genau nach meinem Problem. Aber ich bin ja noch Laie. Daher die Nachfrage, ob ich es richtig verstehe, dass ich hinter dem Range jetzt immer (A35) schreiben muss, da hier meine Beschriftung losgeht. Ist das alles was angepasst werden muss?
Sub Datenbeschriftung()
Startzelle = InputBox("Adresse der Startzelle eingeben, z.B. A2")
Spalte = Range(Startzelle).Column
Startzeile = Range(Startzelle).Row
Endezeile = Range(Startzelle).End(xlDown).Row
ws = ActiveSheet.Name
ActiveSheet.ChartObjects(1).Activate
For j = Startzeile To Endezeile
With ActiveChart.SeriesCollection(1).Points(j - Startzeile + 1)
.HasDataLabel = True
.DataLabel.Text = Worksheets(ws).Cells(j, Spalte).Value
End With
Next j
End Sub

Anzeige
Anderer Vorschlag
19.08.2009 09:13:47
Matthias5
Hallo nochmal,
ein anderer Vorschlag: Lade dir hier das Add-In "xyChartLabeler" runter:
http://www.appspro.com/Utilities/ChartLabeler.htm
Ist komfortabel zu handhaben und bietet ein paar Möglichkeiten mehr. Habe es gerade mal getestet. Bei Bedarf findest du dort auch eine Anleitung als PDF.
Gruß,
Matthias
AW: Anderer Vorschlag
19.08.2009 09:15:47
Tim
Die Datei wird später von verschiedenen Usern in verschiedenen Unternehmen genutzt. Somit wird ein Add-In nicht helfen, da es sonst ja bei allen installiert werden müsste. Sollte schon eine Excel-Lösung sein nach Möglichkeit.
Anzeige
AW: Archiv...
19.08.2009 09:14:10
Tim
Habe jetzt etwas mehr davon verstanden. Ich würde so etwas ohne Inputbox benötigen. Ich habe einen festen Bereich: A35-A105 zu dem der Bezug der Beschriftung immer sein soll.
Das bestehende Makro geht nur bedingt bei mir. Es erscheint eine Fehlermeldung:
"Die Point-Eigenschaft des Series Objektes kann nicht zugeordnet werden"
bezieht sich auf diese Zeile:
With ActiveChart.SeriesCollection(1).Points(j - Startzeile + 1)
Danke nochmals für eure Hilfe - ein blutiger Anfänger.
AW: Archiv...
19.08.2009 09:30:18
Matthias5
Ich habe dir das hier mal entsprechend angepasst: https://www.herber.de/bbs/user/63918.xls
Gruß,
Matthias
Anzeige
AW: Archiv...
19.08.2009 09:42:20
Tim
Gucke ich mir gleich mal an. Und das kommt direkt in die Tabelle - ich brauche kein Modul?
Richtig, direkt in das Klassenmodul der Tabelle!oT
19.08.2009 09:44:17
Matthias5
AW: Richtig, direkt in das Klassenmodul der Tabelle!oT
19.08.2009 09:50:37
Tim
Super. Scheint alles zu laufen. Klasse. Das hilft mir sehr weiter. Vielen Dank! Top-Forum hier!
Noch ein Problem
19.08.2009 10:46:48
Tim
Hallo nochmals,
nun habe ich doch noch ein Problem. Die Tabelle ist eine von mehreren in einer Arbeitsmappe. Wenn ich in einem anderen Tab.-Blatt bin und F9 zur Neuberechnung drücke, erscheint ein Fehler:
"Die Activate-Methode des Chart-Objektes konnte nicht ausgeführt werden"
Der Debugg-Fehler bezieht sich auf diese Zeile:
ActiveSheet.ChartObjects(1).Activate
Andere Frage auch gleich in diesem Zusammenhang: Wenn ich ggf. bei einem weiteren Tab.-Blatt eine solche Datenbeschriftung benötige, kann ich dann das gleiche nehmen und muss es in dem Tab.-Blatt einfügen oder muss ich da einen anderen Sub-Namen vergeben?
Anzeige
AW: Noch ein Problem
19.08.2009 11:00:12
Ramses
Hallo
Die Fehlermeldung sagt doch schon alles,.. aktiviere die Tabelle wo das chart-object drin ist
Sheets("Tabelle mit Object").Activate
ActiveSheet.ChartObjects(1).Activate
Gruss Rainer
AW: Noch ein Problem
19.08.2009 11:36:32
Tim
Hallo Rainer,
vielen Dank für den Hinweis. Ich habe nun die Sheets-Zeile davorgesetzt und den Titel der Tab eingesetzt. Der Fehler besteht dennoch weiterhin.
Die Arbeitsmappe ist grundsätzlich so eingestellt, dass ein Blattschutz besteht. Kann dies mit diesem Problem zu tun haben?
AW: Noch ein Problem
19.08.2009 11:09:53
Matthias5
Hi,
zu 1):
Das Makro wird nur bei Berechnung in dem Blatt gestartet, in dem es steht. Aus deiner Beschreibung schließe ich, das das Makro auch in einem Blatt steht, in dem kein Diagramm existiert. Hast du das Blatt kopiert, ohne ggf. das Makro zu löschen?
zu 2):
Das Makro kannst du ohne Änderung auch in weiteren Blättern verwenden. Dann würde ich jedoch die Sub "Datenbeschriftung" in einem allgemeinen Modul ablegen und dann mit "Call Datenbeschriftung" aufrufen.
Gruß,
Matthias
Anzeige
AW: Noch ein Problem
19.08.2009 11:28:10
Tim
Hallo Matthias.
Nee, es steht nur in dem einen Tabellenblatt wo auch das Diagramm enthalten ist. In den anderen Tab.-Blättern sind andere Grafiken (aber auch dort können individuellen Einstellungen vorgenommen werden und deswegen muss F9 gedrückt werden).
Zu 2.) Wenn der Bereich der Datenbeschriftung ein anderes ist in einem 2. Tab.-Blatt müsste ich aber 2 Makros haben bzw. könnte in beiden Tab,-Blättern dieses eingeben (und natürlich den Bereich anpassen), richtig?
AW: Noch ein Problem
19.08.2009 11:56:54
Matthias5
Hi,
zu 1):
Dann bestehen Formelbezüge zwischen den beiden Blättern, richtig? Dann wäre das eine Möglichkeit:
Public ws As Worksheet
Sub Datenbeschriftung()
Dim Beschriftungen As Range, c As Range, i As Long
Application.ScreenUpdating = False
Set Beschriftungen = Range("A35:A105").SpecialCells(xlCellTypeVisible)
Sheets("Fahrscheinart im Quervergleich").Activate
ActiveSheet.ChartObjects(1).Activate
For Each c In Beschriftungen
i = i + 1
With ActiveChart.SeriesCollection(1).Points(i)
.HasDataLabel = True
.DataLabel.Text = c.Value
End With
Next c
ws.Activate
Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_Calculate()
Set ws = ActiveSheet
Datenbeschriftung
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If Not Intersect(c, Range("A35:A105")) Is Nothing Then Datenbeschriftung
Next c
End Sub
zu 2):
Richtig, die Bereiche müssen dann angepasst werden.
Alternativ könnte man "Datenbeschriftung" im allgemeinen Modul ablegen und die Range beim Aufruf übergeben:
In das Klassenmodul des jeweiligen Tabellenblattes (Bereich jeweils anpassen):
Private Sub Worksheet_Calculate()
Set ws = ActiveSheet
Call Datenbeschriftung(Range("A35:A105"))
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If Not Intersect(c, Range("A35:A105")) Is Nothing Then Call Datenbeschriftung(Range("A35: _
A105"))
Next c
End Sub
In ein allgemeines Modul:
Public ws As Worksheet
Sub Datenbeschriftung(bereich As Range)
Dim Beschriftungen As Range, c As Range, i As Long
Application.ScreenUpdating = False
Set Beschriftungen = bereich.SpecialCells(xlCellTypeVisible)
Sheets("Fahrscheinart im Quervergleich").Activate
ActiveSheet.ChartObjects(1).Activate
For Each c In Beschriftungen
i = i + 1
With ActiveChart.SeriesCollection(1).Points(i)
.HasDataLabel = True
.DataLabel.Text = c.Value
End With
Next c
ws.Activate
Application.ScreenUpdating = True
End Sub

Gruß,
Matthias
Anzeige
AW: Noch ein Problem
19.08.2009 12:49:09
Tim
Hallo Matthias,
ich habe 1 nun alternativ probiert. Es gibt von einem anderen Tab.-Blatt Bezüge zu diesem Tab.-Blatt.
Aber weiterhin besteht das Porblem, dass der Fehler mit der "Active Methode des Charts-Objektes konnte nicht ausgeführt werden". Dabei wird weiterhin diese Zeile als Fehler angezeigt:
ActiveSheet.ChartObjects(1).Activate
Wie gesagt, auf den Tab.-Blättern ist ein Blattschutz. Kann dies damit zu tun haben?
AW: Noch ein Problem
19.08.2009 12:56:15
Matthias5
Probiers doch mal aus:
Private Sub Worksheet_Calculate()
Set ws = ActiveSheet
Sheets("Fahrscheinart im Quervergleich").Unprotect "Dein Passwort"
Datenbeschriftung
Sheets("Fahrscheinart im Quervergleich").Protect "Dein Passwort"
End Sub

Anzeige
AW: Noch ein Problem
19.08.2009 13:20:12
Tim
Einfach zusätzlich in das Tab.-Blatt einfügen?
AW: Noch ein Problem
19.08.2009 13:27:20
Tim
Jetzt kommt "mehrdeutiger Name" Worksheet Calculate - Fehler beim Kompilieren.
Ich komme nicht mehr mit...
19.08.2009 13:30:46
Matthias5
Kannst du die Datei mal hochladen oder mir schicken?
spottie ätt gmx punkt net
AW: Ich komme nicht mehr mit...
19.08.2009 13:49:19
Tim
solltest post bekommen haben
Bereich nicht angepasst...
19.08.2009 14:15:22
Matthias5
Du hast den Bereich nicht angepasst!
Ersetze jeweils (in dem Beispiel 2x) Range("A35:A105") durch Range("H49:H119")
AW: Bereich nicht angepasst...
19.08.2009 14:29:37
Tim
Super. Jetzt geht es... wie peinlich. Sorry!
Kein Problem, schön, dass es jetzt läuft! oT
19.08.2009 14:30:37
Matthias5
Sorry
19.08.2009 13:32:41
Tim
Vergiss den ersten Eintrag. Da hatte ich vergessen eins rauszulöschen.
Es erscheint aber nun:
Die Points-Eigenschaft des Series-Objektes kann nicht zugeordnet werden
Anzeige
Siehe oben! oT
19.08.2009 13:34:58
Matthias5
AW: Datenpunkte beschriften
19.08.2009 15:09:01
Beverly
Hi Arne,
ich habe mir jetzt mal den gesamten Thread durchgelesen - schön dass jetzt alles funktioniert. Dennoch möchte ich noch darauf hinweisen, dass alles auch ohne "Activate" lösbar ist. Auf der Basis des von Matthias um 11:56:54 geposteten Codes: im Codemodul des Tabellenblattes nur diesen Code
Sub Datenbeschriftung()
Dim Beschriftungen As Range, c As Range, i As Long
Application.ScreenUpdating = False
Set Beschriftungen = Range("A35:A105").SpecialCells(xlCellTypeVisible)
With ActiveSheet.ChartObjects(1).Chart
For Each c In Beschriftungen
i = i + 1
With .SeriesCollection(1).Points(i)
.HasDataLabel = True
.DataLabel.Text = c.Value
End With
Next c
End With
Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If Not Intersect(c, Range("A35:A105")) Is Nothing Then Datenbeschriftung
Next c
End Sub


Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige