Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
764to768
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
764to768
764to768
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Probleme mit einem Diagramm ( ... über ein Jahr )

Probleme mit einem Diagramm ( ... über ein Jahr )
25.05.2006 13:41:19
Swen
Hallo an alle,
ich versuche seit über einem Jahr ein Makro zu schreiben welches mir folgende
Aufgabe löst. Ich habe schon einige Lösungsansätze/Lösungen. Diese Funktionieren
aber nie so das sie allen Anforderungen gerecht werden.
Langsam glaube ich das es hierfür überhaupt keine Lösung gibt!
Naja, ich versuches es einfach nochmal im Forum evtl. kann mir einer
von euch helfen.
Anforderungen:
Es gibt eine Tabelle (Org_Daten.xls) in dieser soll ein Diagramm erzeugt werden
was wie auf dem Bild Lösung.gif aussehen soll.
In der text Datei (Spea-MD-TP.txt) stehen die Positionen der aussen liegenden Punkte (braun/gelb).
Um die Darstellung zu erzeugen wie auf dem gif ist es erforderlich das die Koordinaten aus der Datei (Org_Daten.xls Spalte D & E) mit einem Faktor vergrößert werden.
Diese vergrößerten Daten in Spalte D&E dürfen aber nicht auf dem Tabellenblatt eingetragen werden sondern müssen auf einem Zwischenblatt erzeugt werden.
( Natürlich können auch die aussen liegenden Punkte verkleinert werden um einen Faktor)
Schwierigkeit die dazu kommt, ist das es sein kann das die max Anzahl der Zeilen
auf dem Org_Daten.xls bis zu 1024 sein kann. ( Daher kann man diese Verbindungen nicht als einzelne DAtenreihen einfügen )
Über die Spalten Trace kann man die Datenpaare zusmmanfügen ( Org_Daten.xls = Spalte C und Spea-MD-TP.txt = Spalte A )
https://www.herber.de/bbs/user/33904.zip
Ich hoffe ihr könnt mir helfen, ich komme einfach nicht mehr voran!
Bitte erklärt mir auch wie so etwas angegangenw erden kann!
Vielen vielen Dank!
Gruß aus Hamburg
Swen

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit einem Diagramm ( ... über ein Jahr )
25.05.2006 14:06:46
Swen
Hallo an alle,
so habe ich es bisher gemacht!!!!
'**** Diagramm mit Lötpunkten erstellen *****'
'**** Nadeln ziehen'
With Worksheets(PCBName)
ModulFunktion1.Diagramm_erstellen .Range(.Cells(3, 2), .Cells(.Cells(1, 2) + 2, 3))
ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count).Activate
ActiveChart.SeriesCollection(1).Select
With Selection.Border
.Weight = xlHairline
.LineStyle = xlNone
End With
With Selection
.MarkerBackgroundColorIndex = 44
.MarkerForegroundColorIndex = 46
.MarkerStyle = xlCircle
.MarkerSize = 5
End With
Set chrt = .ChartObjects(1).Chart
intZaehler22 = 2
' "alte" Nadeln löschen
On Error Resume Next
For intZaehler = chrt.SeriesCollection.Count To 2 Step -1
chrt.SeriesCollection.Item(intZaehler).Delete
Next
On Error GoTo 0
For intZaehler = 3 To .Cells(1, 2).Value + 2
If .Cells(intZaehler, 6).Value = "*" Then
chrt.SeriesCollection.NewSeries
chrt.SeriesCollection(intZaehler22).XValues = "{" & .Cells(intZaehler, 2) & "," & .Cells(intZaehler, 4) & "}"
chrt.SeriesCollection(intZaehler22).Values = "{" & .Cells(intZaehler, 3) & "," & .Cells(intZaehler, 5) & "}"
chrt.SeriesCollection(intZaehler22).Name = .Cells(intZaehler, 1).Value
chrt.SeriesCollection(intZaehler22).ApplyDataLabels Type:=xlDataLabelsShowLabel
chrt.SeriesCollection(intZaehler22).DataLabels.Item(1).Text = .Cells(intZaehler, 1).Text
chrt.SeriesCollection(intZaehler22).DataLabels.Item(1).Position = IIf((.Cells(intZaehler, 3) Or .Cells(intZaehler, 5)) > 0, xlLabelPositionAbove, xlLabelPositionBelow)
chrt.SeriesCollection(intZaehler22).DataLabels.Item(1).Font.Size = intFontSize
chrt.SeriesCollection(intZaehler22).DataLabels.Item(1).Font.ColorIndex = 5
chrt.SeriesCollection(intZaehler22).DataLabels.Item(2).Delete
chrt.SeriesCollection(intZaehler22).ChartType = xlXYScatterLinesNoMarkers
chrt.SeriesCollection(intZaehler22).Border.ColorIndex = 5
chrt.SeriesCollection(intZaehler22).MarkerStyle = xlNone
intZaehler22 = intZaehler22 + 1
End If
Next intZaehler
End With
With Worksheets(PCBName)
.Range("A1").Select
.Select
.Name = "Layout3"
End With
With Worksheets("Layout3").Columns("A:F").Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 2
End With
Worksheets("Layout3").Range("A1").Select
'**********************************
'******* Aus dem ModulFunktion1
***********************************

Sub Diagramm_erstellen(ByVal myRange As Range)
Charts.Add
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=myRange, _
PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:=myRange.Parent.Name
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
With ActiveChart.Axes(xlCategory)
.HasMajorGridlines = False
.HasMinorGridlines = False
End With
With ActiveChart.Axes(xlValue)
.HasMajorGridlines = False
.HasMinorGridlines = False
End With
ActiveChart.HasLegend = False
ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowNone, LegendKey:=False
ActiveChart.Axes(xlCategory).Select
With Selection.Border
.LineStyle = xlNone
End With
With Selection
.MajorTickMark = xlNone
.MinorTickMark = xlNone
.TickLabelPosition = xlNextToAxis
End With
Selection.TickLabels.AutoScaleFont = False
With Selection.TickLabels.Font
.Name = "Tahoma"
.FontStyle = "Standard"
.Size = 8
.ColorIndex = 56
.Background = xlTransparent
End With
Selection.TickLabels.NumberFormat = "#,##0,"
Selection.TickLabels.Orientation = xlUpward
ActiveChart.Axes(xlValue).Select
With Selection.Border
.LineStyle = xlNone
End With
With Selection
.MajorTickMark = xlNone
.MinorTickMark = xlNone
.TickLabelPosition = xlNextToAxis
End With
Selection.TickLabels.AutoScaleFont = False
With Selection.TickLabels.Font
.Name = "Tahoma"
.FontStyle = "Standard"
.Size = 8
.ColorIndex = 56
.Background = xlTransparent
End With
Selection.TickLabels.NumberFormat = "#,##0,"
ActiveChart.PlotArea.Select
With Selection.Border
.LineStyle = xlNone
End With
Selection.Interior.ColorIndex = xlNone
ActiveChart.ChartArea.Select
With Selection.Border
.LineStyle = 0
End With
Selection.Fill.OneColorGradient Style:=msoGradientHorizontal, Variant:=2, _
Degree:=0.831357289997711
With Selection
.Fill.ForeColor.SchemeColor = 15
End With
ActiveSheet.Shapes(ActiveSheet.Shapes.Count).ScaleHeight 1.36, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Top = 5
ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Left = 5
ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Width = 650
ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Height = 650
ActiveChart.PlotArea.Select
Selection.Top = 1
Selection.Height = 499
Selection.Left = 1
Selection.Width = 499
End Sub

Anzeige
AW: Probleme mit einem Diagramm ( ... über ein Jahr )
27.05.2006 00:35:49
Herby
Hallo Swen,
ich habe mir das die GIF-Datei mit der Grafik angesehen. Dazu die Frage, ob alle Linien von einem gemeinsamen Punkt ausgehen (Koordinaten 0,0). Nach der Grafik eher nicht. Wie werden dann diese Werte ermittelt ?
Hat der innere "Punktekranz" Auswirkungen auf die Darstellung der Linien ?
Zudem habe ich versucht Dein Makro zu aktivieren. Ist mir auf die Schnelle jedoch nicht gelungen. Kannst du die Datei mit dem Makro hochladen ?
Viele Grüße
Herby
AW: Probleme mit einem Diagramm ( ... über ein Jahr )
29.05.2006 12:03:02
Swen
Hallo Herby, Hallo die anderen,
sorry das ich mich so spät erst wieder melde war am Wochenende leider nicht online.
Die Datei kann ich dir leider nicht Hochladen sie ist zu groß.
Ich kann dir aber das Ergebnis (ohne Makros) hochladen da sieht man zumindestens was ich erreichen möchte !
https://www.herber.de/bbs/user/33970.xls
Die Daten für das Diagramm in Layout3 liegen unter dem Diagramm sind
nur in Schriftfarbe weiß damit man sie nicht sieht!
Die Daten sind alle so ausgerichtet das der Nullpunkt im Centrum liegt!
Ich hoffe das hilft etwas weiter?
Vielen Dsnk!
für die Unterstützung!
Gruß
Swen
Anzeige
AW: Probleme mit einem Diagramm ( ... über ein Jahr )
29.05.2006 23:09:33
Herby
Hallo Swen,
ich hab mich nochmal intensiver mit dem Problem beschäftigt und daher noch einige Fragen dazu:
- soll das ganze Procedere per Makro laufen (einlesen der Textdatei und Erstellung des Diagramms) oder nur die Erstellung des Diagramms (Eintrag der "Sonnenstrahlen") ?
- in der neuen hochgeladenen Datei sind im Layout3 alle Werte in der Tabelle enthalten. Ist die Bereitstellung dieser Werte (Einlesen aus der Textdatei) und ? ermittlung der Werte im Zentrum ? dh. die Werte der Spalte C und D ein Problem ?
-154600 ? und 7600 ?
-142000 ? und 7600 ?
-134800 ? und 7600 ?
- Ist die Erstellung des Diagramms (dh. der "Sonnenstrahlen") das Problem ?
- Wie hast du bisher die "Sonnenstrahlen" erfasst ? per Hand ?
- warum sind die Werte der Org_Daten.xls um einen Faktor zu vergrößern oder ggf. zu verkleinern ?
Du kannst mich ggf. direkt per Mail erreichen unter herbert.volkmann@vr-web.de
Viele Grüße
Herby
Anzeige
AW: Probleme mit einem Diagramm ( ... über ein Jahr )
06.06.2006 19:18:08
Swen
Hallo Herby,
sorry das ich mich bisher nicht gemeldet habe, ich war auf einem Seminar (Techniker Schule) in Osnabrück und hatte kein Internet.
Ja die Tabelle die du im Hintergrund siehst wird bereit erstellt dieses habe ich mit einem Makro gemacht.
Ich möchte eigentlich nur das die "Sonnenstrahlen" mit einem Makro nun erstellt werden.
Mein Problem besteht dadrin das ich ja nur eine gewissen ANzahl von Daten Reihen erzeugen kann und wenn ich bis zu 1024 Reihen haben würde dieses nicht mehr klappt.
Mein Code den ich bisher benutze!
( ich denke das prinzip ist erkennbar )
'**********************************************************************************************************'
'************* Diagramm erzeugen'
'**********************************************************************************************************'
Worksheets("Coordinates").Select
intStartCoor = Zelle_suchen_Spalte("Lfd.Nr.", 1, 1, 50, "Coordinates")
intZeile1 = intStartCoor + 1
intSpalte1 = 4
intZeile2 = Worksheets("Coordinates").Cells(17, 3).Value + intStartCoor
intSpalte2 = 5
With Worksheets("Layout1")
ModulFunktion1.Diagramm_erstellen .Range(.Cells(1, 1), .Cells(1, 2))
End With
ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Top = 5
ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Left = 5
ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Width = 650
ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Height = 650
With ActiveChart.Axes(xlCategory)
.MinimumScale = -100
.MaximumScale = intText1 + 100
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With
With ActiveChart.Axes(xlValue)
.MinimumScale = -100
.MaximumScale = intText2 + 100
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With
With ActiveChart
.HasAxis(xlCategory, xlPrimary) = False
.HasAxis(xlValue, xlPrimary) = False
End With
With ActiveChart.PlotArea
.Width = 650
.Height = 620
End With
Application.ScreenUpdating = False
With Worksheets("Coordinates")
Set chrt = Worksheets("Layout1").ChartObjects(1).Chart
intZaehler22 = 2
On Error Resume Next
For intZaehler = chrt.SeriesCollection.Count To 2 Step -1
chrt.SeriesCollection.Item(intZaehler).Delete
Next
On Error GoTo 0
For intZaehler = intStartCoor + 1 To intZeile2
chrt.SeriesCollection.NewSeries
chrt.SeriesCollection(intZaehler22).XValues = "{" & .Cells(intZaehler, 4) & "}"
chrt.SeriesCollection(intZaehler22).Values = "{" & .Cells(intZaehler, 5) & "}"
chrt.SeriesCollection(intZaehler22).Name = .Cells(intZaehler, 1).Value
'chrt.SeriesCollection(intZaehler22).ApplyDataLabels Type:=xlDataLabelsShowLabel
'chrt.SeriesCollection(intZaehler22).DataLabels.Item(1).Text = .Cells(intZaehler, 3).Text
'chrt.SeriesCollection(intZaehler22).DataLabels.Item(1).Position 1, xlLabelPositionAbove, xlLabelPositionBelow
'chrt.SeriesCollection(intZaehler22).DataLabels.Item(1).Font.Size = 1
'chrt.SeriesCollection(intZaehler22).DataLabels.Item(1).Font.ColorIndex = 5
'chrt.SeriesCollection(intZaehler22).DataLabels.Item(2).Delete
chrt.SeriesCollection(intZaehler22).ChartType = xlXYScatterLines
chrt.SeriesCollection(intZaehler22).Border.ColorIndex = 5
chrt.SeriesCollection(intZaehler22).MarkerStyle = xlSquare
chrt.SeriesCollection(intZaehler22).MarkerBackgroundColorIndex = 5
chrt.SeriesCollection(intZaehler22).MarkerForegroundColorIndex = 5
chrt.SeriesCollection(intZaehler22).Smooth = False
chrt.SeriesCollection(intZaehler22).MarkerSize = 5
chrt.SeriesCollection(intZaehler22).Shadow = False
intZaehler22 = intZaehler22 + 1
Next intZaehler
End With
Vielen Dank für deine hilfe ich hoffe du reagierst auf diesen Eintrag!
Gruß
Swen
Anzeige
AW: Probleme mit einem Diagramm ( ... über ein Jahr )
06.06.2006 19:23:40
Swen
Beitrag ist noch offen!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige