Anzeige
Archiv - Navigation
332to336
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
332to336
332to336
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Diagramm erstellen für 97 Tabellen

Diagramm erstellen für 97 Tabellen
06.11.2003 10:05:36
golem
HAllo,
gestern bekam ich zu dem Problem: "Wie erstellt man (mit oder ohne VBA) für 97 Tabellen je ein Diagramm. Die Datenquellen der Diagramme sind immer dieselben Zellen des jeweiligen Tabellenblattes."
Ich bekam auch eine Antwort (Danke Guenther!), leider funktioniert das markieren aller Blätter und das Erstellen des Diagrammes nicht, da diese Funktion beim Markieren mehrerer Tabellenblätter deaktiviert ist.
Weiß jemand Rat?

mfg
Golem

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm erstellen für 97 Tabellen
06.11.2003 10:45:32
Dan
Hallo Goli,
was meinst du genau mit Diagramm ? Dan

Dan dusek@cb.vakjc.cz
AW: Diagramm erstellen für 97 Tabellen
06.11.2003 10:55:46
golem
Hallo Dan,
mit Diagramm meine ich ein Diagramm,Chart, Balkenchart,Linienchart oder wie die alle heißen. (Es sollte ein Diagramm sein und kein Diagrammblatt.)
Falls Du die englische Office Version hast, kann ich Dir nicht genau sagen wie das in deiner Version heißt aber laut Wörterbuch chart, diagram oder graph.
gruß
Goli
AW: Diagramm erstellen für 97 Tabellen
06.11.2003 11:28:54
Dan
Option Explicit

Sub AddGraphToEachWorksheet()
Dim MyChart As Chart, Wsh As Worksheet

For Each Wsh In Application.ActiveWorkbook.Worksheets

Set MyChart = Charts.Add

With MyChart
.ChartType = xlColumnClustered
.SetSourceData Source:=Wsh.Range("A1:B2"), _
PlotBy:=xlRows
.Location Where:=xlLocationAsObject, Name:=Wsh.Name
' .HasTitle = True
' .ChartTitle.Characters.Text = Wsh.Name
End With
Next Wsh

HasTitle und ChartTitle hat nicht funzt, weiss nicht wieso :-(
Gruss Dich, Dan
Anzeige
AW: Diagramm erstellen für 97 Tabellen
06.11.2003 11:41:18
golem
Hi Dan,
funkt leider nicht so richtig...:(
aber thx für Mühen
AW: Diagramm erstellen für 97 Tabellen
06.11.2003 11:44:18
Dan
Und was ist daran falsch? Source Range musst du selber andern, das hast du verstanden, oder? D.
Es Funkt zu 80%!
06.11.2003 13:23:01
golem
Habe es mittlerweile mit Deiner Hilfe einigermaßen hinbekommen- hatte andere Variablen Namen und dies nicht gemerkt weil ich option explicit lösche...
20% die fehlen: Diagramm verrücken mach ich per macrorec:
ActiveSheet.Shapes.IncrementLeft 2095.5
ActiveSheet.Shapes.IncrementTop 120.75
ActiveSheet.Shapes.ScaleWidth 1.4, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes.ScaleHeight 1.25, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes.ScaleWidth 1.3, msoFalse, _
msoScaleFromBottomRight
ActiveSheet.Shapes.ScaleHeight 1.06, msoFalse, _
msoScaleFromTopLeft
Fehler: Objekt unterstützt diese Eigenschaft nicht...?
Anzeige
AW: Es Funkt zu 80%!
06.11.2003 14:27:22
Dan
Hallo Goli,
ich habe es anders gemacht und es hat ganz gut gelaufen :
'---------------------------------------------------------

Option Explicit


Sub AddGraphToEachWorksheet()
Dim MyChartObj As ChartObject
Dim MyChartsObjets As ChartObjects
Dim Wsh As Worksheet
Dim MyXAxis As Axis, MyYAxis As Axis
For Each Wsh In Application.ActiveWorkbook.Worksheets
Set MyChartsObjets = Wsh.ChartObjects
Set MyChartObj = MyChartsObjets.Add(Left:=20, Top:=30, Width:=400, Height:=300)
With MyChartObj.Chart
.ChartType = xlColumnClustered
.SetSourceData Source:=Wsh.Range("A1:B2"), _
PlotBy:=xlRows
.Location Where:=xlLocationAsObject, Name:=Wsh.Name
.HasTitle = True
.ChartTitle.Characters.Text = Wsh.Name
Set MyXAxis = .Axes(Type:=xlCategory)
Set MyYAxis = .Axes(Type:=xlValue)
End With
With MyXAxis
.CrossesAt = 2
.TickLabelSpacing = 1
.TickMarkSpacing = 1
.AxisBetweenCategories = True
.ReversePlotOrder = False
End With
With MyYAxis
' die Y-Achse bearbeiten
End With
Next Wsh
End Sub

Anzeige
AW: Es Funkt ganz gut!
07.11.2003 09:32:27
golem
Hallo Dan,
DANKE, dass Du weiterhin so hartnäckig an meinem Problem gearbeitet hast!
Nimmst Du die Codes -ao wie ich- erst per MAcrorec auf...wenn nicht woher kennst Du die Befehle? Beim Objektkatalog weiß ich nicht so genau was für was ist.

Wie kann ich das komplette Diagramm auf jeder Tabelle verschieben (falls das im obigen Code enthalten ist , finde ich die Stelle nicht)?
mit With MyYAxis
' die Y-Achse bearbeiten
End With
ist die Beschriftung etc gemeint(, oder?)

Viele Grüsse
Golem
AW: Es Funkt ganz gut!
07.11.2003 13:51:07
Dan
Halo Golem, die Position kann man so andern :
(Dan dusek@cb.vakjc.cz)


Sub GraphAddAndPositionAndern()
Dim Wsh As Worksheet ' in disen 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 anden Dinge durch andern, mit hilfe der Chart Eigenschafft
With ChrtObj.Chart
End With
End Sub

Anzeige
AW: Es Funkt ganz gut!
09.11.2003 01:48:35
golem
Hallo Dan!
Danke nochmals für deine Hilfe!
Werde es gleich mal probieren...

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige