![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Jr. Member
![]() Registriert seit: 26.01.2002
Ort: Wien
Alter: 45
Beiträge: 87
|
![]() Liebe WCM-Gemeinde!
Ich kämpfe seit 2 Stunden und komm nicht mehr weiter. Vielleicht könnt ihr mir helfen! Ich habe ein Excel-Sheet mit folgender Formel: =WENN(UND(E9=0;D9>0);0;WENN(E9<=0;180;0)+WENN(D9=0 ;90;REST(GRAD(ARCTAN(E9/D9))+180;180))) Wobei in D9 und in E9 Zahlen stehen (X-, Y-Koordinate im kartesischen Koordinatensystem) Ich bräuchte die Formel in VBA, da ich das Ergebnis (Winkel im Polarkoordinatensystem) gerne als Funktion berechnen würde. Leider gelingt es mir nicht, die Formel in VBA nachzubasteln. Vor allem gelingt es mir nicht, die If-Abfragen richtig zu schachteln... Vielen Dank für Eure Hilfe!! lg manuel |
![]() |
![]() |
![]() |
#2 |
Abonnent
![]() |
![]() WENN(UND(E9=0;D9>0);0;WENN(E9<=0;180;0)+WENN(D9=0; 90;REST(GRAD(ARCTAN(E9/D9))+180;180)))
If E9 = 0 AND D9 > 0 Then a=0 Else If E9 <= 0 a=180 else a=0 end if end if If D9 = 0 Then b=90 Else b=REST(GRAD(ARCTAN(E9/D9))+180 end if Range("A1")=a+b das letzte wenn versteh ich ned ganz 1. was macht REST ? 2. warum hat diese Wenn ;180 noch dabei...
____________________________________
\'I think I spider\' |
![]() |
![]() |
![]() |
#3 |
Jr. Member
![]() Registriert seit: 26.01.2002
Ort: Wien
Alter: 45
Beiträge: 87
|
![]() Vielen Dank! Ich werds gleich probieren!
REST(Zahl1;Zahl2) glaub ich ist bei "normalen" Programmiersprachen als "MOD" (Restwert einer Division) bekannt. |
![]() |
![]() |
![]() |
#4 |
Jr. Member
![]() Registriert seit: 26.01.2002
Ort: Wien
Alter: 45
Beiträge: 87
|
![]() JAAAAA, es funktioniert!!! DANKE, DANKE, DANKE!
Hier meine fertige Lösung: If varPosYrel = 0 And varPosXrel > 0 Then varWinkelTempA = 0 Else If varPosYrel <= 0 Then varWinkelTempA = 180 Else varWinkelTempA = 0 End If End If If varPosXrel = 0 Then varWinkelTempB = 90 Else varWinkelTempB = ((Atn(varPosYrel / varPosXrel) * 180 / PI) + 180) Mod 180 End If varWinkel = varWinkelTempA + varWinkelTempB lg manuel |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|