Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
572to576
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
572to576
572to576
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datenpunkte in einem Diagramm beschriften

Datenpunkte in einem Diagramm beschriften
23.02.2005 18:07:49
Sabine
Hi!
Ich habe noch immer folgendes Problem:
Ich möchte die Punkte in einem Punkt-Diagramm beschriften, wobei die Tabelle wo die Beschriftungsinfos sind, eine andere als jene, wo das Diagramm ist, ist.
Ich habe hier eine Beispieldatei hochgeladen:

Die Datei https://www.herber.de/bbs/user/18585.xls wurde aus Datenschutzgründen gelöscht

Der Code, den ich von Thom@sch bekommen habe, ist eingebaut, aber wenn ich auf die Schaltfläche klicke passiert nichts.
Ich habe auch das Problem, daß ich keine Werte aus einer anderen Tabelle in die Abfragemaske, die sich öffnet, wenn ich das Makro starte, hineinbekomme. Überdies nicht aus drei Spalten, wie ich es bräuchte.
Vielleicht gibt es ja jemanden, der sich der Sache widmen könnte, ich wäre euch wirklich sehr dankbar!!!
Sabine G.

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenpunkte in einem Diagramm beschriften
23.02.2005 19:14:39
Thom@sCH
Hi Sabine
Nur nicht so hastig!
Hier ist deine Mappe zurück. Wenn die Daten in Tab. "Koordinatenverzeichnis" geändert werden, wird die Beschriftung im Diagramm aktualisiert.
Die Anordnung der Beschriftung im Diagramm kann ich nicht verschieben.
Wenn du willst, kanns du bei mehreren Werten ein Texttrennzeichen einfügen. Dann einfach deaktiverten Code aktivieren und unteren Code aktivieren (Code in Sternchen).
Hoffe das es das gewünschte Problem ist.

Die Datei https://www.herber.de/bbs/user/18623.xls wurde aus Datenschutzgründen gelöscht


Gruss Thomas
AW: Datenpunkte in einem Diagramm beschriften
23.02.2005 19:53:55
Sabine
Hallo Thomas!!
Ja, ich bin ein wenig auf heissen Kohlen gesessen, entschuldige :-)
Nun denn,ich wollte gerade die Excel - Arbeitsmappe hochladen, nur ging das plötzlich nicht mehr...
Ich wollte den Code aktivieren, daß immer ein ";" dazwischenkommt. Beim Probieren kam dann allerdings eine Kompilierungs-Fehlermeldung.
Ist der Code in Sternchen so richtig aktiviert, oder hab ich da was falsch gemacht?:
Option Explicit


Private Sub Worksheet_Change(ByVal Target As Range)
Dim Startzelle As Range
Dim ws As String
Dim wksQ As Worksheet, wksZ As Worksheet
Dim Spalte As Integer, Endezeile As Integer, Startzeile As Integer, j As Integer
Application.ScreenUpdating = False
Set wksQ = Worksheets("Koordinatenverzeichnis")
Set wksZ = Worksheets("Flächenverzeichnis")
Spalte = 2
Startzeile = 9
Endezeile = wksQ.Range("B9").End(xlDown).Row
wksZ.ChartObjects(1).Activate
For j = Startzeile To Endezeile
With ActiveChart.SeriesCollection(1).Points(j - Startzeile + 1)
.HasDataLabel = True
'Texttrennzeichen ";"
.DataLabel.Text = Format(wksZQ.Cells(j, Spalte) & "; " & wksQ.Cells(j, Spalte + 1) & "; " & _
wksQ.Cells(j, Spalte + 2).Value, "##0.0")
'Ohne Textrennzeichen
'           .DataLabel.Text = Format(wksQ.Cells(j, Spalte) & wksQ.Cells(j, Spalte + 1) & _
'               wksQ.Cells(j, Spalte + 2).Value, "##0.0")
End With
Next j
wksQ.Activate
Application.ScreenUpdating = True
End Sub


Ansonsten funktioniert es gut, ICH DANKE DIR VIELMALS!!!
Sabine G.
Anzeige
AW: Datenpunkte in einem Diagramm beschriften
23.02.2005 19:58:16
Thom@sCH
Hi Sabine
Sorry, da hat sich noch ein Fehler eingeschlichen.
'*************************************************************************************************************
'Texttrennzeichen ";"
.DataLabel.Text = Format(wksZQ.Cells(j, Spalte) & "; " & wksQ.Cells(j, Spalte + 1) & "; " & _
wksQ.Cells(j, Spalte + 2).Value, "##0.0")
'**************************************************************************************************************
Statt "Format(wksZQ.Cells(j, Spalte)..." richtig "Format(wksQ.Cells(j, Spalte)" ohne Z
Jetzt muss es funkt.
Gruss Thomas
Anzeige
AW: Intresse
23.02.2005 20:03:41
Thom@sCH
Eigentlich geht mich das ja nichts an, aber als Förster würde mich interessieren wofür du dieses Flächenverzeichnis benötigst? Ist in Deutschland (oder wo) das Koordinationssystem -45877.76 / 237494.41?
Bei uns z.B. 650 150 / 228 500 = Kilometer-Koordinatenpunkte.
Musst mir aber nicht antworten
Gruss Thomas
Danke, jetzt funktionierts!!
23.02.2005 20:12:01
Sabine
Hi Thomas!
Danke!!!! Jetzt klappt es! Ich habe den Code ohne Trennzeichen einfach um die Trennzeichen erweitert, komischerweise ging´s nicht einfach das Z zu löschen.
Zu deiner Interessensfrage: Ich brauch das für´s Studium, wir haben da so ne Seminararbeit zu machen. Die Werte stammen aus dem Gauß-Krüger Koordinatensystem, Österreich, Meridianstreifen M31. Das ist in West-Salzburg, im Pinzgau.
VIELEN DANK!!
SabineG.
Anzeige
AW: Danke, jetzt funktionierts!!
23.02.2005 20:29:26
Thom@sCH
Hmm... hauptsache es klappt jetzt.
Na dann, viel Vergnügen und danke für die Rückmeldung.
Thomas
Leider ist ein weiteres Problem aufgetreten:
23.02.2005 22:53:54
Sabine
Hallo nochmal!
Will ich mehr Koordinatenbeschreibungen als Koordinatenpaare eingeben, dann weiß das Programm nicht was es mit der zusätzlichen Beschreibung anfangen soll und es kommt folgende Fehlermeldung:
Laufzeitfehler '1004':
Die HasDataLabel-Eigenschaft des Point-Objektes kann nicht festgelegt werden.
Kann man da im Code was ändern oder zumindest eine Error Handling Routine einfügen damit man eine Meldung bekommt dass zuviele Beschriftungen eingegeben wurden?
Vielen Dank nochmal!
Anzeige
AW: Leider ist ein weiteres Problem aufgetreten:
23.02.2005 23:38:04
Sabine
...und ist auch schon wieder erledigt.
habe folgendes eingefügt:
On Error GoTo Errorhandler (nach dem private Sub)
dann unten anstatt"End Sub" Exit Sub
dann Errorhandler:
MsgBox:" Hinweis, daß Koordinaten zuerst eingegeben werden müssen, dann die Bezeichnung"
End Sub.
DANKE, das war´s!
AW: Leider ist ein weiteres Problem aufgetreten:
24.02.2005 08:16:19
Thom@sCH
Guten Morgen
Ja, so kannst du es machen.
Das stimmt, das Makro läuft immer ab, wenn im Blatt Koordinaten... etwas verändert wird. Eine bessere (saubere) Lösung wäre, den Bereich festzulegen, wann das Makro ausgeführt werden soll mit irgend:
If Target.Address = "$B$9 : $C$57" Then Call Datenbeschriftung
Hab das aus dem Kopf geschrieben, nicht getestet, habe Vorlage nicht in Büro.
Kann erst am Abend testen.
Gruss Thomas
Anzeige
AW: Mit Target.Bereich
24.02.2005 12:39:18
Thom@sCH
Hallo Sabine
Probier diesen Code:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Startzelle As Range
Dim ws As String
Dim wksQ As Worksheet, wksZ As Worksheet
Dim Spalte As Integer, Endezeile As Integer, Startzeile As Integer, j As Integer
Dim Bereich As Range
Set Bereich = Range("B9:D56")
If Not Intersect(Target, Bereich) Is Nothing Then 'Zelle ist im Bereich
Application.ScreenUpdating = False
Set wksQ = Worksheets("Koordinatenverzeichnis")
Set wksZ = Worksheets("Flächenverzeichnis")
Spalte = 2
Startzeile = 9
Endezeile = wksQ.Range("B9").End(xlDown).Row
wksZ.ChartObjects(1).Activate
For j = Startzeile To Endezeile
With ActiveChart.SeriesCollection(1).Points(j - Startzeile + 1)
.HasDataLabel = True
'Texttrennzeichen ";"
.DataLabel.Text = Format(wksQ.Cells(j, Spalte) & "; " & wksQ.Cells(j, Spalte + 1) & "; " & _
wksQ.Cells(j, Spalte + 2).Value, "##0.0")
'Ohne Textrennzeichen
'            .DataLabel.Text = Format(wksQ.Cells(j, Spalte) & wksQ.Cells(j, Spalte + 1) & _
'                wksQ.Cells(j, Spalte + 2).Value, "##0.0")
End With
Next j
wksQ.Activate
Application.ScreenUpdating = True
End If
End Sub


Gruss Thomas
Anzeige
AW: Mit Target.Bereich
24.02.2005 14:22:15
Sabine
Hallo Thomas,
Ich habe den Code probiert, aber leider kommt die HasData... Fehlermeldung immer noch wenn ich eine neue Beschriftung eingebe aber in den Spalten rechts davon keine Koordinate ist.
Was hat der neue Code jetzt genau verändert?
Habe ich richtig verstanden, daß
If Not Intersect(Target, Bereich) Is Nothing Then 'Zelle ist im Bereich
Application.ScreenUpdating = False
bedeutet, daß wenn keine Koordinaten drinnen stehen, (und ev. die Bezeichnung für diese schon) das Diagramm nicht aktualisiert wird?
Also wie gesagt, die Meldung kommt nach wie vor...?!
Ausserdem MUSS in der ersten Spalte bei den Beschriftungen (z.B 15KK o.ä) was drinnen stehen, ansonsten wird die Beschriftung im Diagramm nicht geändert. Kann man da was machen?
Liebe Grüße,
Sabine
Anzeige
AW: Mit Target.Bereich
24.02.2005 18:17:03
Thom@sCH
Hallo Sabine
Das Makro wird nur ausgeführt, wenn im Bereich B9:D56 eine Veränderung statt findet.
Set Bereich = Range("B9:D56")
If Not Intersect(Target, Bereich) Is Nothing Then 'Zelle ist im Bereich
Ist also auch nicht die Lösung für dein Problem. Ist eigentlich logisch, das die Fehlermeldung "HasData" erscheint. Wo kein Datenpunkt ist, kann auch nichts geschrieben werden.
In dem Fall kannst wieder den alten Code verwenden und zu beginn (nach Dim) "On Error Resume Next" hineinschreiben (wie du bereits getan hast, ohne Anführungszeichen).
2. bin ich davon ausgegangen, das in der Spalte B9 immer einen Wert steht und in dieser Spalte B dann der letzte Eintrag gesucht wird. Du kannst folgendes ändern:
Endezeile = wksQ.Range("B9").End(xlDown).Row
in
Endzeile = 56
Durch On Error Resume Next werden die Fehler sowieso schon abgefangen.
Musst es also so machen, das zuerst die Koordinatenwerte eingegeben werten. Lösung wäre auch, die Koordinaten und Beschriftung zu vertauschen.
Hoffe, das ich mich verständlich ausgedrückt habe.
Gruss Thomas
Anzeige
Nun ist alles erledigt, DANKE! OT
24.02.2005 19:00:02
Sabine
Danke, Thomas,
ich denke es passt jetzt alles so wie es ist. Wie du sagst, durch OnError werden Fehler abgefangen.
Danke auf Jeden Fall!
Sabine

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige