Private Sub showW_Click()
With uf2
Dim L1#, T1#, OperX&, OperY&
If Not .Visible Then
ddecx = 0: ddecy = 0 '1er lancement
.StartUpPosition = 0
With ActiveWindow
PtoPx = (.ActivePane.PointsToScreenPixelsY(72) - .ActivePane.PointsToScreenPixelsY(0)) / 72 'coeff point to pixel
Z = .Zoom / 100
L1 = (.ActivePane.PointsToScreenPixelsX(Int([b3].Left)) / PtoPx) * Z 'placement partie mobile
T1 = .ActivePane.PointsToScreenPixelsY(Int([b3].Top)) / PtoPx * Z
End With
.Left = L1
.Top = T1
.Show 0
ddecx = L1
ddecy...
Sub test()
ancien = 128
nouveau = 131
Debug.Print "128-131 =" & ancien - nouveau
Debug.Print "en fait les résultat sont inversé car 131 est > 128 de 3 et pas -3" & vbCrLf & "nouveau(" & nouveau & ") est bien à 3 de plus que l'ancien(" & ancien & ")"
Debug.Print "***********************"
Debug.Print " à l inverse "
'inverse
ancien = 131
nouveau = 128
Debug.Print " 131-128 =" & ancien - nouveau
Debug.Print "en fait les résultat sont inversé car 128 est < 131 de -3 et pas 3" & vbCrLf & "nouveau(" & nouveau & ") est bien à (-)3 de moins que l'ancien(" & ancien & ")"
End Sub
Il est normal que Sgn(expression) * expression retourne forcément toujours une valeur positive.
Ben bien sûr que SI !!!!!NON NON NON NON !!!!!!
peut être que ce qui arrive dans le debug sera plus intelligible
VB:Sub test() ancien = 128 nouveau = 131 Debug.Print "128-131 =" & ancien - nouveau Debug.Print "en fait les résultat sont inversé car 131 est > 128 de 3 et pas -3" & vbCrLf & "nouveau(" & nouveau & ") est bien à 3 de plus que l'ancien(" & ancien & ")" Debug.Print "***********************" Debug.Print " à l inverse " 'inverse ancien = 131 nouveau = 128 Debug.Print " 131-128 =" & ancien - nouveau Debug.Print "en fait les résultat sont inversé car 128 est < 131 de -3 et pas 3" & vbCrLf & "nouveau(" & nouveau & ") est bien à (-)3 de moins que l'ancien(" & ancien & ")" End Sub
128-131 =-3
en fait les résultat sont inversé car 131 est > 128 de 3 et pas -3
nouveau(131) est bien à 3 de plus que l'ancien(128)
***********************
à l inverse
131-128 =3
en fait les résultat sont inversé car 128 est < 131 de -3 et pas 3
nouveau(128) est bien à (-)3 de moins que l'ancien(131)
Ce que je démontre est aussi bien pour une valeur positive que négative.je sais très bien pour le positif mais ce n'est pas le résultat recherché
puisqu'on peut remplacer SGN(expression) * ABS(expression) par expression tout seul qui est bien évidemment la même chose.
Oui, et heureusement !100-150 fera toujours -50 mais 150-100 fera 50
Je ne sais pas quelle opération te pose problème (quelle opération tu utilises, quels résultat tu penses obtenir, et quels résultats tu obtiens réellement), donc difficile pour moi t'aider, mais si tu as compris toutes les démonstrations que je t'ai faites ici (en particulier que SGN(expression) * ABS(expression) c'est pareil que expression), alors tu ne devrais plus avoir de problème.une contrainte d'ordre dans le nombre 1 - nombre2 ou nombre1 doit être le nombre(positif ou négatif) au quel on enlève nombre2 il sera forcement nécessaire d'utiliser cette formule
SGN(expression) * ABS(expression) sera obligatoire pour avoir le bon
Sans voir l'opération et sans connaître la valeur de chacun des opérandes, pas simple de t'aider.si j'ai mon uf2 a 123 de left et que le repositionne à 128 de left je devrait avoir dans ddecx 5
si j'ai mon uf2 a 128 de left et que le repositionne à 123 de left je devrait avoir dans ddecx -5
hors dans les deux sens il additionne j'obtiens 133
T'inquiète, ça ne titille pas grand chose et ça ne nous a pas fait fumer les neurones vu que les additions ça doit s'apprendre en CE1 ou CE2 (mais c'est que pour moi ça date de quelles décennies...)vous vous êtes focalisé sur une formule qui titille votre science