Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1500to1504
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
Inhaltsverzeichnis

Graphik Erstellen

Graphik Erstellen
28.06.2016 11:46:18
Sabrina
Hallo ihr lieben!
ich möchte gerne ein VBA erstellen, welches aus einer Exceltabelle eine Graphik erstellt.
1. Die Tabelle läuft über mehrere Jahre und bezieht sich auf bestimmte Regeln. Ich möchte diese Regeln abbilden über den Zeitverlauf, wie sich daran gehalten wurde.
2. Es gibt über 100 Regeln, weshalb ich gern ein VBA hätte.
3. Es soll keine Schleife sein. Ich möchte für jedes VBA ein Marko erstellen und dieses später mit einem Knopf verbinden, so dass ich immer nur die Graphik aufrufe, die ich haben und sehen möchte.
4. Ich bräuchte lediglich Hilfe dabei, die Graphiken per VBA zu erstllen. Die Verbindung mit Knöpfen ist ja easy die mach ich einfach per Hand.
5. Die Daten befinden sich auf Tabellenblatt 5 "Allocation", die Knöpfe später auf dem ersten Blatt "Auswertung", dort soll auch die Graphik erscheinen.
6. die y Achse soll in Prozent angegeben sein, die x Achse soll die KW wiedergeben über die Jahre hinweg.
7. Der Graph soll ebenfalls die Prozente für jede KW wiedergeben um besser ablesen zu können.
bisher habe ich das:

Sub Makro14() ' Dim ch As ChartObject Set ch = Worksheets("Allocation").ChartObjects.Add(100,    _
_
_
30, 400, 250) ch.Chart.ChartWizard Source:=Worksheets("Allocation").Range("A3:HC3"), _ gallery:= _
_
xlLine, Title:="New Chart" '
End Sub

Es wird hier auch eine Graphik erstellt, jedoch auf dem Datenblatt "Allocation" und zudem ist die x Achse einfach durchnummeriert bis 300 (was doof ist, da ich die KW´s sehen will) ebenfalls fehlt mir die % Angabe direkt am Graphen.
Könnt ihr mir vllt helfen? Ich komm iwie nicht weiter und finde nicht so richtig wsa dazu.
Vielen DAnk :)

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Graphik Erstellen
28.06.2016 14:32:09
UweD
Hallo
Bau die Grafik mal so zusammen, wie du sie haben möchtest und schalte vorher den Makrorecorder ein.
Nachdem du die Formatierung und alles so wunschgemäß hast, sieh dir das Makro an und wirf alles Überflüssige raus und verwende nach Möglichkeit variable Werte etc.
LG UweD

AW: Graphik Erstellen
28.06.2016 14:42:52
Sabrina
Hallo Uwe,
danke für deine Antwort!
Das habe ich auch bereits gemacht. dann kommt sowsa raus:
Sub Makro1()
' Makro1 Makro
ActiveSheet.Shapes.AddChart2(227, xlLineStacked).Select
ActiveChart.ClearToMatchStyle
ActiveChart.ChartStyle = 234
ActiveChart.ClearToMatchStyle
ActiveChart.ChartStyle = 231
ActiveChart.ClearToMatchStyle
ActiveChart.ChartStyle = 232
ActiveSheet.Shapes("Diagramm 1").IncrementLeft -531
ActiveSheet.Shapes("Diagramm 1").IncrementTop -195.75
ActiveSheet.Shapes("Diagramm 1").ScaleWidth 1.7083333333, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("Diagramm 1").ScaleHeight 1.6822918489, msoFalse, _
msoScaleFromTopLeft
ActiveChart.SetSourceData Source:=Sheets("Allocation").Range("A3:HB3")
ActiveChart.FullSeriesCollection(1).XValues = "=Allocation!$B$1:$HB$2"
ActiveChart.Axes(xlCategory).MajorGridlines.Select
End Sub
aber das kann man kein zweites mal ausführen... besonders da er das Diagramm "Diagramm 1" nennt und dann daruaf nicht mehr bezug nehmen kann.
ich hab keine ahnung wie ich das umbauen soll...
kannst du mir helfen?
Vielen Dank! :)

Anzeige
AW: Graphik Erstellen
28.06.2016 14:44:58
Sabrina
Hallo nochmal,
die Graphik soll auch in A1 in der obersten Ecke beginnen und nicht mittendrin erscheinen. daher in dem Code auch dieses:
ActiveSheet.Shapes("Diagramm 1").IncrementLeft -531
ActiveSheet.Shapes("Diagramm 1").IncrementTop -195.75
ActiveSheet.Shapes("Diagramm 1").ScaleWidth 1.7083333333, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("Diagramm 1").ScaleHeight 1.6822918489, msoFalse, _
msoScaleFromTopLeft
wieß aber nicht wie ich das hinbekomme..

AW: Graphik Erstellen
28.06.2016 15:14:42
Sabrina
Hallo. Ich hab die Lösung gefunden. Eventuell hilft sie in zukufnt anderen :p
Mein einziges Problem ist noch, dass mir die Grafik zu klein ist. Wie baue ich in den Code die Größe mit ein?
Sub Makro2()
Dim Ws As Worksheet
Dim oChrt As ChartObject
Dim Chrt As Chart
Set Ws = ActiveSheet
Set oChrt = Ws.ChartObjects.Add(50, 200, 300, 200)
With oChrt
.Name = "PR"
With .Chart
.ChartType = xlLineStacked
.ChartStyle = 232
.SetSourceData Source:=Range("Allocation!$A$1:$HB$3")
With .SeriesCollection(1)
.HasDataLabels = True
.Name = "PR-0.1:"
End With
.HasLegend = True
End With
End With
End Sub

vielen Dank :)

Anzeige
AW: Graphik Erstellen
28.06.2016 15:20:35
Sabrina
ja.. war dumm von mir, habs natürlich gerade doch gesehen. ;) alles in ordnung. problem gelöst :)

AW: Graphik Erstellen
28.06.2016 15:26:49
Sabrina
ahh.. hab doch noch was festgestellt..
.SetSourceData Source:=Range("Allocation!$A$1:$HB$3")
bezieht sich ja zu meinen auf die Überschrift: A1:HB2
und zum anderen auf die Werte der Grafik A3:HB3
wie mache ich weiter wenn ich jetzt A4:HB4 brauche?
Vielen Dank! Ich hoffe, ich nerv euch nicht mit meinen nachrichten :)

AW: Graphik Erstellen
28.06.2016 15:25:27
UweD
Hallo
Prima.
Hier werden die Startpunkte ung Größen festgelegt
Set oChrt = Ws.ChartObjects.Add(50, 200, 300, 200)
'Zahlen in der Klammer x-Pos linke Ecke, y-Pos linke Ecke, Breite, Höhe
Gruß UweD
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige