Epi-phénomène avec les variables

Bonsoir,

L'autre jour, en cherchant une solution pour un souci d'un demandeur, je me suis confronté à un problème que je n'avais jamais rencontré (mais qui existe depuis??????)

Lorsqu'on déclare des variables, c'est bien pour les "typer"...

Or, avec des variables en "Byte", on ne peut les soustraire si le résultat est négatif, même si on a pris la précaution de déclarer la variable du résultat en "Long"...

Exemple :

Sub essai_1()
Dim Num1 As Byte, Num2 As Byte
Dim Soustract As Long
Num1 = 8: Num2 = 4
Soustract = Num1 - Num2 ' pas de souci
Soustract = Num2 - Num1 ' ça marche pô!!!
End Sub

Sub essai_2()
Dim Num1 As Long, Num2 As Long
Dim Soustract As Long
Num1 = 8: Num2 = 4
Soustract = Num1 - Num2 ' pas de souci
Soustract = Num2 - Num1 ' ici, ça marche!!!
End Sub

Je ne sais pas si vous avez déjà remarqué ce phénomène...

En gros, le Type "Byte", faut vraiment bien le définir, en fonction des besoins ultérieurs dans le code...

Bonne soirée

Bonjour,

dans votre cas exemple, il suffit de faire porter le "-" sur un entier naturel "transparent" dans le calcul :

Sub essai_2()
Dim Num1 As Byte, Num2 As Byte
Dim Soustract As Long
Num1 = 8: Num2 = 4
Soustract = Num1 - Num2 ' pas de souci
Cells(1, 1) = Soustract
Soustract = Num2 - (1 * Num1) ' ici, ça marche!!!
Cells(1, 2) = Soustract
End Sub

Ici le "-" est porté indirectement par le "1" et ça marche...

Ou plutôt, grâce à la multiplication, le Byte se transforme en "Entier"... mais reste comme même un byte (au masculin ! Va s'en dire !)

Mais le constat du départ est amusant, comme quoi les voix de l'informatique...

@ bientôt

LouReeD

Mais le constat du départ est amusant, comme quoi les voix de l'informatique...

@ bientôt

LouReeD

Effectivement, "amusant" pourrait convenir....

Et la solution, pour contourner....

ça inciterait presque à ne pas déclarer ses variables....

Merci pour ton retour

A ce sujet, je crois que Sébastien n'est pas un féru des déclarations de variables et BoisgontierJacques non plus.

Je m'entends : pas de déclaration typée à outrance. Quelque fois mieux vaut laisser faire VBA...

@ bientôt

LouReeD

Rechercher des sujets similaires à "epi phenomene variables"