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 les mots et que les mots dans Excel


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Paris
    Inscrit en
    Décembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Paris
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 19
    Points : 6
    Points
    6
    Par défaut Compter les mots et que les mots dans Excel
    Bonjour à tous,

    J’ai besoin, dans le cadre de mon métier, de compter des mots.
    J’ai voulu utilisé la solution de Word mais le comptage n’est pas du tout adapté. Dans Word, les chiffres sont comptés comme mots ; les symboles également voir même la ponction, si elle est précédée et suivie d’un espace.
    En fait, je ne dois compter que les « vrais mots ».

    Étant plutôt pas mauvais sur Excel, j’ai construit une formule qui répond quasiment à tous mes besoins :
    Je remplace les 36 caractères suivants par un espace (sauf le « - » pour que les noms composés comme tire-bouchon soient compter pour un mot).
    , ? ; . : / ! § & ' ( - _ @ ) = 1 2 3 4 5 6 7 8 9 0 € $ £ % + * « » > <

    Les formules qui fonctionnent sont copier en fin de message.

    Ces formules fonctionnent mais sont lourdes et les plages ne sont pas dynamiques.
    J’ai pensé à la fonction DECALER, pour celle concernant la plage mais ça ne marche pas trop bien.
    J’ai aussi pensé à nommer ma formule mais, dans ce cas, il faut toujours rester dans le même fichier, voir le même onglet.

    Je cherche donc une solution pour les transformer en VBA, afin de créer 2 macros.

    Et c’est là où ça coince. Car, si je maîtrise un peu Excel, je n’y connais rien en VBA.

    Je suis donc à la recherche d’aide ; si le sujet intéresse quelqu’un, je suis preneur de tout conseil.

    Je joins aussi un fichier dans lequel les 2 fonctions sont en place :
    Cellule A12 pour celle concernant la cellule
    Cellule A14 pour celle concernant la plage de cellule
    compter _mots_Excel.xlsx

    Un grand merci à tous

    Pour une CELLULE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NBCAR(SUPPRESPACE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;",";" ");"?";" ");";";" ");".";" ");":";" ");"/";" ");"!";" ");"§";" ");"&";" ");"'";" ");"(";" ");"-";"");"_";" ");"@";" ");")";" ");"=";" ");"1";" ");"2";" ");"3";" ");"4";" ");"5";" ");"6";" ");"7";" ");"8";" ");"9";" ");"0";" ");"€";" ");"$";" ");"£";" ");"%";" ");"+";" ");"*";" ");"«";" ");"»";" ");">";" ");"<";" ")))-NBCAR(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;",";" ");"?";" ");";";" ");".";" ");":";" ");"/";" ");"!";" ");"§";" ");"&";" ");"'";" ");"(";" ");"-";"");"_";" ");"@";" ");")";" ");"=";" ");"1";" ");"2";" ");"3";" ");"4";" ");"5";" ");"6";" ");"7";" ");"8";" ");"9";" ");"0";" ");"€";" ");"$";" ");"£";" ");"%";" ");"+";" ");"*";" ");"«";" ");"»";" ");">";" ");"<";" ");" ";""))+1
    Pour une PLAGE DE CELLULE (fonction matricielle) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {=SOMME(SI(NBCAR(SUPPRESPACE(A1:D10))=0;0;SI(NBCAR(SUPPRESPACE(A1:D10))=1;0;NBCAR(SUPPRESPACE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1:D10;",";" ");"?";" ");";";" ");".";" ");":";" ");"/";" ");"!";" ");"§";" ");"&";" ");"'";" ");"(";" ");"-";"");"_";" ");"@";" ");")";" ");"=";" ");"1";" ");"2";" ");"3";" ");"4";" ");"5";" ");"6";" ");"7";" ");"8";" ");"9";" ");"0";" ");"€";" ");"$";" ");"£";" ");"%";" ");"+";" ");"*";" ");"«";" ");"»";" ");">";" ");"<";" ")))-NBCAR(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1:D10;",";" ");"?";" ");";";" ");".";" ");":";" ");"/";" ");"!";" ");"§";" ");"&";" ");"'";" ");"(";" ");"-";"");"_";" ");"@";" ");")";" ");"=";" ");"1";" ");"2";" ");"3";" ");"4";" ");"5";" ");"6";" ");"7";" ");"8";" ");"9";" ");"0";" ");"€";" ");"$";" ");"£";" ");"%";" ");"+";" ");"*";" ");"«";" ");"»";" ");">";" ");"<";" ");" ";""))+1)))}

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 910
    Points : 28 889
    Points
    28 889
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Voici une fonction vite écrite mais il y a certainement mieux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function CompteLesMots(Mot As String) As Integer
     Const CarExclus As String = ",?;.:/!&'(-_@)=1234567890€$£%+*«»><"
     Dim r As Integer, table() As String
     For r = 1 To Len(CarExclus)
      Mot = Replace(Mot, Mid(CarExclus, r, 1), " ")
     Next
     table = Split(Application.Trim(Mot), " ")
     CompteLesMots = UBound(table) + 1
    End Function
    La procédure de test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Test()
     MsgBox CompteLesMots(ThisWorkbook.Worksheets("Feuil1").Range("A1")) & " mots"
    End Sub
    Pour l'utiliser comme fonction personnalisée dans excel

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Paris
    Inscrit en
    Décembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Paris
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    Super. Merci c'est top mais ...
    Je ne sais pas comment installer cette fonction.
    Si tu as 2mn pour m'expliquer.
    Bonne fin de journée,

  4. #4
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonsoir le forum, Obelix77, Philippe

    J'avais trouvé ce code mais bizarrement le "trim" fonctionne avec une formule mais ne fonctionne pas pour supprimer les espaces superflus à l'interieur de "chaine", donc avec adaptation, ça vaut ce que ça vaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub comptage_mot()
    'la phrase en A1
    'en A2 resultat de la variable "chaine"
    'en A3, une formule
    Dim obj As Object
    Dim chaine
      Set obj = CreateObject("vbscript.regexp")
      obj.Global = True
      obj.Pattern = "[0-9,:.¨!?^\/]|/" 'les caractères a supprimer, tu peux en ajouter
      chaine = Range("A1")
      chaine = obj.Replace(Range("A1"), "")
      Range("A2") = Trim(chaine)
      MsgBox UBound(Split(Trim(Range("A3")), " ")) + 1
    End Sub
    je cherche encore

    Bonne soirée

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 910
    Points : 28 889
    Points
    28 889
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Attention que j'ai fais une modification de la fonction à 16h58.
    Tu vas dans l'éditeur VBA (Alt+F11), tu insères un module (Insertion/Module), tu écris Option Explicit en tête de module et ensuite tu copies/colles la fonction dans celui-ci (après Option Explicit)
    Si tu veux placer la procédure Test, tu fais de même.

    Important : Il faudra sauver le classeur comme un classeur contenant des macros.

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 910
    Points : 28 889
    Points
    28 889
    Billets dans le blog
    53
    Par défaut
    Bonjour Dominique,
    J'avais trouvé ce code mais bizarrement le "trim" fonctionne avec une formule mais ne fonctionne pas pour supprimer les espaces superflus à l'interieur de "chaine", donc avec adaptation, ça vaut ce que ça vaut
    Trim en VBA supprime les espaces avant et après mais pas entre les espaces.
    D'où ma modification. Alors que Replace(Texte, " ","") remplace tous les espaces, Application.Trim se comporte comme Supprespace et conserve un caractère espacé s'il y en a plusieurs.

  7. #7
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    ...Application.Trim se comporte comme Supprespace et conserve un caractère espacé s'il y en a plusieurs.
    Merci Philippe, j'en apprends toujours

    Bonne soirée

    donc, ce code corrigé doit suffire également ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub comptage_mot()
    'la phrase en A1
    Dim obj As Object
    Dim chaine
      Set obj = CreateObject("vbscript.regexp")
      obj.Global = True
      obj.Pattern = "[0-9,:.¨!?^\/]|/" 'les caractères a supprimer, tu peux en ajouter
      chaine = Application.Trim(obj.Replace(Range("A1"), ""))
      MsgBox UBound(Split(chaine, " ")) + 1
    End Sub

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 910
    Points : 28 889
    Points
    28 889
    Billets dans le blog
    53
    Par défaut
    Bonjour Daniel,
    Je me doutais bien qu'avec les caractères génériques il avait une meilleure solution mais je n'ai pas assez d'expérience avec ceux-ci que pour les proposer.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Paris
    Inscrit en
    Décembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Paris
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    Merci Philippe

    Ca fonctionne parfaitement. Elle fonctionne nickel sauf pour le signe ".

    Petit problème : J'ai bien la fonction qui c'est créée et qui apparaît dans la liste des fonctions mais que dans le fichier PERSONAL.XLB. Je n'y ai accès dans aucun autre fichier, même enregistré en XLM.

    Cette fonction fonction nickel sur une cellule. Il ne serait pas possible de l'étendre à une plage de cellule?

  10. #10
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 910
    Points : 28 889
    Points
    28 889
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Ca fonctionne parfaitement. Elle fonctionne nickel sauf pour le signe ".
    Il faut doubler les apostrophes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Const CarExclus As String = ",?;.:/""""!&'(-_@)=1234567890€$£%+*«»><"
    Petit problème : J'ai bien la fonction qui c'est créée et qui apparaît dans la liste des fonctions mais que dans le fichier PERSONAL.XLB. Je n'y ai accès dans aucun autre fichier, même enregistré en XLM.
    Comme tu as demandé de l'aide sans aucune précision, je ne savais pas que tu avais le fichier PERSONAL.XLB
    Ce que je t'ai expliqué alors n'est pas correct, il faut créer un module dans PERSONAL.XLB ou placer la fonction à la suite de test autres procédures et ton classeur peut être sauvé normalement.
    Tu peux aussi copier la fonction proposée par Dominique qui est plus élégante.
    Cette fonction fonction nickel sur une cellule. Il ne serait pas possible de l'étendre à une plage de cellule?
    Soit, tu fais une boucle en VBA qui invoque cette fonction et qui écrit dans une cellule son résultat soit tu recopies la formule comme une formule normale d'Excel

  11. #11
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Comme j'avais commencé à faire un code, j'insiste avec ce fichier joint, à adapter, même si une fonction perso est bien
    Fichiers attachés Fichiers attachés

  12. #12
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 910
    Points : 28 889
    Points
    28 889
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'ai raccourci la fonction pour éviter de passer par la variable tableau qui n'a pas de raison d'être puisque l'on n'a pas besoin des mots.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function CompteLesMots(Mot As String) As Integer
     Const CarExclus As String = ",?;.:/""""!&'(-_@)=1234567890€$£%+*«»><"
     Dim r As Integer
     For r = 1 To Len(CarExclus)
      Mot = Replace(Mot, Mid(CarExclus, r, 1), " ")
     Next
     CompteLesMots = UBound(Split(Application.Trim(Mot), " ")) + 1
    End Function

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Paris
    Inscrit en
    Décembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Paris
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 19
    Points : 6
    Points
    6
    Par défaut merci à tous
    Merci à tous ceux qui ont répondus à mon problème.
    J'ai une solution parfaite, sous forme de fonction, qui fonctionne dans tous mes fichiers et dans 100% des cas.
    Vous êtes au top
    bonne soirée,

  14. #14
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour !

    J'arrive après la bataille mais voici une procédure NombreMots créée pour Word 2003, sait-on jamais …

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    '   Normal.dot                              19/10/2012
     
    Sub Affiche(Titre, Optional Texte = "Aucun document ouvert !", Optional Boutons = vbExclamation)
        MsgBox vbLf & Texte & Space(17) & vbLf & " ", Boutons, Space(14) & Titre & Space(7)
    End Sub
     
    Sub AffTout(B As Boolean)
        ActiveDocument.ActiveWindow.View.ShowAll = B
    End Sub
     
    Sub NombreMots()
        Const T$ = "Nombre de mots"
     
        If Documents.Count Then
            With ActiveDocument
                A% = .Tables.Count And Not .ActiveWindow.View.ShowAll
                If A Then AffTout True                                                ' bug tableau
     
                For Each Mot In .Words
                    Select Case Asc(Mot)
                           Case 38, 65 To 90, 97 To 122, 140, 156, 159, 192 To 207, _
                                209 To 214, 216 To 221, 224 To 239, 241 To 246, 248 To 253, 255
                                N& = N& + 1
                    End Select
                Next
     
                If A Then AffTout False
                Affiche .Name, T & " :  " & IIf(N, Format(N, "# ###"), "zéro !"), vbInformation
            End With
     
        Else
            Affiche T
        End If
    End Sub

  15. #15
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 910
    Points : 28 889
    Points
    28 889
    Billets dans le blog
    53
    Par défaut
    Bonjour Marc,
    Y a-t-il des caractères particuliers que tu exclus dans ta fonction ?
    Parce-que l'outil Statistiques dans word décompte déjà le nombre de mots, pages, caractères, etc. d'un document.

  16. #16
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut




    Bonjour Philippe !

    En fait c'est la dernière version (adaptée ici en retirant les chiffres) pour une demande remontant avant 2003
    pour des traducteurs … J'avais constaté, et même plus tard dans les versions 2003 & 2007,
    un décalage entre le nombre de mots fourni par Word et le nombre réel de mots désiré.
    Son principe est de compter les mots commençant par un caractère autorisé …

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Paris
    Inscrit en
    Décembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Paris
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    Bonsoir Marc,

    La solution que tu proposes dans Word est parfaite. Elle fait quasimet la même chose que ce que j'ai fait dans Excel sous forme de formule et qui a été transformé en VBA.

    Notre raisonnement n'est pas le même; dans ma demande on exclus 38 caractères. Ta solution de ne compter que les mots commançant par un caractère autorisé donne un résultat quasiment similaire.

    Ma demande concernait aussi des traducteurs qui ne voulaient compter que les "vrais" mots.

    Merci pour cette ligne de commande que je vais utiliser dans Word.

    Bonne soirée,

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

Discussions similaires

  1. Lister les disques durs USB, les clés ainsi que les appareils photos
    Par infosam76 dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 25/02/2015, 23h26
  2. Réponses: 1
    Dernier message: 03/12/2012, 18h03
  3. [MySQL] N'afficher que les fichiers du serveur Ftp insérés dans la base de données
    Par jack_1981 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 03/08/2006, 19h41
  4. Trier un std::map selon les valeurs plutot que les clés
    Par dj.motte dans le forum SL & STL
    Réponses: 2
    Dernier message: 13/11/2004, 21h54

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