Diagramm verschieben
10.11.2003 09:32:47
golem
mit folgendem Code wird ein Diagramm erzeugt und soll verschoben werden.
Es klappt alles bis auf das nachträgliche Verschieben des Diagramms.
Der Fehler kommt erst weiter unten.
Sub AddGraphToEachWorksheet()
Dim MyChart As Chart, Ws As Worksheet
For i = 0 To 97
For Each Ws In Application.ActiveWorkbook.Worksheets
If Ws.CodeName = "Tabelle" & i Then
Set MyChart = Charts.Add
With MyChart
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Ws.Range("A26,A28:A40,C26,C28:C40,E26,E28:E40"), PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject,Name:=Ws.Name
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Sales"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
Selection.Position = xlTop
ActiveChart.HasDataTable = False
ActiveChart.SeriesCollection(2).Select
With Selection.Border
.ColorIndex = 6
.Weight = xlMedium
.LineStyle = xlContinuous
End With
Selection.Shadow = False
Selection.InvertIfNegative = False
Selection.Interior.ColorIndex = xlAutomatic
ActiveChart.SeriesCollection(2).ChartType = xlLine
ActiveChart.SeriesCollection(2).Select
With Selection.Border
.ColorIndex = 6
.Weight = xlThick
.LineStyle = xlContinuous
End With
With Selection
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = xlNone
.MarkerStyle = xlNone
.Smooth = False
.MarkerSize = 7
.Shadow = False
End With
With ActiveChart.ChartGroups(1) 'Balkendicke
.Overlap = 0
.GapWidth = 500
.HasSeriesLines = False
.VaryByCategories = False
End With
'###### ab hier wollte ich die Position ändern (erfolglos)##
With MyChart 'es sollen alle Diagramme(auf allen Tabellen)verschoben werden
.Left = 150
.Top = 250
.Height = 300
.Width = 400
End With
End With
End If
Next
Next
End Sub
__________________________________________________________________________
__________________________________________________________________________
Von Dan habe ich diesen Code bekommen, ich weiß nur nicht wie das für alle Tabellenblätter umgebastelt wird bzw wo ich den obigen Code einbauen kann...
Sub GraphAddAndPositionAndern()
Dim Wsh As Worksheet ' in diesen Sheet wird der Graph zugegeben
Dim ChrtObjts As ChartObjects ' Verweiss auf die ChartObjects Colllection
Dim ChrtObj As ChartObject ' Obj. Var., die auf den neuen Graph verweisen wird
' die Verweiss/Object Vars. anstellen
Set Wsh = ActiveSheet
Set ChrtObjts = Wsh.ChartObjects
Set ChrtObj = ChrtObjts.Add(0, 0, 100, 100) ' neuer Chart Object ist zugegeben worden
' die Position und Masse des Chart Objects anstellen
With ChrtObj
.Left = 150
.Top = 250
.Height = 300
.Width = 400
End With
' die andern Dinge durch ändern, mit Hilfe der Chart Eigenschafft
With ChrtObj.Chart
End With
End Sub
________________________________________________________________________
ich hoffe mein Problem einigermaßen verständlich gemacht zu haben(?).