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 :

Occurence texte dans plage


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 27
    Points : 15
    Points
    15
    Par défaut Occurence texte dans plage
    Bonjour à tout le monde,

    Je dois créer une fonction afin de calculer le nombre de fois où un texte est présent dans une plage de cellules.

    J'ai codé ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function Comptetxt(Liste As Range, Nom As String) As Integer
        Comptetxt = Application.CountIf(Liste, "=" & Nom)
    End Function
    , mais cette fonction me donne le nombre de cellules où le texte se reproduit exactement or je cherche le texte à l'intérieur des plages.
    Je m'explique, si je recherche le prénom "Pierre", j'aimerai que la cellule "Jean Pierre" soit comptabilisée.

    Est-ce que quelqu'un a une idée ?
    Merci d'avance.

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function Comptetxt(Liste As Range, Nom As String) As Integer
    Comptetxt = Application.CountIf(Liste, "*" & Nom & "*")
    End Function
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    Bonjour Mercatog,
    Merci pour ta réponse mais par compte maintenant la macro me comptabilise aussi la série de caractères à l'intérieur d'un mot.
    Exemple toujours avec "Pierre": on me comptabilise "Pierrette" ce que je ne veux pas.

    Quel est le but des "*" ?
    Merci d'avance.

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    * est un caractère générique qui remplace toute chaine
    Sinon, on compte le mot pile poile, le mot avec espace après et mot avec espace avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function Comptetxt(Liste As Range, Nom As String) As Integer
    Comptetxt = Application.CountIf(Liste, Nom) + Application.CountIf(Liste, "* " & Nom) + Application.CountIf(Liste, Nom & " *")
    End Function
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    Mercatog,

    Merci pour ton aide ça fonctionne !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/01/2013, 17h56
  2. [XL-2007] liste les occurences distinctes dans une plage
    Par gui-llaume dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 19/11/2012, 18h36
  3. [XL-2007] recherche d'une valeur texte dans une plage de cellules
    Par blackstrange dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 13/07/2012, 16h26
  4. Insérer un text dans une plage de cellules fusionnées
    Par yassinefeki dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/05/2010, 20h29
  5. Récupérer occurences de texte dans Excel
    Par fgreg306 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/12/2006, 20h29

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