Sistema Solar en Excel
Visual Basic para Aplicaciones
4.187 visualizaciones desde el 2 de Septiembre del 2018
Option Explicit
Private Salida As String
Private bo As String
Sub Inicia()
On Error Resume Next
Dim X, Y, X1, Y1, Radio, Ang As Integer
Dim xtierra, ytierra, tx1, ty1 As Integer
Dim V As Integer
Salida = ""
Radio = ActiveSheet.Shapes("Sol").Width + 10
Range("A1").Select
ActiveSheet.Shapes("Sol").Left = 1750
Do While Salida <> "SALIR"
For Ang = 1 To 315
X = ActiveSheet.Shapes("Sol").Left + ActiveSheet.Shapes("Sol").Height / 2
Y = ActiveSheet.Shapes("Sol").Top + ActiveSheet.Shapes("Sol").Width / 2
If Salida = "SALIR" Then Exit Do
ActiveSheet.Shapes("Mercurio").Left = (((Radio - 250) * Sin((Ang / 25) * 4.999999999) + X) - ActiveSheet.Shapes("Mercurio").Height / 2)
ActiveSheet.Shapes("Mercurio").Top = (((Radio - 250) * Cos((Ang / 25) * 4.999999999) - Y * -1) - ActiveSheet.Shapes("Mercurio").Width / 2)
ActiveSheet.Shapes("Venus").Left = (((Radio - 200) * Sin((Ang / 25) * 3.999999999) + X) - ActiveSheet.Shapes("Venus").Height / 2)
ActiveSheet.Shapes("Venus").Top = (((Radio - 200) * Cos((Ang / 25) * 3.999999999) - Y * -1) - ActiveSheet.Shapes("Venus").Width / 2)
ActiveSheet.Shapes("Tierra").Left = (((Radio - 120) * Sin((Ang / 25) * 1.999999999) + X) - ActiveSheet.Shapes("Tierra").Height / 2)
ActiveSheet.Shapes("Tierra").Top = (((Radio - 120) * Cos((Ang / 25) * 1.999999999) - Y * -1) - ActiveSheet.Shapes("Tierra").Width / 2)
ActiveSheet.Shapes("Marte").Left = (((Radio - 30) * Sin((Ang / 50) * 2.99999999) + X) - ActiveSheet.Shapes("Marte").Height / 2)
ActiveSheet.Shapes("Marte").Top = (((Radio - 30) * Cos((Ang / 50) * 2.99999999) - Y * -1) - ActiveSheet.Shapes("Marte").Width / 2)
ActiveSheet.Shapes("Jupiter").Left = (((Radio + 100) * Sin((Ang / 25) / 0.999999999) + X) - ActiveSheet.Shapes("Jupiter").Height / 2)
ActiveSheet.Shapes("Jupiter").Top = (((Radio + 100) * Cos((Ang / 25) / 0.999999999) - Y * -1) - ActiveSheet.Shapes("Jupiter").Width / 2)
ActiveSheet.Shapes("Saturno").Left = (((Radio + 330) * Sin((Ang / 25) / 1.999999999) + X) - ActiveSheet.Shapes("Saturno").Height / 2)
ActiveSheet.Shapes("Saturno").Top = (((Radio + 330) * Cos((Ang / 25) / 1.999999999) - Y * -1) - ActiveSheet.Shapes("Saturno").Width / 2)
ActiveSheet.Shapes("Urano").Left = (((Radio + 480) * Sin((Ang - 80) / 50) + X) - ActiveSheet.Shapes("Urano").Height / 2)
ActiveSheet.Shapes("Urano").Top = (((Radio + 480) * Cos((Ang - 80) / 50) - Y * -1) - ActiveSheet.Shapes("Urano").Width / 2)
ActiveSheet.Shapes("Neptuno").Left = (((Radio + 550) * Sin((Ang - 180) / 50) + X) - ActiveSheet.Shapes("Neptuno").Height / 2)
ActiveSheet.Shapes("Neptuno").Top = (((Radio + 550) * Cos((Ang - 180) / 50) - Y * -1) - ActiveSheet.Shapes("Neptuno").Width / 2)
xtierra = ActiveSheet.Shapes("tierra").Left + ActiveSheet.Shapes("tierra").Height / 2
ytierra = ActiveSheet.Shapes("tierra").Top + ActiveSheet.Shapes("tierra").Width / 2
tx1 = 50 * Cos(Ang / 3) + xtierra
ty1 = 50 * Sin(Ang / 3) - ytierra * -1
ActiveSheet.Shapes("luna").Left = (tx1 - ActiveSheet.Shapes("luna").Height / 2)
ActiveSheet.Shapes("luna").Top = (ty1 - ActiveSheet.Shapes("luna").Width / 2)
ActiveSheet.Shapes("Halley").Left = ((Radio + 850) * Cos((Ang - 850) / 50) + X - ActiveSheet.Shapes("Halley").Height / 2) * 2
ActiveSheet.Shapes("Halley").Top = ((Radio + 250) * Sin((Ang - 1800) / 50) - Y * -1 - ActiveSheet.Shapes("Halley").Width / 2) / 2
DoEvents
Next Ang
Loop
End Sub
Sub Fin()
Salida = "SALIR"
End Sub
Comentarios sobre la versión: Versión 1.0 (2)