Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1380 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA EXCEL] Overflow

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA EXCEL] Overflow

n°323400
Combi_A_Ve​ndre
Posté le 05-03-2003 à 12:46:14  profilanswer
 

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

mood
Publicité
Posté le 05-03-2003 à 12:46:14  profilanswer
 

n°323402
Combi_A_Ve​ndre
Posté le 05-03-2003 à 12:51:23  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA EXCEL] Overflow

 

Sujets relatifs
[VBA Excel] Enregistrer sous ...[EXCEL] comment comparer 2 cellules ?
[VBA-Access] Modifier le contenu d'un champ sans messageProblème en VBA pour remplir une case ! ! ! !
Construire une base de données pour fichiers EXCEL![VBA] arreter l'execution d'une macro en pressant une touche ...
Code pour enlever excel de la mémoire en VBAFermeture des sessions Excel
Plus de sujets relatifs à : [VBA EXCEL] Overflow


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR