VBA : utilisation d'un test

flyjodel

XLDnaute Junior
Bonjour à tous,

je m'arrache les cheveux sur un truc idiot je pense, mais je n'arrive pas à comprendre.

J'ai une valeur qui doit être positive ou négative selon l'état d'une autre variable. Concrètement je traite de coordonnées géographiques (latitude), exprimées par une valeur et un suffixe Nord ou Sud, je voudrais que la valeur de la latitude soit positive vers le nord et négative vers le sud. Avec un test, facile n'est-ce pas ?

Mais j'ai souhaité intégrer cela dans un code VBA de la manière suivante :
Code:
Sub machin()
    Dim Latitude, Longitude, SuffixeLat, SuffixeLon, CoordonneeLat
    
    Latitude = 50.85212
    SuffixeLat = "S"
    Longitude = 2.816544
    SuffixeLon = "E"
    
    CoordonneeLat = Latitude * ((SuffixeLat = "S") * (-2) + 1)
End Sub

dans mes plus doux rêves, j'osais espérer que SuffixeLat="S" prendrait la valeur VRAI, qu'en la multipliant par -2, cela ferait -2, puis qu'en lui ajoutant 1 cela ferait -1, multiplié par Latitude, qui lui confèrerait le signe NEGATIF.

Mais non, ça donne une multiplication par 3. Pourquoi ?

pourtant cela fonctionne quand je fais la même chose dans les cellules du tableur...

évidemment la solution est :
Code:
CoordonneeLat = Latitude * ((SuffixeLat = "N") * 2 - 1)

mais bon, j'aime comprendre...
Merci !!!

[edit]
j'ai compris.
Dans le tableur, VRAI = 1 / FAUX = 0
dans VBA : TRUE = -1 / FALSE = 0

c'est n'importe quoi ! GRR
 
Dernière édition:

Statistiques des forums

Discussions
312 327
Messages
2 087 314
Membres
103 515
dernier inscrit
Cherbil12345