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

Kreis im Diagramm

Kreis im Diagramm
26.09.2004 14:28:15
Frank
Hallo Leute,
ich möchte als eine Ausbaustufe eines kleinen Projekts mittels Diagramm einen
Kreis zeichnen. Dieser soll sich aber langsam aufbauen, wie eine Animation.
Wer kann mir da Hinweise geben?
Grüße Frank

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kreis im Diagramm
K.Rola
Hallo,
sollen die Werte für den Kreis aus einem Tabellenblatt kommen oder per VBA-Code
erzeugt werden?
Gruß K.Rola
AW: Kreis im Diagramm
Frank
Hallo K.Rola,
danke für dein Interesse. Wenn es ohne Zellen geht, ist mir das natürlich lieber.
Grüße Frank
Noch eine Nachfrage....
K.Rola
Hallo,
hätte ich auch gleich fragen können, soll das Diagramm automatisch erzeugt werden,
oder ist es vorhanden?
Gruß K.Rola
AW: Noch eine Nachfrage....
Frank
Hallo K.Rola,
das Diagramm kann ich ja von Hand selbst erstellen, das ist kein Problem.
Grüße Frank
da, bitte...
K.Rola
Hallo,
Option Explicit
Declare Sub Sleep Lib "Kernel32" (ByVal mS As Long)
Sub Kreis_animiert()
Const P As Double = 3.14159265358979 / 180
Dim w As Integer, Dia As Chart, arrX(36), arrY(36), ShName As String
ShName = ActiveSheet.Name
Set Dia = Sheets(ShName).ChartObjects(1).Chart
For w = 0 To 36
arrX(w) = Round(Cos(w * 10 * P), 4)
arrY(w) = Round(Sin(w * 10 * P), 4)
Dia.SeriesCollection(1).XValues = arrX
Dia.SeriesCollection(1).Values = arrY
Sleep 100 'Wert erhöhen für langsameren Aufbau
DoEvents
Next
'Wenn der Kreis ausgeblendet werden soll
'Sleep 1000
'Dia.SeriesCollection(1).XValues = 0
'Dia.SeriesCollection(1).Values = 0
End Sub

Falls mehr als ein Diagramm vorhanden ist, musst du hier:
Set Dia = Sheets(ShName).ChartObjects(1).Chart
statt der 1 den englischen Namen des Diagramms eintragen.
Viel Spaß beim animieren.
Gruß K.Rola
Anzeige
Super! und noch eine Frage
Frank
Hallo K.Rola,
toll und tausend Dank.
Wie bekomme ich jetzt noch den Kreis größer oder kleiner?
Grüße Frank
AW: Super! und noch eine Frage
K.Rola
Hallo,
ich nehme mal an, die Zeichnungsfläche ist quadratisch, falls nicht, mach sie quadratisch. Bei beiden Achsen die automatische Skalierung rausnehmen und für
min -1 eingeben, für max 1 eingeben.
Nun kannst du das Diagramm größer oder kleiner ziehen, ggf. die Zeichnungsfläche
ebenso. Leichter geht das allerdings mit VBA.
Gruß K.Rola
AW: Super! und noch eine Frage
Frank
Hallo K.Rola,
habs gerade mal mit dem Rekorder versucht, aber da gehts nur relativ. Hast du noch
einen Code zum Skalieren, wäre super?
Grüße Frank
Anzeige
AW: Super! und noch eine Frage
K.Rola
Hallo,
klar doch...
Option Explicit
Sub Skalieren()
''Werte ggf. ändern
''Breite und Höhe        links            oben
Const W As Double = 300, L As Double = 0, T As Double = 0
Dim Ch As Chart, ShName As String
ShName = ActiveSheet.Name
Set Ch = Sheets(ShName).ChartObjects(1).Chart
With Ch.Parent
.Width = W
.Height = W
.Left = L
.Top = T
End With
With Ch.PlotArea
.Width = W
.Height = W
.Left = L
.Top = T
End With
End Sub

Versuch mal, den Code in den anderen einzubauen, kann aber auch ein eigenständiges
Makro sein.
Gruß K.Rola
Anzeige
Alles klar, bin happy owT
Frank
owT
AW: da, bitte...
Reinhard
Hallo K.Rola,
sorry dass ich dich schon wieder belästige,
wieso klappt in https://www.herber.de/bbs/user/11319.xls
mein Code nicht?
Erst passiert nix, d.h die ganzen sleeps werden abgearbeitet, dann kommt der Kreis auf einmal:-(
Option Explicit
Declare

Sub Sleep Lib "Kernel32" (ByVal mS As Long)

Sub KreisLöschen()
ActiveSheet.ChartObjects(1).Chart.SetSourceData Source:=Worksheets("Tabelle1").Range("iv1"), PlotBy:=xlColumns
End Sub


Sub KreisZeichnen()
Dim n As Integer, m As Integer
For n = 1 To 362
Sleep Worksheets("Tabelle1").Range("E6")
Sheets("Tabelle1").ChartObjects(1).Chart.SetSourceData Source:=Worksheets("Tabelle1").Range(Cells(1, 2), Cells(n, 3)), PlotBy:=xlColumns
Next n
End Sub

Gruß
Reinhard
Anzeige
AW: da, bitte...
K.Rola
Hallo,
Anmerkungen im Codemodul.
Gruß K.Rola
AW: da, bitte...
Reinhard
Hallo K.Rola,
kam noch nicht dazu dein Makro ausreichend durchzulesen.
Mit screenupdating=true konnte ich das Problemchen hier beheben, aber flackert wie wild *g daher wohl keine gute Lösung.
Gruß
Reinhard
AW: da, bitte...
K.Rola
Hallo,
screenupdating ist hier völlig fehl am Platz.
Gruß K.Rola
AW: da, bitte...
Reinhard
Hallo K.Rola,
welches Codemodul meinst du denn, ich bezog es auf ein Makro vor einige Zeit zu Diagrammen.
Oder wolltestdu hier eine Datei hochladen? *rumgugg, nix da*
Gruß
Reinhard
wieder was gelernt :-) merci o.w.T.
Reinhard

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige