Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Winkel aus Sinuswert mit VBA berechnen

Forumthread: Winkel aus Sinuswert mit VBA berechnen

Winkel aus Sinuswert mit VBA berechnen
26.10.2022 05:43:22
Wolfgang
Hallo liebe Excel-Freunde,
in Excel den Sinus auszurechnen ist kein Problem es gibt ja die Funktion Sin(),
aber umgekehrt, wenn man den Sinus und den zugehörigen Winkel bestimmen will,
da bietet Excel nur VB an:
Ich hänge hier eine Arbeitsmappe mit historische Seereisen und den Koordinaten
und daraus die Kurse über den Sinus aus den Längenkoordinaten.
Es sind u.a. die Route der Titanic und eine der United States, die am schnellsten den Atlantic überquert hat.
Hier meine Funktion zur Ermittelung des Kurses aus dem Sinus:

Function SinusWinkel(ByRef RefSinus As Range) As Double
'26.10.22
'Über geben wird RefSinus As Double
'Um den Winkel zu dem übergebenen Sinuswert wir können nur raten, dies tun wir indem wir durch alle Sinus-Werte von Null
'steppen
'Ein negativer Sinus kann aus einem Kurs in Richtung Ost nach West, dann ist die Länge des Zielortes kleiner als des Startort,
'mit einer evt. negativer Länge hat das nichts zu tun.
Const WG = 0.004363309 'Iterationssprung in DO WHILE i 
Viel Spaß damit
Wolfgang
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Winkel aus Sinuswert mit VBA berechnen
26.10.2022 07:42:57
ralf_b
Moin wolfgang
deine Function beherbergt noch Fehler.
"Sinus" ist nicht deklariert
"SinX" und "If SinusX Then " verwende Option Explicit.
Wenn ich eine leere Zelle angebe wird mir ein Wert zurückgegeben. Das finde ich nicht so schön.
gruß
rb
AW: Winkel aus Sinuswert mit VBA berechnen
27.10.2022 07:43:52
Wolfgang
Hallo Ralf,
natürlich ist die Variable Sinus nicht deklariert, die soll in RefSinus übergeben werden, doof finde ich, daß VisualBasic nicht DatenTyp Cell über nimmt, nur Range, ich hab' nicht geprüft ob Ref.Value empty ist, danke, für den Hinweis, das baue ich ein.
Und was für ein Problem ist mit SinusX? Ich verstehe ehrlich gesagt Deinen Hinweis.
Gruß Wolfgang
Anzeige
AW: Winkel aus Sinuswert mit VBA berechnen
27.10.2022 15:45:22
ralf_b
"SinX" und "If SinusX Then "
ich glaube das SinusX eigentlich SinX heissen soll. denn SinX wird als Boolean Variable erstellt und auch true oder false gesetzt. SinusX als solche verwendet aber vorher nie gesetzt.
AW: Winkel aus Sinuswert mit VBA berechnen
27.10.2022 16:22:21
peterk
Hallo
Es gibt auch ARCSIN
Winkel in Grad: (180/pi())*ArcSin(x)
Peter
AW: Winkel aus Sinuswert mit VBA berechnen
27.10.2022 16:23:31
onur
Hab ich auch geschrieben, aber hat er nicht kapiert.
;
Anzeige
Anzeige

Infobox / Tutorial

Winkel aus Sinuswert mit VBA berechnen


Schritt-für-Schritt-Anleitung

Um den Winkel aus einem Sinuswert in Excel mit VBA zu berechnen, folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu:

    • Klicke auf "Einfügen" und wähle "Modul".
  3. Kopiere die folgende Funktion in das Modul:

    Function SinusWinkel(ByRef RefSinus As Range) As Double
       If IsEmpty(RefSinus) Then
           SinusWinkel = CVErr(xlErrValue)
           Exit Function
       End If
    
       Const WG = 0.004363309 'Iterationssprung
       Dim i As Double
       Dim SinX As Double
    
       For i = -1 To 1 Step WG
           SinX = Sin(i)
           If Abs(SinX - RefSinus.Value) < 0.0001 Then
               SinusWinkel = Atn(i) * (180 / WorksheetFunction.Pi())
               Exit Function
           End If
       Next i
    
       SinusWinkel = CVErr(xlErrValue) 'Wenn kein Wert gefunden wurde
    End Function
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Verwende die Funktion in einer Zelle, indem du =SinusWinkel(A1) eingibst, wobei A1 den Sinuswert enthält.


Häufige Fehler und Lösungen

  • Problem: "Sinus ist nicht deklariert"

    • Lösung: Stelle sicher, dass du die korrekten Variablen verwendest. Ändere SinusX in den entsprechenden Codeabschnitten.
  • Problem: Funktion gibt einen Wert für leere Zellen zurück.

    • Lösung: Füge eine Überprüfung ein, um leere Zellen zu behandeln, wie im obigen Beispiel gezeigt.

Alternative Methoden

Wenn du die Funktion nicht mit VBA implementieren möchtest, kannst du auch die Excel-Funktion ARCSIN verwenden:

=ARCSIN(A1) * (180 / PI())

Diese Formel berechnet den Winkel in Grad aus dem Sinuswert in Zelle A1.


Praktische Beispiele

  1. Berechnung des Winkels für den Sinuswert 0.5:

    • Gebe in A1 den Wert 0.5 ein.
    • Verwende =SinusWinkel(A1) oder =ARCSIN(A1) * (180 / PI()).
  2. Tabelle mit Sinuswerten:

    • Erstelle eine Tabelle mit verschiedenen Sinuswerten und verwende die obigen Formeln, um die zugehörigen Winkel zu berechnen.

Tipps für Profis

  • Nutze die Option Explicit-Anweisung im VBA, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler frühzeitig zu erkennen.
  • Überlege, die Funktion in eine benutzerdefinierte Excel-Add-In zu konvertieren, um sie in verschiedenen Arbeitsmappen nutzen zu können.
  • Verwende die Funktion WorksheetFunction.Sinus, um Werte aus einer Tabelle von Sinuswerten abzurufen.

FAQ: Häufige Fragen

1. Rechnet Excel in Rad oder Grad? Excel verwendet Bogenmaß (Rad), es ist jedoch wichtig, die Umrechnung in Grad durchzuführen, wenn du mit Winkeln arbeiten möchtest.

2. Wie kann ich die Sinuswerte für bestimmte Winkel berechnen? Du kannst die Funktion SIN() in Excel verwenden, um die Sinuswerte für jeden Winkel zu berechnen. Beispielsweise: =SIN(30 * PI() / 180) gibt den Sinuswert für 30 Grad zurück.

3. Was ist der Unterschied zwischen ARCSIN und der benutzerdefinierten Funktion? ARCSIN gibt den Winkel direkt zurück, während die benutzerdefinierte Funktion die Berechnung über Iteration vornimmt und flexibler gestaltet werden kann.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige