WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 28.01.2008, 21:07   #1
webwurm
Jr. Member
 
Registriert seit: 26.01.2002
Ort: Wien
Alter: 45
Beiträge: 87


Standard Excel-Formel in Excel-VBA umwandeln

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
webwurm ist offline   Mit Zitat antworten
Alt 28.01.2008, 22:40   #2
Atomschwammerl
Abonnent
 
Registriert seit: 04.09.2001
Alter: 39
Beiträge: 4.355


Atomschwammerl eine Nachricht über ICQ schicken
Standard

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\'

Atomschwammerl ist offline   Mit Zitat antworten
Alt 29.01.2008, 16:36   #3
webwurm
Jr. Member
 
Registriert seit: 26.01.2002
Ort: Wien
Alter: 45
Beiträge: 87


Standard

Vielen Dank! Ich werds gleich probieren!

REST(Zahl1;Zahl2) glaub ich ist bei "normalen" Programmiersprachen als "MOD" (Restwert einer Division) bekannt.
webwurm ist offline   Mit Zitat antworten
Alt 29.01.2008, 19:12   #4
webwurm
Jr. Member
 
Registriert seit: 26.01.2002
Ort: Wien
Alter: 45
Beiträge: 87


Standard

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
webwurm ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:21 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag