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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  \ et Mod qui ne fonctionnent pas

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

\ et Mod qui ne fonctionnent pas

n°2402710
P4board
Posté le 06-12-2021 à 10:41:29  profilanswer
 

Bonjour, j'essaye d'utiliser \ et Mod en VBA sous Excel pour avoir la partie entière et la partie décimale. Quand mon nombre est entier, cela fonctionne, mais quand mon nombre est réel, ça ne fonctionne pas :
 
9 \ 2 = 4
9 Mod 2 = 1
 
9.5 \ 2 = 5
9.5 Mod 2 = 0
 
9 \ 1 = 9
9 Mod 1 = 0
 
9.5 \ 1 = 10
9.5 Mod 1 = 0
 
Les fonctions QUOTIENT et MOD en feuille de calcul fonctionnent parfaitement.
 
Une idée ?
 
Merci,
 
Olivier.

mood
Publicité
Posté le 06-12-2021 à 10:41:29  profilanswer
 

n°2402757
P4board
Posté le 06-12-2021 à 12:45:28  profilanswer
 

-


Message édité par P4board le 06-12-2021 à 12:47:14
n°2403774
jpl38
Posté le 14-12-2021 à 20:52:25  profilanswer
 

P4board a écrit :

Bonjour, j'essaye d'utiliser \ et Mod en VBA sous Excel pour avoir la partie entière et la partie décimale. Quand mon nombre est entier, cela fonctionne, mais quand mon nombre est réel, ça ne fonctionne pas :
 
...


L'aide dans l'éditeur VBA d'Excel précise que les opérateurs \ et Mod arrondissent les opérandes à virgules en Byte, Integer ou Long avant exécution.
Dans ton exemple, 9.5 est arrondi à 10 avant le calcul du quotient et du reste.

n°2403779
MaybeEijOr​Not
but someone at least
Posté le 14-12-2021 à 21:08:36  profilanswer
 

Si tu veux diviser des nombres décimaux par des entiers tu peux commencer par soustraire et stocker tes décimales puisqu'elles ne joueront que sur le reste.
Tu prends ton nombre décimal, tu le tronques, en soustrayant ton nombre décimal par sa troncature tu obtiens une partie du reste qu'il suffira d'ajouter à ton reste.

 

Si tu veux diviser par autre chose qu'un entier, tu multiplies ton dividende et ton diviseur par 10 à la puissance du nombre de décimales (du diviseur) pour obtenir un entier. Ensuite en appliquant le mod tu obtiendras le bon quotient, mais il faudra diviser ton reste par "10 à la puissance du nombre de décimales (du diviseur)".

 

Tu peux mixer ces deux techniques pour parer à tous les cas.

 

EDIT : en VBA tu peux aussi appeler les fonctions des feuilles de calcul via l'objet "WorksheetFunction" https://docs.microsoft.com/fr-fr/of [...] sual-basic


Message édité par MaybeEijOrNot le 14-12-2021 à 21:10:15

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.

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

  \ et Mod qui ne fonctionnent pas

 

Sujets relatifs
Compléter un Mod de SupCom simple en VBCompiler GCC c'est bien... mais les includes paths ne fonctionnent pas
liens ne fonctionnent plusLiens hypertextes sont inactif sur mozilla mais fonctionnent sur IE
Session/Cookie fonctionnent qu'avec Firefox HELP[RESOLU] Mes liens ne fonctionnent plus
[RESOLU] Mes liens ne fonctionnent plus[css] boutons sous un div ne fonctionnent plus
la code PHP et le code HTML qui se trouve aprés ne fonctionnent pas!les instructions fonctionnent mais pas le script
Plus de sujets relatifs à : \ et Mod qui ne fonctionnent pas


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