IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Résultat faux sur fonction CountIf [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de yoyo3d
    Homme Profil pro
    Administratif
    Inscrit en
    Avril 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2002
    Messages : 421
    Par défaut Résultat faux sur fonction CountIf
    Voila, j'au un tableau de planning de 365 jours *24heures (les jours en lignes et les heures en colonnes). Pour chaque période , j'ai le nombre de personne disponible.
    J'ai besoin de savoir combien de périodes contiennent les valeurs 3 ou 4 et c'est la que le bas blesse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nbFPT24h = Application.WorksheetFunction.CountIf(Range("C2:Z" & (nbligneTC + 1)), "=3") Or _
                        Application.WorksheetFunction.CountIf(Range("C2:Z" & (nbligneTC + 1)), "=4")
    nbFPT24h correspond à mon nombre total de planning sur la periode de 24 heures
    nbligneTC correspond à mon nombre de ligne dans mon tableau (j'aurais pu mettre directement 365 , mais comme je compte réutiliser ce tableau meme pour les années bisextiles, j'ai préféré anticiper…)

    Vous pardonnerez la médiocrité du nom de mes 2 variables et aussi la qualité du code, (je suppose que l'on peut faire plus simple…), je souhaite juste savoir pourquoi ce code ne me retourne pas la bonne valeur (a savoir 2 plannigs manquent sur un total général de 877 ).

    calculés séparément, les chiffres sont bons, mais quand j'associe les 2 avec le "Or"...c'est faux!


    Merci à tous pour vos réponses

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbFPT24h = Application.WorksheetFunction.CountIf(Range("C2:Z" & (nbligneTC + 1)), "=3") + Application.WorksheetFunction.CountIf(Range("C2:Z" & (nbligneTC + 1)), "=4")
    Cordialement.

  3. #3
    Membre éclairé
    Avatar de yoyo3d
    Homme Profil pro
    Administratif
    Inscrit en
    Avril 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2002
    Messages : 421
    Par défaut
    Rapide, simple, efficace, merci pour ta réponse surper flash...

    ça fonctionne.

    je peux comprendre cette methode, mais je ne comprends pas le resultat que j'obtenais avant avec le "or".

    en tout cas un grand merci.

    le resultat aurait été logique, si j'avais obtenu soit: 299 (pour 3) soit: 578 (pour 4) soit au total 877, mais la, il me donne 875.... c'est la que je pige pas...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 43
    Par défaut
    Salut,

    Le résultat que tu obtiens est logique car tu lui demande de te dire combien tu as de 3 OU de 4 et non combien tu as de 3 ET de 4 comme tu le souhaite. Donc en remplaçant ton OR par + dans ton code, tu résoudra ton problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbFPT24h = Application.WorksheetFunction.CountIf(Range("C2:Z" & (nbligneTC + 1)), "=3")  +Application.WorksheetFunction.CountIf(Range("C2:Z" & (nbligneTC + 1)), "=4")

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 30/01/2014, 12h59
  2. [XL-2007] Problème fonction CountIfs sur plusieurs classeurs fermés
    Par Qril59 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 25/04/2013, 09h45
  3. Réponses: 0
    Dernier message: 16/03/2012, 10h03
  4. Résultat de la fonction localtime en anglais sur système français
    Par dubis dans le forum Programmation et administration système
    Réponses: 12
    Dernier message: 16/09/2010, 18h15
  5. Réponses: 1
    Dernier message: 07/02/2008, 21h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo