[VBA EXCEL] Overflow

Overflow [VBA EXCEL] - VB/VBA/VBS - Programmation

Marsh Posté le 05-03-2003 à 12:46:14    

Salut à tous,
 
J'ai fait une macro en VBA sous Excel hyper simple :
Le but est de savoir, pour un registre de 32 bits, quel bit est à 1.
 
Dans une cellule excel, je mets :
=mask( 12354, 7)
Et ca me retourne TRUE si le bit 7(8eme bit) de 12354 est à 1.
 
La macro est la suivante :

Code :
  1. Function mask(valeur, masque) As Boolean
  2. mask = valeur And masque
  3. End Function


 
Le problème est qu'il y a un overflow avec le bit 31 (32eme bit).
Dans ce cas, l'appel est le suivant :
=mask (12354, 2147483648)
Et là, il y a un overflow à cause de 2147483648 (2^31) vu que Excel s'attend à avoir un nombre signé et moi je veux lui donner un nombre non signé.
 
Quelqu'un voit une solution?
Merci,
vw

Reply

Marsh Posté le 05-03-2003 à 12:46:14   

Reply

Marsh Posté le 05-03-2003 à 12:51:23    

Et si je fais :

Code :
  1. Function mask(valeur As Long, masque) As Boolean
  2. Dim result As Long
  3. result = valeur And masque
  4. If (result = 0) Then
  5.     mask = False
  6. Else
  7.     mask = True
  8. End If
  9. End Function


 
Ca ne marche pas non plus.


Message édité par Combi_A_Vendre le 05-03-2003 à 12:51:36
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed