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 :

[VBA-E] probleme avec la fonction countif


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut [VBA-E] probleme avec la fonction countif
    Bonjour

    Je suis nouveau, j'espère que je place ma question au bon endroit.

    Je voudrais utiliser la fonction countif (voir ce que j'ai fais ci-dessous) en allant rechercher des mots dans un tableau mais en respectant la casse... or je ne sais pas faire.

    Quelqu'un peut il m'aider.... Merci !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For item = 1 To (i - 2)
         valeurachercher = Feuil5.Range("B" & (3 + incrément)).FormulaR1C1
     
            For numérosalarié = 1 To compteurnoms
                 'janvier
                 résultat = Application.CountIf(Feuil5.Range("janv" & numérosalarié), valeurachercher)
                 Feuil5.Range("D" & (numérosalarié + numéroligne + incrément)).FormulaR1C1 = résultat * 0.25
    Balises Code /Code ajoutées par ouskel'n'or

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Bonjour adamm,
    Bienvenue sur le forum. Tu es sur le bon...
    "countif", connais pas, sans doute un pb de version. Néanmoins, et déjà, au lieu de

    Feuil5.Range("D" & (numérosalarié + numéroligne + incrément)).FormulaR1C1 = résultat * 0.25
    Mets déjà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          Feuil5.Range("D" & (numérosalarié + numéroligne + incrément)).Formula = résultat * 0.25
    FormulaR1C1 est utilisé si tu mets une formule, non une valeur

    Pour countif, "quelqu'un" va s'occuper de toi...

    Bonne chance


    NB - Tu devrais lire les règles du forum, elles t'apprennent plein de choses utiles pour tes recherches

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 130
    Points : 166
    Points
    166
    Par défaut
    salut adamm

    la fonction countif va rechercher en respectant la casse la valeur à chercher

    ici je cherche la casse de Adamm dans la colonne A
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub RechercheNbOccurence()
    ValeurAChercher = "Adamm"
    Résultat = Application.CountIf(Range("A:A"), ValeurAChercher)
    MsgBox ("Le texte " & ValeurAChercher & " est présent : " & Résultat & " fois.")
    End Sub
    je ne vois pas ou est le problème dans ton code
    Que represente
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil5.Range("janv" & numérosalarié)
    une cellule ou une plage de cellules
    tu dis
    à+

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut fonction countif
    Tout d'abord merci pour vos réponses et vos conseil.

    pour répondre à la question de bouley

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil5.Range("janv" & numérosalarié)
    est une plage de cellule (mois de janvier) dans laquelle des personnes inscrivent au jour le jour leurs activités. Ma macro (je suis plus bricoleur qu'informaticien) permet en fin d'année de récupèrer toutes les activités (par extraction des 4 premières lettres) et totalise le temps passé. Mais je n'arrive pas à distinguer L (e de L (E par exemple....

  5. #5
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 130
    Points : 166
    Points
    166
    Par défaut
    que contient valeurachercher alors ?
    les 4 lettres ?
    Que contiennent les celulles de la colonne B ?
    @+

  6. #6
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    ouskel' :
    La fonction CountIf est la version langage VBA de la fonction NB.SI des formules Excel.

    adamm :
    1. Pour pouvoir utiliser les références d'objet Range dans une boucle utilise la propriété (ou l'objet, sais plus) Cell. Y'a pleins d'exemples sur le forum. Et y'a toujours l'aide de VBA pour les détails.
    2. J'espère que tu ne mets pas de caractères accentués dans les noms de variables et que le code que tu nous a montré n'est qu'un dommy pour notre compréhension. Car le compilateur et les accents, ça fé pas vrémang bon ménageu, vé!

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par bouley
    que contient valeurachercher alors ?
    les 4 lettres ?
    Que contiennent les celulles de la colonne B ?
    @+
    Les cellules de la colone B contiennent les 4 lettres du mot à chercher dans la plage "janvier"

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par zazaraignée
    Salut

    2. J'espère que tu ne mets pas de caractères accentués dans les noms de variables et que le code que tu nous a montré n'est qu'un dommy pour notre compréhension. Car le compilateur et les accents, ça fé pas vrémang bon ménageu, vé!

    Si !!! encore un truc que je savais pas

  9. #9
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 130
    Points : 166
    Points
    166
    Par défaut
    Bonjour Adamm

    Pour ton cas il faut alors rajouter une * à la fin de ta variable valeurachercher pour que CountIf compte toutes les cellules qui commencent par les lettres qu'il y a avant *.
    Tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    valeurachercher = Feuil5.Range("B" & (3 + incrément)).Formula & "*"
    @+

Discussions similaires

  1. [VBA-E]Probleme avec la fonction Range
    Par pec dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2006, 11h36
  2. [LG] Problème avec la Fonction ReadLn en fin de programme
    Par killermano dans le forum Langage
    Réponses: 6
    Dernier message: 23/07/2005, 15h16
  3. [VBA-E] problème avec le sendkeys
    Par darkpocket dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/02/2005, 14h25
  4. [LG]Probleme avec une fonction
    Par xavier1936 dans le forum Langage
    Réponses: 7
    Dernier message: 08/02/2005, 22h48

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