2 Fragen zu IF .. then

Hallo,
Ist es möglich mit IF eine Range abzufragen ?
Also wenn var1 = zwischen 1 - 9 liegt then ?

mein 2tes problem
If drehung > 359 Then
drehung = 0
End If
Funktioniert aber warum funktioniert folgendes nicht ?

If drehung

Hallo,
Ist es möglich mit IF eine Range abzufragen ?
Also wenn var1 = zwischen 1 - 9 liegt then ?

Hallo
Klar doch, so:
If (var1 > 1) And (var1 = bzw. 359 Then
'Es soll hier wahrscheinlich: If drehung >= 360 heißen

drehung = 0
End If
Funktioniert aber warum funktioniert folgendes nicht ?

If drehung

Joa, das war ja wieder zu einfach,

wie kann ich einen negativen Wert in einen Positiven verwandeln ?

mfg jonny

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Joe,

ganz einfach mit der Function ABS

abs (-15) -> 15 :wink:

zu den anderen problem, wie man etwas auswerten kann wenn es in einen Bereich liegt.
Sicher kannst du das mit and oder OR etc, machen. Aber hast du dann sagen wir mal 10 verschiedene Bereiche, schreibste dich dusselig.
Besser waere oder wenn mehrere Auswahlen zur Frage kommen. Eine Select Case Anweisung

Select case DeinWertAlsZahl
 case 0
 'Deine Code
 case 1 to 5, 7 to 9, 38 
 'Deine Code
 case 6
 'Deine Code
 case else
 'Dein Code
end select

'willst du auf Strings prüfen so machst das wiefolgt
Select Case DeinString
 case "a"
 'Dein Code
 case "Hallo","huhu","Guten Tag"
 'Dein Code
 case else
 'Dein Code
end select

'Die Case Else Anweisung wird ausgefuehrt, wenn kein Wert den du unter
'Case angegeben hast eintritt. Kannst du das ausschliessen oder 
'brauchst es nicht, so kannst du den Case Else Zweig weg lassen :smile:

'Natuerlich kannst du auch Select Case Anweisung verschachteln :smile:

Select Case DeineVariable
 case DeinWert
 case DeinWert
 select case DeineAndereVariable
 case DeinWert
 case DeinWert
 end select
 case Dein Wert
 case else
end select 

Die anderen Fragen wurden dir ja bereits beantwortet :smile:

MfG Alex

1 Like

Hallo.

drehung springt erst auf null wenn ich -362 +1 mache ? aber
nicht wenn ich -360 -1 eingebe … gibt es da einen trick ?

Verwende doch einfach die Modulofunktion:

Drehung = Drehung Mod 360

Gruß Eillicht zu Vensre

Ich drehe eine Grafik.

If (drehung = -400) Then
drehung = 0
End If

Warum geht das erst wenn ich in dem angegebenen Bereich eine drehung richtung 0 MAche ? wenn ich richtung -400 drehe passsiert nichts

mfg jonny

Hi Joe,

IMO suchst Du den Fehler an der falschen Stelle.

Gruß, Rainer

zu viel TEXT :stuck_out_tongue:

in der Variabel drehung steht entweder ein wert 0-360
bis 360 da greift die IF und macht 0 draus.
in die andere richtung 0 bis -360 aber da greift die böse IF nur wenn ich die GRafik wieder in richtung 0 drehe … wenn ich nonstop richtung -10000 drehe passiert da nichts … drehung ist LONG auch wenn in Integer ja auch locker reicht …

bekomme ich nen hinweis ?

mfg jonny

Hi Joe,

ich habe im Moment keine Ahnung, wo Du den Fehler eingebaut hast.

bekomme ich nen hinweis ?

Sieh Dir mal den Beitrag von Ellicht an, die Lösung ist sehr viel schöner als das IF und könnte auch das Problem gleich mit lösen.

Gruß, Rainer

Hi Joe,

mir ist da noch etwas durch den Kopf gegangen, was sollen eigentlich negative Winkel? Die haben doch auch nur die Position eines positiven Winkels.

Wie gefällt Dir das … ? (Ich hab mal mit Ellichts Vorschlag herumgespielt)

Private Sub Command1\_Click()
 For i = -800 To 800
 w = ((i Mod 360) + 360) Mod 360
 List1.AddItem w
 Next
End Sub

Gruß, Rainer