Herbers Excel-Forum - das Archiv

Diagramm erstellen für 97 Tabellen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Label
Bild

Betrifft: Diagramm erstellen für 97 Tabellen
von: golem
Geschrieben am: 06.11.2003 10:05:36
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

Bild

Betrifft: AW: Diagramm erstellen für 97 Tabellen
von: Dan
Geschrieben am: 06.11.2003 10:45:32
Hallo Goli,
was meinst du genau mit Diagramm ? Dan

Dan dusek@cb.vakjc.cz
Bild

Betrifft: AW: Diagramm erstellen für 97 Tabellen
von: golem
Geschrieben am: 06.11.2003 10:55:46
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
Bild

Betrifft: AW: Diagramm erstellen für 97 Tabellen
von: Dan
Geschrieben am: 06.11.2003 11:28:54
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
Bild

Betrifft: AW: Diagramm erstellen für 97 Tabellen
von: golem
Geschrieben am: 06.11.2003 11:41:18
Hi Dan,
funkt leider nicht so richtig...:(
aber thx für Mühen
Bild

Betrifft: AW: Diagramm erstellen für 97 Tabellen
von: Dan
Geschrieben am: 06.11.2003 11:44:18
Und was ist daran falsch? Source Range musst du selber andern, das hast du verstanden, oder? D.
Bild

Betrifft: Es Funkt zu 80%!
von: golem
Geschrieben am: 06.11.2003 13:23:01
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...?
Bild

Betrifft: AW: Es Funkt zu 80%!
von: Dan
Geschrieben am: 06.11.2003 14:27:22
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


Bild

Betrifft: AW: Es Funkt ganz gut!
von: golem
Geschrieben am: 07.11.2003 09:32:27
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
Bild

Betrifft: AW: Es Funkt ganz gut!
von: Dan
Geschrieben am: 07.11.2003 13:51:07
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


Bild

Betrifft: AW: Es Funkt ganz gut!
von: golem
Geschrieben am: 09.11.2003 01:48:35
Hallo Dan!
Danke nochmals für deine Hilfe!
Werde es gleich mal probieren...
Bild
Excel-Beispiele zum Thema " Diagramm erstellen für 97 Tabellen"
Diagramm in Userform Export von Diagrammen im Grafikformat
Diagramm aus Arbeitsblatt in Diagrammblatt übertragen Balkendiagramm simulieren
Diagramm aus Daten einer Bandbreite bilden Diagramm-Datenreihen blinken lassen und Linie langsam zeichnen
Diagramm exportieren und in Tabellenblatt importieren Eine Serie von Diagrammen erstellen und Druckansicht zeigen
Diagramm-Datenbereich über Schaltfläche festlegen Mit einer Diagramm-Bildlaufleiste durch Tabelle bewegen