Diagramme kopieren
#11
(18.12.2017, 22:14)Fennek schrieb: Die Sub "alle_Blocks" wird gestartet und ruft dann die Erstellung, Plazierung und Anpassen der Daten auf.

mfg

Ich habe die Sub gerade gestartet. Leider klappt's nicht. Excel sagt, die Methode ChartObjects() für das Objekt Worksheet ist fehlgeschlagen. Damit kann ich leider nichts anfangen. 

Nochmal zur Erinnerung: Ich habe Excel 2010. Ist dort evtl. diese Methode noch unbekannt?

VG
Top
#12
Ein bisschen bin ich schon weiter: 

Ich habe Const Vorlage = "Chart 42" in die Sub T1 kopiert. Nun wird das Diagramm schon kopiert und es geht weiter bis ...

   If InStr(1, Ser.Formula, "Center") > 0 Then Ar(s, 2) = Replace(Ser.Formula, "$4", "$" & r + 1)

Anwendungs- oder objektorientierter Fehler

Dort hängt's erneut. VG
Top
#13
Hallo,

mein Code ist in xl2016 entwickelt, es gibt vermutlich im Bereich Chart größere Unterschiede zwischen den Versionen als in anderer Bereichen. Aber ich habe keinerlei Überblick über die Unterschiede.

Reines Interesse eines Photoamateurs: Die unterschiedliche Qualität von Linsen in Abhängigkeit der Blende, war einer der "Learnings" und bei https://www.dxomark.com/Lenses hatte ich zu deiner Datei vergleichbare Messergebnisse gefunden. Das für Ur-Altglas (Agfa-Revenon ist aus den 80-er) ist interessant, wo soll das publiziert werden.

Zurück zu Excel:

Die Vorlage für den Code ist von Berverly, der (einzigen) Guru, die in dt Foren zu Chart Hilfestellungen gibt. Sie ist in vielen Foren aktiv, aber niemals hier. (Aber in http://www.  ms-  office-  forum.  net oder Herber, ihre Webseite: excel-inn.de)

Da ich schon mehr Zeit als vernünftig eingesetzt habe, stoppe ich meine Aktivitäten in diesem Thema.


mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • rob70
Top
#14
Hallo,

es gibt auch einen anderen Ansatz:

Xl kann relativ einfach Datenstrukturen anpassen, d.h. es könnte einfacher sein, die recht komplizierte Datenstruktur zuerst in ein für Charts einfaches Format zu bringen und dann die Charts neu aufzubauen.

Die Formatierungen des Charts können mit dem Rekorder aufgezeichet und auf alle neuen Charts übertragen werden.

Ein Ansatz:


Code:
Sub Neu_Aufbauen()
'ActiveCell auf Titel, z.B. A3
Dim Col As Range
Dim Cht As Chart
Dim Chtobj As ChartObject
Dim WS As Worksheet: Set WS = ActiveSheet
'blau:   141, 180, 226
'rot:    253, 99, 99
'grün:   196, 215, 155

Range("A3").Select ' <<<<<<<<<<< setzt >>>>>>>>>>>
r = ActiveCell.Row
Set Col = Range(Cells(r, 4), Cells(r, "R")).SpecialCells(xlCellTypeConstants).EntireColumn

'Chart-Daten
Range(Cells(r, "AA"), Cells(r, "AH")).NumberFormat = "@"
Range(Cells(r, 4), Cells(r, "R")).SpecialCells(xlCellTypeConstants).Copy Cells(r, "AA")
Intersect(Rows(r + 1), Col).Copy Cells(r + 1, "AA")
Cells(r + 1, "Z") = "Center"
Intersect(Rows(r + 1), Col.Offset(, 1)).Copy Cells(r + 2, "AA")
Cells(r + 2, "Z") = "Center_MfT"
Intersect(Rows(r + 6), Col).Copy Cells(r + 3, "AA")
Cells(r + 3, "Z") = "Thirds"
Intersect(Rows(r + 6), Col.Offset(, 1)).Copy Cells(r + 4, "AA")
Cells(r + 4, "Z") = "Thirds_MfT"
Intersect(Rows(r + 11), Col).Copy Cells(r + 5, "AA")
Cells(r + 5, "Z") = "Corner"
Intersect(Rows(r + 11), Col.Offset(, 1)).Copy Cells(r + 6, "AA")
Cells(r + 6, "Z") = "Corner_MfT"
Cells(r, "Z").CurrentRegion.Select
ActiveSheet.Shapes.AddChart2(227, xlLine).Select
With ActiveChart

   .ChartTitle.Text = Cells(r, 1)
   .Legend.Select
   Selection.Position = xlRight
   Selection.Format.Line.Visible = msoFalse
   

   For i = 1 To .SeriesCollection.Count
       .FullSeriesCollection(i).Select
       With Selection.Format.Line
       .Visible = msoTrue
       Select Case i
           Case Is = 1
           .ForeColor.RGB = RGB(141, 180, 226)
           .DashStyle = msoLineSolid
           Case Is = 2
           .ForeColor.RGB = RGB(141, 180, 226)
           .DashStyle = msoLineSysDash
           Case Is = 3
           .ForeColor.RGB = RGB(253, 99, 99)
           .DashStyle = msoLineSolid
           Case Is = 4
           .ForeColor.RGB = RGB(253, 99, 99)
           .DashStyle = msoLineSysDash
           Case Is = 5
            .ForeColor.RGB = RGB(196, 215, 155)
           .DashStyle = msoLineSolid
           Case Is = 6
           .ForeColor.RGB = RGB(196, 215, 155)
           .DashStyle = msoLineSysDash
       End Select
       
       .ForeColor.TintAndShade = 0
       .ForeColor.Brightness = 0
       .Transparency = 0
       .Visible = msoTrue
   End With
   Next i
End With
Set Chtobj = WS.ChartObjects(WS.ChartObjects.Count)
With Chtobj
   .Top = Cells(r, "T").Top
   .Left = Cells(r, "T").Left
End With
End Sub


Wenn die markierte Zeile gelöscht wird, kann man von Hand den Curser auf die erste Zelle des Datenblocks stellen und dann den Makro starten.

mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • rob70
Top
#15
(19.12.2017, 14:24)Fennek schrieb: Hallo,

es gibt auch einen anderen Ansatz:

Xl kann relativ einfach Datenstrukturen anpassen, d.h. es könnte einfacher sein, die recht komplizierte Datenstruktur zuerst in ein für Charts einfaches Format zu bringen und dann die Charts neu aufzubauen.

Die Formatierungen des Charts können mit dem Rekorder aufgezeichet und auf alle neuen Charts übertragen werden.

Ein Ansatz:

Wenn die markierte Zeile gelöscht wird, kann man von Hand den Curser auf die erste Zelle des Datenblocks stellen und dann den Makro starten.

mfg

Hallo Fennek, 

es ist eine gute Idee, die Diagramme neu aufzubauen. 
Leider funktioniert es noch nicht, weil meiner Excel-Version die Methode bzw. das Objekt ".fullSeriesCollection..." unbekannt ist.

Ich vermute, dass Dir hier auch keine ältere Methode einfällt, mit der das Ganze noch funktioniert? Wenn Du (verständlicherweise) aufgibst, weil ich eben nicht die passende Excel-Version habe, werde ich Deinen Tipp beherzigen und es in einem anderen der vorgeschlagenen Foren noch einmal versuchen. 

Zu Deiner anderen Frage: Ich werde die Ergebnisse (vermutlich als die Charts, die ich abschließend bekomme) auf meinem Blog veröffentlichen: theothersideofbokeh.wordpress.com

VG
Top
#16
Hallo,

der Ansatz war, dass du in deiner xl-Version einmal den Aufbau des Charts mit dem Rekorder aufzeichnest. Dann kann es keine Konflikte zwischen verschiedenen Versionen geben.

Die Befehle für das Tabellenblatt sin "uralt" und damit passen sie alle xl-Versionen der letzten 25 Jahre.

mfg
Top
#17
OK ich werd's aufzeichnen. Dann poste ich den Code hier, damit die absoluten Bezüge angepasst werden können, oder?

Vorab sei gesagt, dass ich das Ganze nun noch vereinfacht habe, indem ich zwei Tabellen erstellt habe durch Kopieren von Inhalten, so dass zusammengehörige Werte direkt nebeneinander stehen können. Ich hänge die überarbeitete Beispieldatei, mit deren Hilfe ich das Ganze aufgezeichnet habe auch noch einmal an.

Leider habe ich gerade gemerkt, dass ich vergessen habe, den Titel noch einzufügen. Das wäre noch ein zusätzlicher Wunsch. Das Diagramm könnte man dann z.B. unmittelbar rechts der letzten Spalte der beiden rechten Tabellen einfügen. 

Code:
Sub Diagramm_erstellen()
'
' Diagramm_erstellen Makro
'
' Tastenkombination: Strg+Umschalt+S
'
   ActiveSheet.Shapes.AddChart.Select
   ActiveChart.ChartType = xlLine
   ActiveChart.SetSourceData Source:=Range("Tabelle1!$A$393:$A$404")
   ActiveSheet.Shapes("Diagramm 3").IncrementLeft 254.1176377953
   ActiveSheet.Shapes("Diagramm 3").IncrementTop 11.5966141732
   ActiveSheet.Shapes("Diagramm 3").ScaleWidth 0.9523814523, msoFalse, _
       msoScaleFromTopLeft
   ActiveSheet.Shapes("Diagramm 3").ScaleHeight 0.7252569991, msoFalse, _
       msoScaleFromTopLeft
   ActiveChart.ChartTitle.Select
   ActiveChart.SeriesCollection(1).Name = "=Tabelle1!$A$393"
   ActiveChart.SeriesCollection(1).Values = _
       "=Tabelle1!$D$394;Tabelle1!$F$394;Tabelle1!$H$394;Tabelle1!$J$394;Tabelle1!$L$394;Tabelle1!$N$394;Tabelle1!$P$394;Tabelle1!$R$394"
   ActiveChart.SeriesCollection(1).Name = "=""Center"""
   ActiveChart.SeriesCollection.NewSeries
   ActiveChart.SeriesCollection(2).Name = "=""Thirds"""
   ActiveChart.SeriesCollection(2).Values = _
       "=Tabelle1!$D$399;Tabelle1!$F$399;Tabelle1!$H$399;Tabelle1!$J$399;Tabelle1!$L$399;Tabelle1!$N$399;Tabelle1!$P$399;Tabelle1!$R$399"
   ActiveChart.SeriesCollection.NewSeries
   ActiveChart.SeriesCollection(3).Name = "=""Corner"""
   ActiveChart.SeriesCollection(3).Values = _
       "=Tabelle1!$D$404;Tabelle1!$F$404;Tabelle1!$H$404;Tabelle1!$J$404;Tabelle1!$L$404;Tabelle1!$N$404;Tabelle1!$P$404;Tabelle1!$R$404"
   ActiveChart.SeriesCollection(3).XValues = _
       "=Tabelle1!$D$393;Tabelle1!$F$393;Tabelle1!$H$393;Tabelle1!$J$393;Tabelle1!$L$393;Tabelle1!$N$393;Tabelle1!$P$393;Tabelle1!$R$393"
   ActiveChart.SeriesCollection.NewSeries
   ActiveChart.SeriesCollection(4).Name = "=""Center_MFT"""
   ActiveChart.SeriesCollection(4).Values = _
       "=Tabelle1!$E$394;Tabelle1!$G$394;Tabelle1!$I$394;Tabelle1!$K$394;Tabelle1!$M$394;Tabelle1!$O$394;Tabelle1!$Q$394;Tabelle1!$E$394;Tabelle1!$G$394;Tabelle1!$I$394;Tabelle1!$K$394;Tabelle1!$M$394;Tabelle1!$O$394;Tabelle1!$Q$394;Tabelle1!$E$394;Tabelle1!$G$394;Tabelle1!$I$394;Tabelle1!$K$394;Tabelle1!$M$394;Tabelle1!$O$394;Tabelle1!$Q$394;Tabelle1!$S$394"
   ActiveChart.SeriesCollection(4).XValues = _
       "=Tabelle1!$D$393;Tabelle1!$F$393;Tabelle1!$H$393;Tabelle1!$J$393;Tabelle1!$L$393;Tabelle1!$N$393;Tabelle1!$P$393;Tabelle1!$R$393"
   ActiveWindow.ScrollColumn = 2
   ActiveWindow.ScrollColumn = 3
   ActiveWindow.ScrollColumn = 5
   ActiveWindow.ScrollColumn = 6
   ActiveWindow.ScrollColumn = 7
   ActiveWindow.ScrollColumn = 8
   ActiveSheet.ChartObjects("Diagramm 3").Activate
   ActiveChart.SeriesCollection(4).Select
   ActiveCell.Offset(1, 13).Range("A1").Select
   ActiveSheet.ChartObjects("Diagramm 3").Activate
   ActiveChart.SeriesCollection(4).Select
   ActiveChart.SeriesCollection(4).Values = _
       "=Tabelle1!$E$394;Tabelle1!$G$394;Tabelle1!$I$394;Tabelle1!$K$394;Tabelle1!$M$394;Tabelle1!$O$394;Tabelle1!$Q$394;Tabelle1!$S$394"
   ActiveChart.SeriesCollection.NewSeries
   ActiveChart.SeriesCollection(5).Name = "=""Thirds_MFT"""
   ActiveChart.SeriesCollection(5).Values = _
       "=Tabelle1!$E$399;Tabelle1!$G$399;Tabelle1!$I$399;Tabelle1!$K$399;Tabelle1!$M$399;Tabelle1!$O$399;Tabelle1!$Q$399;Tabelle1!$S$399"
   ActiveChart.SeriesCollection.NewSeries
   ActiveChart.SeriesCollection(6).Name = "=""Corner_MFT"""
   ActiveChart.SeriesCollection(6).Values = _
       "=Tabelle1!$E$404;Tabelle1!$G$404;Tabelle1!$I$404;Tabelle1!$K$404;Tabelle1!$M$404;Tabelle1!$O$404;Tabelle1!$Q$404;Tabelle1!$S$404"
   ActiveChart.SeriesCollection(5).XValues = _
       "=Tabelle1!$D$393;Tabelle1!$F$393;Tabelle1!$H$393;Tabelle1!$J$393;Tabelle1!$L$393;Tabelle1!$N$393;Tabelle1!$P$393;Tabelle1!$R$393"
   ActiveChart.SetElement (msoElementChartTitleAboveChart)
   ActiveWindow.ScrollColumn = 20
   ActiveWindow.ScrollColumn = 19
   ActiveWindow.ScrollColumn = 18
   ActiveWindow.ScrollColumn = 17
   ActiveWindow.ScrollColumn = 16
   ActiveWindow.ScrollColumn = 15
   ActiveWindow.ScrollColumn = 14
   ActiveWindow.ScrollColumn = 13
   ActiveWindow.ScrollColumn = 12
   ActiveWindow.ScrollColumn = 11
   ActiveWindow.ScrollColumn = 10
   ActiveWindow.ScrollColumn = 8
   ActiveWindow.ScrollColumn = 6
   ActiveWindow.ScrollColumn = 2
   ActiveWindow.ScrollColumn = 1
   ActiveChart.ChartTitle.Text = "="
   Selection.Format.TextFrame2.TextRange.Characters.Text = "="
   With Selection.Format.TextFrame2.TextRange.Characters(1, 1).ParagraphFormat
       .TextDirection = msoTextDirectionLeftToRight
       .Alignment = msoAlignCenter
   End With
   With Selection.Format.TextFrame2.TextRange.Characters(1, 1).Font
       .BaselineOffset = 0
       .Bold = msoTrue
       .NameComplexScript = "+mn-cs"
       .NameFarEast = "+mn-ea"
       .Fill.Visible = msoTrue
       .Fill.ForeColor.RGB = RGB(0, 0, 0)
       .Fill.Transparency = 0
       .Fill.Solid
       .Size = 18
       .Italic = msoFalse
       .Kerning = 12
       .Name = "+mn-lt"
       .UnderlineStyle = msoNoUnderline
       .Strike = msoNoStrike
   End With
   ActiveCell.Offset(0, -13).Range("A1").Select
   ActiveWindow.ScrollColumn = 2
   ActiveWindow.ScrollColumn = 3
   ActiveWindow.ScrollColumn = 4
   ActiveWindow.ScrollColumn = 5
   ActiveWindow.ScrollColumn = 7
   ActiveWindow.ScrollColumn = 8
   ActiveWindow.ScrollColumn = 9
   ActiveSheet.ChartObjects("Diagramm 3").Activate
   ActiveChart.ChartTitle.Select
   ActiveChart.ChartTitle.Text = "Asahi SMC Takumar 1.4/50"
   Selection.Format.TextFrame2.TextRange.Characters.Text = _
       "Asahi SMC Takumar 1.4/50"
   With Selection.Format.TextFrame2.TextRange.Characters(1, 24).ParagraphFormat
       .TextDirection = msoTextDirectionLeftToRight
       .Alignment = msoAlignCenter
   End With
   With Selection.Format.TextFrame2.TextRange.Characters(1, 24).Font
       .BaselineOffset = 0
       .Bold = msoTrue
       .NameComplexScript = "+mn-cs"
       .NameFarEast = "+mn-ea"
       .Fill.Visible = msoTrue
       .Fill.ForeColor.RGB = RGB(0, 0, 0)
       .Fill.Transparency = 0
       .Fill.Solid
       .Size = 18
       .Italic = msoFalse
       .Kerning = 12
       .Name = "+mn-lt"
       .UnderlineStyle = msoNoUnderline
       .Strike = msoNoStrike
   End With
   ActiveCell.Offset(-2, 25).Range("A1").Select
   ActiveSheet.ChartObjects("Diagramm 3").Activate
   ActiveChart.SeriesCollection(5).Select
   With Selection.Format.Line
       .Visible = msoTrue
       .ForeColor.ObjectThemeColor = msoThemeColorAccent1
       .ForeColor.TintAndShade = 0
       .ForeColor.Brightness = 0
   End With
   With Selection.Format.Line
       .Visible = msoTrue
       .ForeColor.ObjectThemeColor = msoThemeColorAccent2
       .ForeColor.TintAndShade = 0
       .ForeColor.Brightness = -0.25
       .Transparency = 0
   End With
   With Selection.Format.Line
       .Visible = msoTrue
       .DashStyle = msoLineSysDash
   End With
   ActiveChart.SeriesCollection(4).Select
   With Selection.Format.Line
       .Visible = msoTrue
       .DashStyle = msoLineSysDash
   End With
   ActiveChart.SeriesCollection(6).Select
   With Selection.Format.Line
       .Visible = msoTrue
       .DashStyle = msoLineSysDash
   End With
   With Selection.Format.Line
       .Visible = msoTrue
       .ForeColor.RGB = RGB(146, 208, 80)
       .Transparency = 0
   End With
   ActiveChart.SeriesCollection(4).Select
   With Selection.Format.Line
       .Visible = msoTrue
       .ForeColor.ObjectThemeColor = msoThemeColorAccent1
       .ForeColor.TintAndShade = 0
       .ForeColor.Brightness = 0
       .Transparency = 0
   End With
   ActiveChart.Axes(xlValue).Select
   ActiveChart.Axes(xlValue).MinimumScale = 0
   ActiveChart.Axes(xlValue).MaximumScale = 2500
   ActiveChart.Axes(xlValue).MajorUnit = 500
   ActiveChart.Axes(xlValue).MinimumScale = 300
   ActiveChart.Axes(xlValue).MaximumScale = 2200
   ActiveChart.Axes(xlValue).MajorUnit = 200
End Sub


VG, Rolf


Angehängte Dateien
.xlsm   Beispiel.xlsm (Größe: 71,9 KB / Downloads: 1)
Top
#18
Hallo Fennek, 

es tut mir Leid, ich habe bei neuem drübersehen bemerkt, dass ich leider den falschen Code kopiert habe. Es ist der von einem alten Makro. Der neueste ist der hier: 

Code:
Sub Make_Chart()
'
' Make_Chart Makro
'

'
   ActiveCell.Offset(1, 1).Range("A1:I1").Select
   ActiveSheet.Shapes.AddChart.Select
   ActiveChart.ChartType = xlLine
   ActiveChart.SetSourceData Source:=Range("Tabelle1!$AA$4:$AI$4")
   ActiveSheet.Shapes("Diagramm 1").IncrementLeft 834.4537795276
   ActiveSheet.Shapes("Diagramm 1").IncrementTop -282.8571653543
   ActiveSheet.Shapes("Diagramm 1").ScaleHeight 0.7894491834, msoFalse, _
       msoScaleFromTopLeft
   ActiveChart.Axes(xlValue).Select
   ActiveChart.Axes(xlValue).MinimumScale = 0
   ActiveChart.Axes(xlValue).MaximumScale = 2500
   ActiveChart.Axes(xlValue).MajorUnit = 500
   ActiveChart.Axes(xlValue).MinimumScale = 200
   ActiveChart.Axes(xlValue).MaximumScale = 2200
   ActiveChart.Axes(xlValue).MajorUnit = 200
   ActiveChart.Axes(xlCategory).Select
   ActiveChart.ChartArea.Select
   ActiveChart.SeriesCollection(1).XValues = "=Tabelle1!$AA$3:$AI$3"
   ActiveChart.SeriesCollection(1).Name = "=Tabelle1!$Z$4"
   ActiveChart.SeriesCollection.NewSeries
   ActiveChart.SeriesCollection(2).Name = "=Tabelle1!$Z$9"
   ActiveChart.SeriesCollection(2).Values = "=Tabelle1!$AA$9:$AI$9"
   ActiveChart.SeriesCollection.NewSeries
   ActiveChart.SeriesCollection(3).Name = "=Tabelle1!$Z$14"
   ActiveChart.SeriesCollection(3).Values = "=Tabelle1!$AA$14:$AI$14"
   ActiveChart.SeriesCollection.NewSeries
   ActiveChart.SeriesCollection(4).Name = "=Tabelle1!$AK$4"
   ActiveChart.SeriesCollection(4).Values = "=Tabelle1!$AL$4:$AT$4"
   ActiveChart.SeriesCollection.NewSeries
   ActiveChart.SeriesCollection(5).Name = "=Tabelle1!$AK$9"
   ActiveChart.SeriesCollection(5).Values = "=Tabelle1!$AL$9:$AT$9"
   ActiveChart.SeriesCollection.NewSeries
   ActiveChart.SeriesCollection(6).Name = "=Tabelle1!$AK$14"
   ActiveChart.SeriesCollection(6).Values = "=Tabelle1!$AL$14:$AT$14"
   ActiveChart.SeriesCollection(2).XValues = "=Tabelle1!$AA$3:$AI$3"
   ActiveChart.SeriesCollection(4).Select
   With Selection.Format.Line
       .Visible = msoTrue
       .ForeColor.ObjectThemeColor = msoThemeColorAccent1
       .ForeColor.TintAndShade = 0
       .ForeColor.Brightness = 0
   End With
   With Selection.Format.Line
       .Visible = msoTrue
       .ForeColor.RGB = RGB(146, 208, 80)
       .Transparency = 0
   End With
   ActiveChart.SeriesCollection(5).Select
   With Selection.Format.Line
       .Visible = msoTrue
       .ForeColor.RGB = RGB(146, 208, 80)
   End With
   With Selection.Format.Line
       .Visible = msoTrue
       .ForeColor.RGB = RGB(253, 99, 99)
       .Transparency = 0
   End With
   ActiveChart.SeriesCollection(6).Select
   With Selection.Format.Line
       .Visible = msoTrue
       .ForeColor.RGB = RGB(253, 99, 99)
   End With
   With Selection.Format.Line
       .Visible = msoTrue
       .ForeColor.RGB = RGB(146, 208, 80)
       .Transparency = 0
   End With
   ActiveChart.SeriesCollection(4).Select
   With Selection.Format.Line
       .Visible = msoTrue
       .ForeColor.ObjectThemeColor = msoThemeColorText2
       .ForeColor.TintAndShade = 0
       .ForeColor.Brightness = 0.6000000238
       .Transparency = 0
   End With
   With Selection.Format.Line
       .Visible = msoTrue
       .Weight = 2
   End With
   With Selection.Format.Line
       .Visible = msoTrue
       .DashStyle = msoLineSysDash
   End With
   ActiveChart.SeriesCollection(5).Select
   With Selection.Format.Line
       .Visible = msoTrue
       .Weight = 1.75
   End With
   With Selection.Format.Line
       .Visible = msoTrue
       .DashStyle = msoLineSysDash
   End With
   ActiveChart.SeriesCollection(6).Select
   With Selection.Format.Line
       .Visible = msoTrue
       .Weight = 1.75
   End With
   With Selection.Format.Line
       .Visible = msoTrue
       .DashStyle = msoLineSysDash
   End With
   ActiveChart.SeriesCollection(1).Select
   With Selection.Format.Line
       .Visible = msoTrue
       .Weight = 1.75
   End With
   ActiveChart.SeriesCollection(2).Select
   With Selection.Format.Line
       .Visible = msoTrue
       .Weight = 1.75
   End With
   ActiveChart.SeriesCollection(3).Select
   With Selection.Format.Line
       .Visible = msoTrue
       .Weight = 1.75
   End With
   ActiveWindow.ScrollColumn = 5
   ActiveWindow.ScrollColumn = 6
   ActiveWindow.ScrollColumn = 7
   ActiveWindow.ScrollColumn = 8
   ActiveWindow.ScrollColumn = 10
End Sub
Top
#19
Hallo,

hat die Änderung der Datenstruktur geklappt?

aus #14


Code:
Sub Neu_Aufbauen()
'ActiveCell auf Titel, z.B. A3
Dim Col As Range


Range("A3").Select ' <<<<<<<<<<< setzt >>>>>>>>>>>
r = ActiveCell.Row
Set Col = Range(Cells(r, 4), Cells(r, "R")).SpecialCells(xlCellTypeConstants).EntireColumn

'Chart-Daten
Range(Cells(r, "AA"), Cells(r, "AH")).NumberFormat = "@"
Range(Cells(r, 4), Cells(r, "R")).SpecialCells(xlCellTypeConstants).Copy Cells(r, "AA")
Intersect(Rows(r + 1), Col).Copy Cells(r + 1, "AA")
Cells(r + 1, "Z") = "Center"
Intersect(Rows(r + 1), Col.Offset(, 1)).Copy Cells(r + 2, "AA")
Cells(r + 2, "Z") = "Center_MfT"
Intersect(Rows(r + 6), Col).Copy Cells(r + 3, "AA")
Cells(r + 3, "Z") = "Thirds"
Intersect(Rows(r + 6), Col.Offset(, 1)).Copy Cells(r + 4, "AA")
Cells(r + 4, "Z") = "Thirds_MfT"
Intersect(Rows(r + 11), Col).Copy Cells(r + 5, "AA")
Cells(r + 5, "Z") = "Corner"
Intersect(Rows(r + 11), Col.Offset(, 1)).Copy Cells(r + 6, "AA")
Cells(r + 6, "Z") = "Corner_MfT"
Cells(r, "Z").CurrentRegion.Select
ActiveSheet.Shapes.AddChart2(227, xlLine).Select
end sub


Danach sollte der Formatierungsmakro laufen, es wird NUR der neue Chart übergeben, alle anderen Bezüge müßten entfernt werden.

mfg
Top
#20
Hallo Fennek, 

entschuldige, heute war ich den ganzen Tag voll beschäftigt und hatte gar keine Zeit. Auf den ersten Blick kapiere ich auch nicht, was zu tun ist, aber ich werde das hoffentlich in den nächsten Tagen hinbekommen. Danke auf jeden Fall einmal mehr für die Hilfe.

VG, Rolf
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste