Excel Russisch Roulett?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Mit Elevation evtl.

https://docs.microsoft.com/de-de/office/vba/api/excel.chart.elevation

Ich habe es nicht ausprobiert.

Vielleicht findest du hier noch etwas passendes:

http://codevba.com/de/Excel/Chart.htm#.X9zwvhYxmUk


TAEBoost 
Beitragsersteller
 20.12.2020, 13:13

Kannst du den Code bitte schreiben... Ich weiß nicht ganz genau was du meinst:

Option Explicit
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)


Sub Drehung()
'
' Drehung Makro
'

'

Dim i As Integer
Dim z As Integer

Range("C100").Select
Selection.ClearContents

i = 0
z = Cells(1, 1)

'Schnelles Drehen
Do Until i = 100
i = i + 1


   ActiveSheet.ChartObjects("Diagramm 2").Activate
   ActiveChart.FullSeriesCollection(1).Select
   ActiveChart.ChartGroups(1).FirstSliceAngle = z
   Range("R22").Select

   If z < 355 Then
   z = z + 5

   Else
   z = 0

   End If
   Application.Calculate
   Sleep (6)
   DoEvents
   DoEvents

   Loop

'Langsames Drehen
Do Until i = 165
i = i + 1


  ActiveSheet.ChartObjects("Diagramm 2").Activate
  ActiveChart.FullSeriesCollection(1).Select
  ActiveChart.ChartGroups(1).FirstSliceAngle = z
  Range("R22").Select
  If z >= 190 And z <= 205 Then

  Range("A5") = "Tod"


   End If

    Range("R22").Select

  If z < 358 Then
  z = z + 2

  Else
  z = 0

  End If
  Application.Calculate
  Sleep (6)
  DoEvents
  DoEvents

  Loop





End Sub

Zusatzinfo ich will dass wenn der kreis eine drehung hat zwischn 190 und 205 dass dann zb in A5 tod steht (Am besten wäre es wenn es erst in a5 steht wenn die drehung vorbei ist)

0
safur  20.12.2020, 13:21
@safur

Bei mir klappt es wunderbar, jetzt habe ich Angst 😱

Wenn jetzt einmal "Tod" geschrieben wurde, solltest du es natürlich auch wieder entfernen.

Sub Drehung()
Range("A5")=""

dann wird der Wert am Anfang gelöscht

0
TAEBoost 
Beitragsersteller
 20.12.2020, 13:43
@safur

kannst du bitte ma den code schreiben weil ich weiß immer nicht wo ich es einbauen soll

0
safur  20.12.2020, 13:46
@TAEBoost

Die stelle passt doch schon

Range("R22").Select
  If z >= 190 And z <= 205 Then
    Range("A5") = "Tod"
    Exit Do
   End If
0
TAEBoost 
Beitragsersteller
 18.12.2020, 19:41
https://docs.microsoft.com/de-de/office/vba/api/excel.chart.elevation

das wird glaub ich nur bei 3d Diagrammen benutzt aber ich benutz ein 2d kreis

1
safur  18.12.2020, 19:47
@TAEBoost

kannst du die Datei irgendwie bereitstellen?

vielleicht über die Orientation Eigenschaft von einem Label

Hast du die Grad irgendwo schon? Weil dann könntest du die doch einfach in eine Zelle schreiben.

1
TAEBoost 
Beitragsersteller
 19.12.2020, 18:10
@safur

ne weil die startdrehung wird am anfang zufällig durch randbetween ausgelöst und dann wird sozusagen von der startdrehung 630° gedreht... das problem ist ich kann jtz nicht einfach die stratdrehung nehmen und 630° drauf adden weil durch die ständigen 5° schritte der drehung, calculiert er randbeetwen auch neu

0
safur  20.12.2020, 13:13
@TAEBoost

Das passt schon, es fehlt noch ein Exit Do

If z >= 190 And z <= 205 Then
  Range("A5") = "Tod"
  Exit Do
End If

dann springt er aus der Schleife.

Klappt nicht? Hast du es dir anders vorgestellt?

0

Am naheliegendsten wäre, du lässt das Marko den finalen Wert von z in eine Zelle schreiben, auf die du sich mit einer Formel beziehen kannst.

Woher ich das weiß:eigene Erfahrung – Faulheit >> Neugier >> Wissen

Hier mal eine Drehung, die ggf für dich passt.
Shape Objekt drehen (herber.de)


TAEBoost 
Beitragsersteller
 19.12.2020, 18:07

ich glaub irh versteht mich alle falsch... es dreht sich schon... (wenn ihr euch den code vielleicht mal anschaut ._.) aber ich wollte wissen ob jemand weiß wie man mit eincem command die grad eines kreises in einer zelle anzeigen lassen kann

0
IchMalWiederXY  20.12.2020, 00:09
@TAEBoost

Wenn du weißt wieviel Grad es sich gedreht hat dann mit

Range("A1").Value = "Dein Gradwert"

0