Countifs et nombre à virgule

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

Bonjour,

Type DInf et DSup As Double !

(NB: Les déclarations sont toujours à mettre systématiquement en tête de procédure...)

Cordialement.

MFerrand a écrit :

Bonjour,

Type DInf et DSup As Double !

(NB: Les déclarations sont toujours à mettre systématiquement en tête de procédure...)

Cordialement.

J'ai effecivement utilisé DInf et DSup as Double, mon code est devenu le suivant :

derl = Range("I" & Rows.Count).End(xlUp).Row

    Dim PlDose As Range
    Set PlDose = Range("I6:I" & derl)

    Dim DInf As Double
        DInf = Range("B17")
    Dim DSup As Double
        DSup = Range("C17")
    N = Application.WorksheetFunction.CountIfs(PlDose, ">=" & DInf, PlDose, "<=" & DSup)
        ActiveSheet.Cells(17, 4).Value = N

Mais ça ne résout en rien le problème, la valeur affichée pour N est 0

La raison n'est pas visible dans ce que tu présentes.

Pourtant je n'ai que ça! Le début de la macro permet juste d'effacer des données...

La liste des doses est extraite à l'aide d'une autre macro

Celle-ci n'a que pour vocation de compter le nombre de dose dans un intervalle spécifié.

Lorsque mes doses étaient des nombres sans virgules je n'avais aucun soucis, depuis aujourd'hui on me demande de travailler sur une liste de nombre à virgule, mais plus rien ne fonctionne :-/

La raison est nécessairement à chercher dans le fichier !

As-tu au moins déjà essayé de taper manuellement la formule en D17 pour comparer le résultat... ?

Oui oui, lorsque j'utilise manuellement NB.SI.ENS je trouve la bonne valeur.

Merci d'explorer le problème et de me proposer des solutions .


C'est vraiment les virgules... Si je prends les données extraites, les multiplie par 10 pour avoir des nombres entiers je trouve les bonnes valeurs.

Lorsque les doses sont avec des virgules elles sont sous le format nombre avec 2 décimales (exemple : 1,53) Par contre lorsque ce sont des doses sans virgules elles sont aussi au format nombre mais sans décimales (exemple 100). Dès que j'ai des décimales cela ne fonctionne plus.

Je ne sais pas comment contourner ce problème (qui est étrange soit dit en passant)

Je n'ai pas de fichier à explorer !

Ne mélange pas le format (qui définit ce que tu vois dans la cellule) avec la valeur contenue dans la cellule. Ceci étant si ta cellule est au format nombre avec 2 décimales, toutes les valeurs numériques y seront affichées avec 2 décimales, ton propos est donc un peu obscur. Es-tu sûr que tes valeurs sont numériques !

Rechercher des sujets similaires à "countifs nombre virgule"