Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres Valeurs avec + ou - un écart avec la fonction MOD en VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Nain porte quoi

XLDnaute Occasionnel
Bonjour,

je cherche comment simplifier un test d'une valeur qui doit être (par exemple) 10 avec +1 ou -1 (ou autre mais toujours égaux) de différence en évitant de répéter le test comme ci dessous
If machinchosetrucbidulevachementlonetpasfacilealire >= 9 Or machinchosetrucbidulevachementlonetpasfacilealire <= 11 Then

Y'a longtemps j'avais trouvé sur un forum la fonction qui permettait de faire ça avec MOD, mais je ne retrouve plus et je suis certain que le forum saura me rappeler cet oubli malheureux

Merci
 
Solution
Bonjour
Je ne vois pas trop à quoi pourrait ici servir l'utilisation du modulo, dès lors que deux nombres distincts peuvent retourner un même modulo. Ex : 21 mod 10 et 11 mod 10 ont la même valeur (1) alors que seul 11 présente un écart maximum de 1 par rapport à 10 ...

Je te suggère de rester simple avec, une fonction de ce genre :
VB:
Private Function dans_limite(nb As Double, proche_de As Double, delta As Integer) As Boolean
  If Abs(nb - proche_de) <= delta Then dans_limite = True
End Function
appelable par exemple ainsi :
Code:
 MsgBox dans_limite(Range("A1").Value, 10, 1)

EDIT : Un salut à PierreJean (croisés) dont la solution est de même nature que la mienne.
Bonjour
Je ne vois pas trop à quoi pourrait ici servir l'utilisation du modulo, dès lors que deux nombres distincts peuvent retourner un même modulo. Ex : 21 mod 10 et 11 mod 10 ont la même valeur (1) alors que seul 11 présente un écart maximum de 1 par rapport à 10 ...

Je te suggère de rester simple avec, une fonction de ce genre :
VB:
Private Function dans_limite(nb As Double, proche_de As Double, delta As Integer) As Boolean
  If Abs(nb - proche_de) <= delta Then dans_limite = True
End Function
appelable par exemple ainsi :
Code:
 MsgBox dans_limite(Range("A1").Value, 10, 1)

EDIT : Un salut à PierreJean (croisés) dont la solution est de même nature que la mienne.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…