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 :

Compter le nombre d'utilisation d'un mot


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 54
    Par défaut Compter le nombre d'utilisation d'un mot
    Bonjour,
    Pour faire des analyses sur le vocabulaire d’un texte dans un fichier Excel (une phrase par cellule), j’ai besoin de compter le nombre de fois qu’un mot donné y figure.
    Est-ce qui qu’il existe une fonction ou un sous-programme qui permet de le faire à partir d’un programme en VBA sous Excel ?
    Je le fais manuellement en employant la fonction « Remplacer » (du menu « Edition »), par exemple remplaçant « avion » par « avion ». Sur l’écran s’affiche alors dans la boite de dialogue : « Excel a terminé la recherche et a effectué xxx remplacement ». Ainsi j’arrive à savoir combien il y avait de fois « avion » dans le texte.
    Mais quand j’utilise cette fonction « remplacer » dans un programme en VBA je ne sais pas comment récupérer le nombre de remplacement. Voici le code que j’ai essayé en vain :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Selection.Replace what:="avion", Replacement:="avion", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
    Merci de m’aider.
    Henri Laügt

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 122
    Par défaut
    SAlut
    essai avec ca ca devrait le faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Function Avion(TestedCell As Range, LookingFor As String) As Integer
    Dim IntStart As Integer
    Dim IntCumul As Integer
     
    IntStart = 1
    IntCumul = 0
    Do
     IntStart = Len(LookingFor) + InStr(IntStart, TestedCell, LookingFor, vbTextCompare)
     If IntStart <> Len(LookingFor) Then
        IntCumul = IntCumul + 1
     Else
        Exit Do
     End If
    Loop
    Avion = IntCumul
     
    End Function
    Si tu ne veux pas tenir compte de la cast du texte utilise ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Function Avion(TestedCell As Range, LookingFor As String) As Integer
    Dim IntStart As Integer
    Dim IntCumul As Integer
     
    IntStart = 1
    IntCumul = 0
    Do
     IntStart = Len(LookingFor) + InStr(IntStart, UCase(TestedCell), LookingFor, vbTextCompare)
     If IntStart <> Len(LookingFor) Then
        IntCumul = IntCumul + 1
     Else
        Exit Do
     End If
    Loop
    Avion = IntCumul
     
    End Function
    Pour utiliser la function fait comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Lancer()
    Dim NbrAvion As Integer
    NbrAvion = Avion(Range("A1"), "avion")
    End Sub
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    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
    Par défaut
    Je te suggère également de regarder dans l'aide en ligne à Find. Il y a là un exemple pour trouver les occurence d'un mot.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    LeMot = InputBox("Saisir le mot à comptabiliser")
    With Worksheets(1).Range("a1:a500") 'ta plage de données
        Set c = .Find(LeMot, lookin:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                cpt = cpt + 1
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
        msgbox Cpt & " " & LeMot & " trouvés"
    End With

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

Discussions similaires

  1. [RegEx] Compter le nombre d'occurences d'un mot
    Par Shuny dans le forum Langage
    Réponses: 10
    Dernier message: 19/12/2009, 18h58
  2. Compter le nombre d'occurences d'un mot dans un texte
    Par AlexandraS dans le forum Langage
    Réponses: 13
    Dernier message: 26/03/2008, 09h12
  3. Réponses: 4
    Dernier message: 06/12/2007, 16h46
  4. Réponses: 1
    Dernier message: 01/05/2007, 10h39
  5. Réponses: 8
    Dernier message: 18/01/2005, 10h58

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