Bonjour à tous,
J'ai un petit soucis avec la formule countifs lorsque je traite des nombres à virgule.
Je m'explique :
J'ai une liste de doses de I6 à I... (cela est variable selon le produit étudié) et je dois compter le nombre de doses comprises dans un intervalle spécifié en B17 (valeur inférieure de l'intervalle) et C17 (valeur supérieure de l'intervalle), et inscrire ce nombre en D17.
Pour ce faire j'ai écris ça:
derl = Range("I" & Rows.Count).End(xlUp).Row
Dim PlDose As Range
Set PlDose = Range("I6:I" & derl)
Dim DInf As Integer
DInf = Range("B17")
Dim DSup As Integer
DSup = Range("C17")
N = Application.WorksheetFunction.CountIfs(PlDose, ">=" & DInf, PlDose, "<=" & DSup)
ActiveSheet.Cells(17, 4).Value = N
Jusqu'alors je ne traitais qu'avec des doses rondes (sans virgule) et la macro fonctionnait correctement. Maintenant je dois aussi traiter avec des doses à virgule et le problème arrive...
L'intervalle étant de 1,9 à 2,1 comme j'utilise la variable "Integer" ça me fait l'arrondi à 2... jusque là je suis d'accord vu qu'Integer permet de gérer des nombres entiers. Pour contourner cela j'ai remplacé "Integer" par "Currency", "Double", "Single" mais rien n'y fait la valeur inscrite est toujours 0. Alors qu'elle devrait être de 88 (et elle est de 82 lorsque j'utilise "Integer", le 82 correspondant à toutes les doses 2,0, sont oubliées les doses comprises entre 1,9 et 2,0 et 2,0 et 2,1).
Surement ai-je une erreur dans mes formules mais je n'arrive pas à l'identifier.
Je vous remercie d'avance pour l'aide que vous saurez m'apporter
Math54