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

Diagramme position

Diagramme position
04.06.2008 10:13:00
denis
Hallo,
ich versuche alles ,aber ich bekomme es nicht hin.
ich möchte, das er die eingefüge DIAGRAMME (es sind mehrere) alle untereinander positioniert.
habe da unten mein makro, er zeigt mir ein fehler an(siehe Unten)
weiß er mit dem fehler meint?
oder gibt es dafür auch andere methoden?
LG

Sub trendanalyis()
Dim iDiagramm As Long
Dim Top As Double
Dim sht As Worksheet
Worksheets("Trend").Select
ActiveSheet.ChartObjects.Delete
Worksheets("Administration").Select
nrreihenanalyse = Worksheets("Administration").Range("P1000").End(xlUp).Row
nrreihen = Worksheets("Administration").Range("A4").End(xlToRight).Column
For z = 5 To nrreihenanalyse
'For x = 17 To nrreihen
'Cells(z, 16).Select
'Range(Cells(z, 17), Cells(z, nrreihen)).Select
'Range(Cells(3, 17), Cells(4, nrreihen)).Select
'MsgBox hi
Worksheets("Administration").Activate
Set bigRange = Application.Union(Range(Cells(z, 17), Cells(z, nrreihen - 3)), Range(Cells(3, 17) _
_
_
, Cells(4, nrreihen - 3)))
bigRange.Select
MsgBox hallo
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData source:=bigRange, PlotBy:=xlRows
ActiveChart.Location Where:=xlLocationAsObject, Name:="Trend"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = Sheets("Administration").Cells(z, 16).Value
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveChart.PlotArea.Select
With Selection.Border
.ColorIndex = 16
.Weight = xlThin
.LineStyle = xlContinuous
End With
Selection.Interior.ColorIndex = xlNone
ActiveChart.ChartArea.Select
ActiveChart.HasLegend = False
ActiveChart.ApplyDataLabels AutoText:=True, LegendKey:=False, _
HasLeaderLines:=False, ShowSeriesName:=False, ShowCategoryName:=False, _
ShowValue:=True, ShowPercentage:=False, ShowBubbleSize:=False
Set sht = Sheets("Trend")
With sht
iDiagramm = .ChartObjects.Count
With .ChartObjects(iDiagramm - 1) HIER ZEIG ER MIR EIN FEHLER AN: Efhler 1004:Die  _
Methode 'ChartObjects' für das Objekt '_Worksheet' ist fehlgeschlagen
Top = .Top + .Height
End With
.ChartObjects(iDiagramm).Top = Top
End With
'Next
Next
End Sub


8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramme position
04.06.2008 10:25:00
Beverly
Hi Denis,
ohne deinen gesamten Code getestet zu haben, versuchs so
With .ChartObjects(iDiagramm - 1).ShapeRange




AW: Diagramme position
04.06.2008 10:31:00
denis
danke, aber genau der selbe fehler wieder:(

AW: Diagramme position
04.06.2008 10:36:00
Beverly
Hi Denis,
lade deine Arbeitsmappe doch mal hoch, dann kann man das besser prüfen. In meinem Beispiel funktioniert der Code fehlerlos.


AW: Diagramme position
04.06.2008 10:52:56
denis
so jetzt habe ich mein fehler gefunden,
aber jetzt neues problem.
diemakrof funktion für die positionen ist nur für 2 diagramme gedacht, aber ich habe als nur zwei diagramme,die untereinander positioniert werden müssen.

With sht
iDiagramm = .ChartObjects.Count
With .ChartObjects(iDiagramm - 1)
Top = .Top + .Height
End With
.ChartObjects(iDiagramm).Top = Top

du kannst mir da bestimmt weiter helfen?

Anzeige
AW: Diagramme position
04.06.2008 11:17:35
denis
so jetzt habe ich mein fehler gefunden,
aber jetzt neues problem.
die makrofunktion,die die positionen bestimmt ,ist nur für 2 diagramme gedacht, aber ich jetzt mehr als nur zwei diagramme,die untereinander positioniert werden müssen.
With sht
iDiagramm = .ChartObjects.Count
With .ChartObjects(iDiagramm - 1)
Top = .Top + .Height
End With
.ChartObjects(iDiagramm).Top = Top
du kannst mir da bestimmt weiter helfen?

AW: Diagramme position
04.06.2008 12:32:00
Beverly
Hi Denis,
und wo lag der Fehler?
Für deine neue Frage:

Sub dia_positionieren()
Dim inDiagramm As Integer
With ActiveSheet
For inDiagramm = 1 To .ChartObjects.Count
If inDiagramm = 1 Then
.ChartObjects(inDiagramm).ShapeRange.Top = 100   '




Anzeige
AW: Diagramme position
04.06.2008 13:10:00
denis
DANKE,genau das wollte ich haben.PRIMA
mein fehler wa, dass ich die funktion für die positionierung, erts hinter dem LETZTEN next einfügen müsste.
und jetzt klappt alles super...
ich danke dir nochmals, wenn was ist ich melde mich:)
LG

AW: Diagramme position
04.06.2008 14:39:11
denis
So noch eine letzte Frage.
wie kann ich die größe der Diagramme den Inhalt anpassen, also wenn mehr daten dazukommen, das sich das diagramm automaitsch vergrößert?
So unten ist meine makro,.Bevor er sie positioniert muss er sie vergrößern?
kann mir da einer helfen?

Sub trendanalyis()
Dim iDiagramm As Long
Dim Top As Double
Dim sht As Worksheet
Dim inDiagramm As Integer
Worksheets("Trend").Select
ActiveSheet.ChartObjects.Delete
Worksheets("Administration").Select
nrreihenanalyse = Worksheets("Administration").Range("P1000").End(xlUp).Row
nrreihen = Worksheets("Administration").Range("A4").End(xlToRight).Column
For z = 5 To nrreihenanalyse
Worksheets("Administration").Activate
Set bigRange = Application.Union(Range(Cells(z, 17), Cells(z, nrreihen - 3)), Range(Cells(3, 17) _
, Cells(4, nrreihen - 3)))
bigRange.Select
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData source:=bigRange, PlotBy:=xlRows
ActiveChart.Location Where:=xlLocationAsObject, Name:="Trend"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = Sheets("Administration").Cells(z, 16).Value
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveChart.ApplyDataLabels AutoText:=True, LegendKey:=False, _
HasLeaderLines:=False, ShowSeriesName:=False, ShowCategoryName:=False, _
ShowValue:=True, ShowPercentage:=False, ShowBubbleSize:=False
ActiveChart.SeriesCollection(1).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlAutomatic
End With
Selection.Shadow = False
Selection.InvertIfNegative = False
With Selection.Interior
.ColorIndex = 4
.Pattern = xlSolid
End With
Next
Set sht = Sheets("Trend")
With ActiveSheet
For inDiagramm = 1 To .ChartObjects.Count
If inDiagramm = 1 Then
.ChartObjects(inDiagramm).ShapeRange.Top = 100
Else
.ChartObjects(inDiagramm).ShapeRange.Top = .ChartObjects(inDiagramm - 1). _
ShapeRange.Top + .ChartObjects(inDiagramm - 1).ShapeRange.Height
End If
Next inDiagramm
End With
End Sub


Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige