Compter mots dans cellule

manuBX

XLDnaute Occasionnel
Bonjour LE FORUM
Une petite question pour un dimanche soir !!!:D:p:p

J arrive à compter le nombre de mots dans une cellule ou plusieurs même avec plusieurs espaces
=SI(A1="";"0";NBCAR(SUPPRESPACE(A1))-NBCAR(SUBSTITUE(SUPPRESPACE(A1);" ";""))+1)

=(SI(A1="";"0";NBCAR(SUPPRESPACE(A1))-NBCAR(SUBSTITUE(SUPPRESPACE(A1);" ";""))+1))+(SI(A8="";"0";NBCAR(SUPPRESPACE(A8))-NBCAR(SUBSTITUE(SUPPRESPACE(A8);" ";""))+1))


Est ce qu il y a plus simple comme formule ?:confused:
Et comment les transformer en macro
CI JOINT FICHIER
Si vous avez une idée je suis preneur !!!!!!!!!!!!:rolleyes:
A+
 

Pièces jointes

  • COMPTER NOMBRE MOT.xls
    25 KB · Affichages: 218

ROGER2327

XLDnaute Barbatruc
Re : Compter mots dans cellule

Re...
Je ne trouve pas que vous dites une ânerie : attirer l'attention sur ce genre de subtilité est fort utile.
Tout le monde ne sait pas qu'on trouve des fonctions de même nom dans des bibliothèques différentes. Nos Trim respectifs appartiennent l'un à la bibliothèque VBA, classe Strings, et l'autre à la bibliothèque Excel, classe WorksheetFunction.
Lorsqu'on utilise Trim(Arg) dans un module VBA, il s'agit d'une écriture abrégée dont la syntaxe complète est VBA.Strings.Trim(Arg) ;
Si on veut faire appel à la fonction Trim(Arg), d'Excel, on doit le faire explicitement, la syntaxe complète étant Excel.WorksheetFunction.Trim(Arg).
Dans Excel, on peut aussi écrire Application.WorksheetFunction.Trim(Arg)
Cette dernière forme est quelquefois (lourdement) écrite Evaluate("=TRIM(" & Arg.Address & ")").

En résumé, les trois fonctions
Code:
[COLOR="DarkSlateGray"][B]Function tyty(x)
   tyty = Trim(x)
End Function

Function tete(x)
   tete = Strings.Trim(x)
End Function

Function toto(x)
   toto = VBA.Strings.Trim(x)
End Function[/B][/COLOR]
donnent le même résultat.

Les quatre fonctions
Code:
[COLOR="DarkSlateGray"][B]Function tata(x)
   tata = WorksheetFunction.Trim(x)
End Function

Function tutu(x)
   tutu = Excel.WorksheetFunction.Trim(x)
End Function

Function tatu(x)
   tatu = Application.WorksheetFunction.Trim(x)
End Function

Function titi(x)
   titi = Evaluate("=TRIM(" & x.Address & ")")
End Function[/B][/COLOR]
donnent le même résultat.

Mais les deux groupes de fonctions ne sont pas équivalents.
Cordialement,
ROGER2327
#3531


Samedi 7 Merdre 137 (Nativité de Monsieur Plume, propriétaire, SQ)
5 Prairial An CCXVIII
2010-W21-1T13:35:33Z
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Compter mots dans cellule

Bonjour le fil :),
J'espère que vous me pardonnerez cette intrusion, mais un petit détail m'inquiète :rolleyes:.
La liste en Array comprend comme séparateur "-".
Or effectivement, dans le cas par exemple d'une formule interrogative "Y-a-t'il", cela donne bien 4 mots.
Par contre un mot composé, comme son nom l'indique, ne représente qu'un seul mot (exemple "ouvre-boîtes").
Il y aurait donc, pour moi, une erreur dans le calcul, mais pour laquelle je n'ai pas de solution :eek:.
Bonne fin d'après-midi :cool: (4 mots)
 

Staple1600

XLDnaute Barbatruc
Re : Compter mots dans cellule

Bonjour à tous


Voici la formule que présente les gens de chez Bill .G

Code:
=SI(NBCAR(SUPPRESPACE(A1))=0;0;NBCAR(SUPPRESPACE(A1))-NBCAR(SUBSTITUE(A1;" ";""))+1)
Formule dont disposait notre ami manuBX

Conclusion : je pense qu'ils devraient venir plus souvent sur XLD ;) et nous demander de l'aide.
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Compter mots dans cellule

Re :),
Voici la formule que présente les gens de chez Bill .G
Alors là, très fort, 2 mots + un point d'interrogation = 4 mots :confused:???

attachment.php


Je comprends mieux leurs fiches de salaire :D...
Bonne soirée :cool:
 

Pièces jointes

  • BillGates.JPG
    BillGates.JPG
    38.7 KB · Affichages: 513

JNP

XLDnaute Barbatruc
Re : Compter mots dans cellule

Re :),
Pour faire plaisir à Jean-Marie, une approche complètement différente (qui ne résout pas le problème des mots composés, malheureusement).
Code:
Function CompteMots(Phrase As String) As Integer
Dim Match As Match, Matches As MatchCollection
With CreateObject("vbscript.regexp")
    .Global = True
    .Pattern = "([A-Za-z\u00E0-\u00FF]*)"
    Set Matches = .Execute(Phrase)
    For Each Match In Matches
        If Match.Value <> "" Then CompteMots = CompteMots + 1
    Next
End With
End Function
Nécessite l'ouverture de la référence "Microsoft VBScript Regular Expression 5.5".
Bonne soirée :cool:
 

Staple1600

XLDnaute Barbatruc
Re : Compter mots dans cellule

Re

Pour faire plaisir à JNP qui me fait plaisir
(sans que nos corps ne se touchent ni même se frôlent :p )
Ainsi rédigé , ne nécessite pas d'activer la référence

Code:
Function CompteMots(Phrase As String) As Integer
Dim Match
Dim Matches
With CreateObject("vbscript.regexp")
    .Global = True
    .Pattern = "([A-Za-z\u00E0-\u00FF]*)"
    Set Matches = .Execute(Phrase)
    For Each Match In Matches
        If Match.Value <> "" Then CompteMots = CompteMots + 1
    Next
End With
End Function

PS
: JNP,je vois que tu commences à apprécier Regexp, ce qui me réjouit d'avance ;)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Compter mots dans cellule

Re

Dans ce cas, je crois que c'est ok ainsi


Code:
Dim Match As Object
Dim Matches As Object

EDITION
Ground control?Captain JNP ?
Lunar Module speaking
Test is oK
The VBA Module has correctly landed.
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Compter mots dans cellule

Re :),
Object à la place de Variant... Non, je préfère appeler un chat un chat :p...
Pour avancer sur les mots composés, une variante qui, forcément n'est pas exhaustive, et qui ne demande qu'à s'enrichir ;).
Code:
Function CompteMots(Phrase As String) As Integer
Dim Match As Match, Matches As MatchCollection
Application.Volatile
With CreateObject("vbscript.regexp")
    .Global = True
    .Pattern = "([A-Za-z\u00E0-\u00FF-]*)"
    Set Matches = .Execute(Phrase)
    For Each Match In Matches
        If Match.Value <> "" Then
            If Match.Value Like "*-*" Then
                Select Case UCase(Split(Match.Value, "-")(UBound(Split(Match.Value, "-"))))
                    Case "JE", "TU", "IL", "ELLE", "ON", "NOUS", "VOUS", "ILS", "ELLES", "CE", "T"
                        CompteMots = CompteMots + UBound(Split(Match.Value, "-")) + 1
                    Case Else
                        CompteMots = CompteMots + 1
                End Select
            Else
                CompteMots = CompteMots + 1
            End If
        End If
    Next
End With
End Function
Bonne soirée :cool:
 

ROGER2327

XLDnaute Barbatruc
Re : Compter mots dans cellule

Re...
Bonjour le fil :),
J'espère que vous me pardonnerez cette intrusion, mais un petit détail m'inquiète :rolleyes:.
La liste en Array comprend comme séparateur "-".
Or effectivement, dans le cas par exemple d'une formule interrogative "Y-a-t'il", cela donne bien 4 mots.
Par contre un mot composé, comme son nom l'indique, ne représente qu'un seul mot (exemple "ouvre-boîtes").
Il y aurait donc, pour moi, une erreur dans le calcul, mais pour laquelle je n'ai pas de solution :eek:.
Bonne fin d'après-midi :cool: (4 mots)
Calmons votre inquiétude. Pour réparer partiellement l'erreur de calcul selon vous, j'ai une solution très simple :
Code:
[COLOR="DarkSlateGray"][B]Function CompteMots&(rr As Range)
Dim sp, oCel As Range, xx$, ii&, jj&, txp
Dim A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
   A = Array("à demi-mot", "à grand-peine", "abaisse-langue", "abat-jour", "abat-vent", "accord-cadre", "accords-cadres", "accroche-cœur", "accroche-cœurs", "à-côté", "à-côtés", "à-coup", "à-coups", "acquit-à-caution", "acquits-à-caution", "adjudant-chef", "adjudants-chefs", "aéro-club", "aéro-clubs", "afro-asiatique", "afro-asiatiques", "after-shave", "agar-agar", "agars-agars", "agro-industrie", "agro-industries", "aide-comptable", "aide-cuisinier", "aide-maçon", "aide-mémoire", "aide-radio", "aides-comptables", "aides-cuisiniers", "aides-maçons", "aide-soignant", "aide-soignante", "aides-soignants", "aides-soignantses", "aigre-douce", "aigre-doux", _
   "aigres-douces", "aigres-doux", "aigue-marine", "aigues-marines", "aller-retour", "allers-retours", "allume-cigare", "allume-cigares", "allume-feu", "allume-feux", "allume-gaz", "amour-propre", "amours-propres", "ampère-heure", "ampères-heures", "amuse-gueule", "amuse-gueules", "analyste-programmeur", "analyste-programmeuse", "analystes-programmeurs", "analystes-programmeuses", "anglo-arabe", "anglo-arabes", "anglo-saxon", "anglo-saxons", "année-lumière", "années-lumière", "anti-inflammatoire", "anti-inflammatoires", "anti-sous-marin", "anti-sous-marine", "anti-sous-marines", "anti-sous-marins", "à-peu-près", "à-pic", "appui-bras", "appui-coude", "appuie-bras", "appuie-tête", "appui-main", _
   "appui-nuque", "appuis-bras", "appuis-coude", "appuis-main", "appuis-nuque", "appuis-tête", "appui-tête", "après-coup", "après-coups", "après-demain", "après-dîner", "après-dîners", "après-guerre", "après-guerres", "après-midi", "après-rasage", "après-rasages", "après-ski", "après-skis", "après-soleil", "après-soleils", "après-vente", "arc-boutant", "arc-en-ciel", "arcs-boutants", "arcs-en-ciel", "arrache-clou", "arrache-clous", "arrache-moyeu", "arrache-moyeux", "arrêt-bagage", "arrêts-bagages", "arrière-ban", "arrière-bans", "arrière-bouche", "arrière-bouches", "arrière-boutique", "arrière-boutiques", "arrière-cour", "arrière-cours", _
   "arrière-garde", "arrière-gardes", "arrière-gorge", "arrière-gorges", "arrière-goût", "arrière-goûts", "arrière-grand-mère", "arrière-grand-père", "arrière-grands-mères", "arrière-grands-parents", "arrière-grands-pères", "arrière-pays", "arrière-pensée", "arrière-pensées", "arrière-petite-fille", "arrière-petites-filles", "arrière-petit-fils", "arrière-petits-enfants", "arrière-petits-fils", "arrière-plan", "arrière-plans", "arrière-saison", "arrière-saisons", "arrière-salle", "arrière-salles", "arrières-grands-parents", "arrière-train", "arrière-trains", "arrow-root", "arrow-roots", "assurances-vies", "assurance-vie", "attaché-case", "attachés-cases", "attrape-mouche", "attrape-mouches", "attrape-nigaud", "attrape-nigauds", "aujourd'hui", "auto-couchettes", "auto-école", _
   "auto-écoles", "auto-stoppeur", "auto-stoppeurs", "auto-stoppeuse", "auto-stoppeuses", "à-valoir", "avant-bras", "avant-centre", "avant-corps", "avant-coureur", "avant-coureurs", "avant-dernier", "avant-dernière", "avant-dernières", "avant-derniers", "avant-garde", "avant-gardes", "avant-goût", "avant-goûts", "avant-port", "avant-ports", "avant-poste", "avant-postes", "avant-première", "avant-premières", "avant-projet", "avant-projets", "avant-propos", "avant-scène", "avant-scènes", "avants-centres", "avant-soirée", "avant-soirées", "avant-veille", "avant-veilles", "aveugle-né/née", "aveugles-nés", "avocat(e)-conseil", "avocat(e)s-conseils", "ayant cause", "ayant droit", "ayants cause", "ayants droit", "aye-aye", "ayes-ayes")
   B = Array("baba cool", "babas cool", "baby-boom", "baby-booms", "baby-foot", "baby-sitter", "baby-sitters", "baby-sitting", "baby-sittings", "bain-de-mer", "bain-de-pieds", "bain-de-siège", "bain-marie", "bains-de-mer", "bains-de-pieds", "bains-de-siège", "bains-marie", "balai-brosse", "balai-éponge", "balais-brosses", "balais-éponges", "ballon-sonde", "ballons-sondes", "ball-trap", "ball-traps", "bande-annonce", "bandes-annonces", "bande-son", "bandes-son", "barbe-à-papa", "barbe-de-capucin", "barbe-de-chêvre", "barbes-à-papa", "barbes-de-capucin", "barbes-de-chêvres", "bas-bleu", "bas-bleus", "bas-côté", "bas-côtés", "bas-de-casse", "base-ball", _
   "base-balls", "bas-fond", "bas-fonds", "bas-hauban", "bas-haubans", "basket-ball", "basket-balls", "bas-relief", "bas-reliefs", "basse-cour", "basse-fosse", "basses-cours", "basses-fosses", "basses-tailles", "basse-taille", "bas-ventre", "bas-ventres", "bateau-citerne", "bateau-feu", "bateau-lavoir", "bateau-mouche", "bateau-phare", "bateau-pilote", "bateau-pompe", "bateaux-citernes", "bateaux-feux", "bateaux-lavoirs", "bateaux-mouches", "bateaux-phares", "bateaux-pilotes", "bateaux-pompes", "bat-flanc", "beau-fils", "beau-frère", "beau-père", "beaux-arts", "beaux-fils", "beaux-frères", "beaux-parents", "beaux-pères", _
   "bébé-éprouvette", "bébés-éprouvette", "bec-de-cane", "bec-de-lièvre", "bec-de-perroquet", "bec-fin", "becs-de-cane", "becs-de-lièvre", "becs-de-perroquet", "becs-fins", "belle-de-jour", "belle-de-nuit", "belle-famille", "belle-fille", "belle-mère", "belles-de-jour", "belles-de-nuit", "belles-familles", "belles-filles", "belles-lettres", "belles-mères", "belle-sœur", "belles-sœurs", "bernard-l'ermite", "best-seller", "best-sellers", "bien-aimé(e)", "bien-aimés(es)", "bien-être", "bien-faire", "bien-fondé", "bien-fondés", "bien-fonds", "bien-pensant", "bien-pensante", "bien-pensantes", "bien-pensants", "biens-fonds", "big-bang", "bla-bla", _
   "bla-bla-bla", "black-out", "black-rot", "black-rots", "blanc-bec", "blancs-becs", "blanc-seing", "blancs-seings", "bloc-cuisine", "bloc-moteur", "bloc-notes", "blocs-cuisines", "blocs-moteurs", "blocs-notes", "blue-jean", "blue-jeans", "body-building", "body-buildings", "boit-sans-soif", "bon-chrétien", "bonne-maman", "bonnes-mamans", "bon-papa", "bons-chrétiens", "bons-papas", "borne-fontaine", "bornes-fontaines", "bossa-nova", "bossas-novas", "bouche-à bouche", "bouche-à-bouche", "bouche-bouteilles", "bouche-trou", "bouche-trous", "boui-boui", "bouis-bouis", "boule-de-neige", "boules-de-neige", "bout-dehors", "boute-en-train", _
   "bouton-d'or", "bouton-d'or couleur", "bouton-poussoir", "bouton-pression", "boutons-d'or", "boutons-poussoirs", "boutons-pression", "bout-rimé", "bouts-dehors", "bouts-rimés", "bow-window", "bow-windows", "box-office", "box-offices", "boy-scout", "boy-scouts", "bracelet-montre", "bracelets-montres", "brain-trust", "brain-trusts", "branle-bas", "bric-à-brac", "brise-glace", "brise-jet", "brise-jets", "brise-lames", "brise-mottes", "brise-tout", "broncho-pneumonie", "broncho-pneumonies", "broncho-pneumopathie", "broncho-pneumopathies", "brûle-gueule", "brûle-parfum", "brûle-parfums", "brun-rouge", "buisson-ardent", "buissons-ardents", "bulletin-réponse", "bulletins-réponse", "bull-terrier", "bull-terriers")
   C = Array("câblo-opérateur", "câblo-opérateurs", "cache-cache", "cache-col", "cache-cols", "cache-nez", "cache-pot", "cache-pots", "cache-prise", "cache-prises", "cache-sexe", "cache-sexes", "café-concert", "cafés-concerts", "cafés-théatres", "café-théâtre", "cahin-caha", "caille-lait", "cale-hauban", "cale-haubans", "cale-pied", "cale-pieds", "call-girl", "call-girls", "camion-citerne", "camions-citernes", "camping-car", "camping-cars", "canapé-lit", "canapés-lits", "canoë-kayak", "canoës-kayaks", "canon-harpon", "canons-harpons", "cardio-vasculaire", "cardio-vasculaires", "car-ferries", "car-ferry", "car-ferrys", "carte-lettre", _
   "carte-réponse", "cartes-lettres", "cartes-réponse", "cartes-réponses", "carton-feutre", "carton-paille", "carton-pâte", "carton-pierre", "cartons-feutres", "cartons-pailles", "cartons-pâtes", "cartons-pierres", "casse-bonbons", "casse-bonbon", "casse-cou", "casse-couille", "casse-couilles", "casse-croûte", "casse-gueule", "casse-gueule (fam)", "casse-noisettes", "casse-noix", "casse-pieds", "casse-tête", "centres-villes", "centre-ville", "céphalo-rachidien", "céphalo-rachidienne", "céphalo-rachidiens", "céphalo-rachidiensnes", "cerfs-volants", "cerf-volant", "cessez-le-feu", "Charles-Quint", "chassé-croisé", "chasse-goupille", "chasse-goupilles", "chasse-mouches", "chasse-neige", "chasse-pointe", _
   "chasse-pointes", "chassés-croisés", "chat-huant", "chats-huants", "chauffe-assiette", "chauffe-assiettes", "chauffe-biberon", "chauffe-biberons", "chauffe-eau", "chauffe-plat", "chauffe-plats", "chausse-pied", "chausse-pieds", "chausse-trape", "chausse-trapes", "chausse-trappe", "chausse-trappes", "chauve-souris", "chauves-souris", "check-list", "check-lists", "check-up", "chef-d'œuvre", "chef-lieu", "chefs-d'œuvre", "chefs-lieux", "chemin de fer", "chemins de fer", "chêne-liège", "chêne-marin", "chênes-lièges", "chênes-marins", "cheval-arçons", "cheval-d'arçons", "cheval-vapeur", "chevaux-d'arçons", "chevaux-vapeur", "chewing-gum", "chewing-gums", "chiche-kebah", _
   "chiches-kebahs", "chien-chien", "chien-loup", "chiens-chiens", "chiens-loups", "chirurgien-dentiste", "chirurgiens-dentistes", "chou-fleur", "chou-rave", "choux-fleurs", "choux-raves", "chow-chow", "chows-chows", "ciné-club", "ciné-clubs", "cité-dortoir", "cités-dortoirs", "clair-obscur", "clairs-obscurs", "Cocotte-Minute", "code-barres", "codes-barres", "coffre-fort", "coffres-forts", "col-de-cygne", "colin-maillard", "colin-maillards", "cols-de-cygne", "cols-verts", "col-vert", "come-back", "commissaire-priseur", "commissaires-priseurs", "compère-loriot", "compères-loriots", "compte chèques", "compte rendu", "compte-chèques", "compte-fils", "compte-gouttes", _
   "compte-pas", "compte-rendu", "comptes chèques", "comptes rendus", "comptes-chèques", "comptes-rendus", "compte-tours", "contre-allée", "contre-allées", "contre-amiral", "contre-amiraux", "contre-attaque", "contre-attaques", "contre-chant", "contre-chants", "contre-courant", "contre-courants", "contre-écrou", "contre-écrous", "contre-emploi", "contre-emplois", "contre-enquête", "contre-enquêtes", "contre-épreuve", "contre-épreuves", "contre-espionnage", "contre-espionnages", "contre-exemple", "contre-exemples", "contre-expertises", "contre-feu", "contre-feux", "contre-filet", "contre-filets", "contre-indication", "contre-indications", "contre-indiqué", "contre-indiqués", "contre-interrogatoire", "contre-interrogatoires", _
   "contre-jour", "contre-jours", "contre-la-montre", "contre-manifestant", "contre-manifestants", "contre-manifestation", "contre-manifestations", "contre-mesure", "contre-mesures", "contre-offensive", "contre-offensives", "contre-performances", "contre-pied", "contre-pieds", "contre-plongée", "contre-plongées", "contre-pouvoir", "contre-pouvoirs", "contre-projet", "contre-projets", "contre-proposition", "contre-propositions", "contre-publicité", "contre-publicités", "contre-révolution", "contre-révolutionnaire", "contre-révolutionnaires", "contre-révolutions", "contre-terrorisme", "contre-terrorismes", "contre-torpilleur", "contre-torpilleurs", "contre-visite", "contre-visites", "coq-à-l'âne", "cordon-bleu", "cordons-bleus", "corned-beef", "corps-à-corps", "couche-culotte", _
   "couches-culottes", "couche-tard", "couche-tôt", "cou-de-pied", "coup-de-point", "coupe-chou", "coupe-choux", "coupe-circuit", "coupe-circuits", "coupe-coupe", "coupe-faim", "coupe-feu", "coupe-file", "coupe-files", "coupe-gorge", "coupe-ongles", "coupe-papier", "coupe-papiers", "coupe-vent", "couple-ongles", "coupon-réponse", "coupons-réponse", "coups-de-poing", "course-poursuite", "courses-poursuites", "court métrage", "court-bouillon", "court-circuit", "court-métrage", "courts métrages", "courts-bouillons", "courts-circuits", "courts-métrages", "court-vêtu", "court-vêtus", "cous-de-pied", "couvre-chef", "couvre-chefs", "couvre-feu", "couvre-feux", _
   "couvre-lit", "couvre-lits", "couvre-pied", "couvre-pieds", "cover-girl", "cover-girls", "cow-boy", "cow-boys", "crayon-feutre", "crayons-feutres", "crédit-bail", "crédits-bails", "crève-cœur", "crève-de-faim", "crève-la-faim", "croc-en-jambe", "croche-patte", "croche-pattes", "croche-pied", "croche-pieds", "crocs-en-jambe", "croque-madame", "croque-mitaine", "croque-mitaines", "croque-monsieur", "croque-mort", "croque-morts", "cross-countries", "cross-country", "cross-countrys", "cuir-laine", "cuirs-laines", "cul-blanc", "cul-brun", "cul-de-jatte", "cul-de-lampe", "cul-de-sac", "culs-blancs", "culs-bruns", "culs-de-jatte", _
   "culs-de-lampe", "culs-de-sac", "culs-terreux", "cul-terreux", "cumulo-nimbus", "cumulus-stratus", "cure-dent", "cure-dents", "cure-ongle", "cure-ongles", "cure-pipe", "cure-pipes", "curriculum vitae", "cuti-réaction", "cuti-réactions", "cyclo-cross", "cylindre-équerre", "cylindres-équerres")
   D = Array("dame-jeanne", "dames-jeannes", "dare-dare", "décret-loi", "décrets-lois", "déjà-vu", "demi-bouteille", "demi-bouteilles", "demi-cercle", "demi-cercles", "demi-dieu", "demi-dieux", "demi-douzaine", "demi-douzaines", "demi-finale", "demi-finales", "demi-finaliste", "demi-finalistes", "demi-fond", "demi-frère", "demi-frères", "demi-gros", "demi-heure", "demi-heures", "demi-jour", "demi-journée", "demi-journées", "demi-jours", "demi-litre", "demi-litres", "demi-longueur", "demi-longueurs", "demi-lune", "demi-lunes", "demi-mal", "demi-maux", "demi-mesure", "demi-mesures", "demi-mot", "demi-pause", "demi-pauses", _
   "demi-pension", "demi-pensionnaire", "demi-pensionnaires", "demi-pensions", "demi-place", "demi-places", "demi-portion", "demi-portions", "demi-saison", "demi-saisons", "demi-sang", "demi-sel", "demi-sœur", "demi-sœurs", "demi-solde", "demi-soldes", "demi-sommeil", "demi-sommeils", "demi-soupir", "demi-soupirs", "demi-tarif", "demi-tarifs", "demi-teinte", "demi-teintes", "demi-ton", "demi-tons", "demi-tour", "demi-tours", "démonte-pneu", "démonte-pneus", "dent-de-chien", "dent-de-loup", "dent-de-scie", "dents-de-chiens", "dents-de-loup", "dents-de-scie", "dépôt-vente", "dépôt-ventes", "dernière-née", "dernières-nées", _
   "dernier-né", "derniers-nés", "dessous-de-plat", "dessous-de-table", "dessus-de-lit", "dessus-de-plat", "dessus-de-table", "deux-mâts", "deux-pièces", "deux-points", "deux-quatre", "deux-roues", "deux-temps", "dîner-concert", "dîner-débat", "dîners-concerts", "dîners-débats", "dîner-spectacle", "dîners-spectacles", "disc-jockey", "disc-jockeys", "dos-d'âne", "double-croche", "double-décimètre", "double-fond", "double-mètre", "double-rideau", "doubles-croches", "doubles-décimètres", "doubles-fonds", "doubles-mètres", "doubles-rideaux", "douce-amère", "douces-amères", "doux-amer", "doux-amers", "drap-housse", "draps-housses", "droit-fil", "droits-fils", _
   "drop-goal", "drop-goals", "duffel-coat", "duffel-coats", "duffle-coat", "duffle-coats", "dure-mère", "dures-mères")
   E = Array("eau-de-vie", "eau-forte", "eaux-de-vie", "eaux-fortes", "émetteur-récepteur", "émetteurs-récepteurs", "emporte-pièce", "enfile-aiguilles", "en-tête", "en-têtes", "entre-deux", "entre-deux-guerres", "entre-temps", "épaulé-jeté", "épaulés-jetés", "épines-vinettes", "épine-vinette", "épluche-légumes", "espaces-temps", "espace-temps", "essuie-glace", "essuie-glaces", "essuie-mains", "essuie-tout", "état-major", "états-majors", "étouffe-chrétien", "ex-libris", "expert-comptable", "experts-comptables", "extra-muros", "extra-utérin", "extra-utérins", "extrême-onction", "extrêmes-onctions")
   F = Array("face-à-face", "face-à-main", "faces-à-main", "fac-similé", "fac-similés", "faire-part", "faire-valoir", "fair-play", "fait divers", "fait-divers", "faits divers", "faits-divers", "fait-tout", "fan-club", "fan-clubs", "fast-food", "fast-foods", "fausse-route", "fausses-routes", "faux sens", "faux titre", "faux titres", "faux-bord", "faux-bords", "faux-bourdon", "faux-bourdons", "faux-filet", "faux-filets", "faux-foc", "faux-focs", "faux-fuyant", "faux-fuyants", "faux-limon", "faux-limons", "faux-marcher", "faux-marchers", "faux-monnayeur", "faux-monnayeurs", "faux-pont", "faux-ponts", "faux-quartier", "faux-quartiers", "faux-semblant", _
   "faux-semblants", "faux-sens", "faux-titre", "faux-titres", "feed-back", "fer-blanc", "fer-carbonyle", "fer-carbonyles", "fer-de-lance", "ferry-boat", "ferry-boats", "fers-blancs", "fers-de-lance", "fesse-mathieu", "fesse-mathieux", "Fête-Dieu", "Fêtes-Dieu", "feuille-morte", "fief-rente", "fiefs-rentes", "fier-à-bras", "fiers-à-bras", "fifty-fifty", "fil-à-fil", "fil-électrode", "fils électrodes", "filtre-presse", "filtre-presses", "fish-eye", "fish-eyes", "flacon-pompe", "flacons-pompe", "flanc-garde", "flancs-gardes", "flash-back", "fluvio-glaciaire", "fluvio-glaciaires", "forêt-galerie", "forêts-galeries", "fourmi-lion", "fourmis-lions", _
   "fourre-tout", "fox-terrier", "fox-trot", "franc-bord", "franc-canton", "franc-comtois", "franc-comtoise", "franc-comtoises", "franc-fief", "franc-jeu", "franc-maçon", "franc-maçonne", "franc-maçonnerie", "franc-maçonneries", "franc-maçonnes", "franco-français", "franco-française", "franco-françaises", "franc-or", "franc-papier", "franc-parler", "franc-quartier", "francs-bords", "francs-cantons", "francs-comtois", "francs-fiefs", "francs-jeux", "francs-maçons", "francs-or", "francs-papier", "francs-parlers", "francs-quartiers", "francs-tireurs", "franc-tireur", "free-lance", "free-lances", "frou-frou", "frous-frous", "fume-cigare", "fume-cigarette", "fusil-mitrailleur", "fusils-mitrailleurs")
   G = Array("gagne-pain", "gagne-petit", "gaine-culotte", "gaines-culottes", "gallo-romain", "gallo-romains", "garde-à-vous", "garde-barrière", "garde-boue", "garde-chasse", "garde-chiourme", "garde-corps", "garde-côte", "garde-côtes", "garde-feu", "garde-fou", "garde-fous", "garde-malade", "garde-manger", "garde-meuble", "garde-meubles", "garden-parties", "garden-party", "garde-pêche", "garde-robe", "garde-robes", "gardes-barrière", "gardes-barrières", "gardes-chasse", "gardes-chasses", "gardes-chiourme", "gardes-chiourmes", "gardes-malade", "gardes-malades", "gardes-pêche", "gardes-voie", "gardes-voies", "garde-voie", "gastro-entérite", "gastro-entérites", "gastro-entérologue", "gastro-entérologues", _
   "gâte-bois", "gâte-sauce", "gin-fizz", "globe-trotter", "globe-trotters", "gobe-mouches", "gorge-de-pigeon", "goutte-à-goutte", "grand-angle", "grand-angulaire", "grand-chose", "grand-duc", "grand-duché", "grande-duchesse", "grandes-duchesses", "grand-guignol", "grand-guignolesque", "grand-guignolesques", "grand-livre", "grand-maman", "grand-mamans", "grand-mère", "grand-mères", "grand-messe", "grand-messes", "grand-oncle", "grand-papa", "grand-peine", "grand-père", "grand-rue", "grand-rues", "grands-angles", "grands-angulaires", "grands-duchés", "grands-ducs", "grands-livres", "grands-mamans", "grands-mères", "grands-messes", "grands-oncles", "grands-papas", "grands-parents", "grands-pères", _
   "grands-rues", "grands-tantes", "grands-voiles", "grand-tante", "grand-tantes", "grand-voile", "grand-voiles", "granny-smith", "grape-fruit", "grape-fruits", "gras-double", "gras-doubles", "gratte-ciel", "gratte-cul", "gratte-papier", "gréco-latin", "gréco-latins", "gréco-romain", "gréco-romains", "gri-gri", "grille-pain", "grill-room", "grill-rooms", "grippe-sou", "grippe-sous", "gris-gris", "gros-grain", "gros-grains", "gros-plant", "gros-plants", "gros-porteur", "gros-porteurs", "guet-apens", "guets-apens", "gueule-de-loup", "gueules-de-loup", "guili-guili", "gutta-percha", "guttas-perchas")
   H = Array("hache-écorce", "hache-écorces", "hache-légumes", "hache-paille", "hache-viandes", "hale-bas", "hale-breu", "hale-croc", "hale-crocs", "half-track", "half-tracks", "halte-garderie", "haltes-garderies", "hara-kiri", "hara-kiris", "haut-commissaire", "haut-commissariat", "haut-de-chausses", "haut-de-forme", "haute fidélité", "haute-contre", "haute-fidélité", "hautes fidélités", "hautes-contre", "hautes-fidélités", "haut-fond", "haut-fourneau", "haut-le-cœur", "haut-le-corps", "haut-le-pied", "haut-parleur", "haut-parleurs", "haut-relief", "hauts-commissaires", "hauts-commissariats", _
   "hauts-de-chausses", "hauts-de-forme", "hauts-fonds", "hauts-fourneaux", "hauts-reliefs", "herbe-aux-chats", "hi-fi", "hip-hop", "hispano-américain", "hispano-américaine", "hispano-américaines", "hispano-américains", "hit-parade", "hit-parades", "hold-up", "homme-grenouille", "homme-orchestre", "homme-sandwich", "hommes-grenouilles", "hommes-orchestres", "hommes-sandwichs", "hors-bord", "hors-d'œuvre", "hors-jeu", "hors-la-loi", "hors-piste", "hors-pistes", "hors-texte", "hospitalo-universitaire", "hospitalo-universitaires", "hot dog", "hot dogs", "huis-clos", "huit-en-huit", "huit-huit", "huit-reflets")
   I = Array("idée-force", "idées-forces", "ilang-ilang", "ilangs-ilangs", "import-export", "imports-exports", "indique-fuites", "indo-européen", "indo-européenne", "indo-européennes", "indo-européens", "in-douze", "in-folio", "in-octavo", "in-quarto", "intra-muros", "intra-utérin", "intra-utérins")
   J = Array("jazz-band", "jazz-bands", "jean-foutre", "je-m'en-foutisme", "je-m'en-foutismes", "je-m'en-foutiste", "je-m'en-foutistes", "je-ne-sais-quoi", "jet-set", "jet-sets", "jet-stream", "jet-streams", "jiu-jitsu", "judéo-chrétien", "judéo-chrétienne", "judéo-chrétiennes", "judéo-chrétiens", "juke-box", "juke-boxes", "jumbo-jet", "jumbo-jets", "jupe-culotte", "jupes-culottes", "jusqu'au-boutiste", "jusqu'au-boutistes")
   K = Array("kif-kif", "kilo-octet", "kilo-octets", "K-O", "kung-fu", "K-way")
   L = Array("là-bas", "là-dessous", "là-dessus", "là-haut", "laissé-pour-compte", "laisser-aller", "laisser-courre", "laisser-faire", "laisser-sur-place", "laissés-pour-compte", "laissez-passer", "lance-bombe", "lance-bombes", "lance-flamme", "lance-flammes", "lance-grenade", "lance-grenades", "lance-missile", "lance-missiles", "lance-peinture", "lance-pierre", "lance-pierres", "lance-poudre", "lance-roquette", "lance-roquettes", "lance-torpille", "lance-torpilles", "langue-de-bœuf", "langue-de-chat", "langues-de-bœuf", "langues-de-chat", "latino-américains", "laurier-rose", "laurier-sauce", "lauriers-roses", "lauriers-sauce", "lauriers-tins", _
   "laurier-tin", "lave-auto", "lave-autos", "lave-dos", "lave-glace", "lave-glaces", "lave-linge", "lave-mains", "lave-oreilles", "lave-pieds", "lave-pinceaux", "lave-pont", "lave-ponts", "lave-tête", "lave-vaisselle", "lèche-bottes", "lèche-vitrines", "lèse-majesté", "lève-glace", "lève-glaces", "lève-vitre", "lève-vitres", "libre-échange", "libre-échangiste", "libre-échangistes", "libre-penseur", "libres-échanges", "libre-service", "libres-penseurs", _
   "libres-services", "lie-de-vin", "lieu-dit", "lieutenant-colonel", "lieutenants-colonels", "lieux-dits", "lit-cage", "lits-cages", "living-room", "living-rooms ou livings", "livre-cassette", "livres-cassettes", "locations-ventes", "location-vente", "lock-out", "loi-cadre", "lois-cadres", "long métrage", "long-bois", "long-courrier", "long-courriers", "long-jointé", "long-jointée", "long-jointées", "long-jointés", "long-métrage", "long-nez", "long-pan", "longs métrages", "longs-bois", "long-scion", "longs-métrages", "longs-nez", "longs-pans", "longs-scions", "longues-vues", "longue-vue", "louise-bonne", "louises-bonnes", "loup-cervier", "loup-garou", "loups-cerviers", "loups-garous")
   M = Array("machine-frein", "machine-outil", "machines-freins", "machines-outils", "machines-transferts", "machine-transfert", "macro-instruction", "macro-instructions", "mah-jong", "main-brune", "main-d'œuvre", "main-forte", "mains-brunes", "mains-d'œuvre", "maître-assistant(e)", "maître-autel", "maître-chien", "maîtres-assistants(es)", "maîtres-autels", "maîtres-chiens", "mal-aimé", "mal-aimée", "mal-aimées", "mal-aimés", "mal-en-point", "mal-être", "mal-logé", "mal-logés", "mal-vivre", "mandat-carte", "mandat-lettre", "mandats-cartes", "mandats-lettres", "mange-tout", "maniaco-dépressif", "maniaco-dépressifs", "maréchal-ferrant", "maréchaux-ferrants", "marin-pêcheur", "marin-pompier", "marins-pêcheurs", "marins-pompiers", "marque-page", _
   "marque-pages", "marteau-pilon", "marteau-piqueur", "marteaux-pilons", "marteaux-piqueurs", "martin-chasseur", "martin-pêcheur", "martins-chasseurs", "martins-pêcheurs", "marxiste-léniniste", "marxistes-léninistes", "mass-médias", "m'as-tu-vu", "mea-culpa", "médecin-chef", "médecin-inspecteur", "médecins-chefs", "médecins-inspecteurs", "médicaux-sociaux", "médico-légal", "médico-légaux", "médico-pédagogique", "médico-pédagogiques", "médico-social", "méli-mélo", "mélis-mélos", "melting-pot", "melting-pots", "mezzo-soprano", "mezzo-sopranos", "mian-mian", "mi-bas", "mi-carême", "mi-carêmes", "mi-clos", "micro-cravate", "micro-informatique", "micro-informatiques", "micro-ondes", "micro-ordinateur", "micro-ordinateurs", "micro-organisme", "micro-organismes", _
   "micros-cravates", "micros-trottoirs", "micro-trottroir", "mieux-être", "milk-shake", "milk-shakes", "mille-feuille", "mille-feuilles", "mille-pattes", "mi-long", "mi-longs", "mi-lourd", "mi-lourds", "mini-ordinateur", "mini-ordinateurs", "mi-temps", "moins-perçu", "moins-perçus", "moins-value", "moins-values", "moissonneuse-batteuse", "moissonneuses-batteuses", "monnaie-du-pape", "monnaies-du-pape", "mont-de-piété", "monte-charge", "monte-charges", "montre-bracelet", "montres-bracelets", "monts-de-piété", "mort-aux-rats", "morte-eau", "morte-saison", "mortes-eaux", "mortes-saisons", "mort-né(e)", "mort-nés(ées)", "mot-à-mot", "mots croisés", "mots-croisés", "moyen-courriers", "music-hall", "music-halls")
   N = Array("national-socialisme", "national-socialiste", "nationaux-socialistes", "navire-citerne", "navire-école", "navire-hôpital", "navires-citernes", "navires-écoles", "navires-hôpitaux", "navires-usines", "navire-usine", "néo-calédonien", "néo-calédoniens", "néo-zélandais", "new-look", "nid-d'abeilles", "nid-de-pie", "nid-de-poule", "nid-d-oiseau", "nids-d'abeilles", "nids-de-pigeon", "nids-de-poule", "nids-d'oiseau", "nie-de-pigeon", "nies-de-pie", "night-club", "night-clubs", "non-accompli", "non-accomplis", "non-activité", "non-activités", "non-agression", "non-agressions", "non-aligné", "non-alignement", "non-alignements", "non-alignés", "non-assistance", "non-assistances", "non-belligérance", "non-belligérances", _
   "non-belligérant", "non-belligérants", "non-combattant", "non-combattants", "non-conciliation", "non-conciliations", "non-concurrence", "non-concurrences", "non-conformisme", "non-conformismes", "non-conformiste", "non-conformistes", "non-conformité", "non-conformités", "non-croyant", "non-croyants", "non-directif", "non-directifs", "non-directivité", "non-directivités", "non-dit", "non-droit", "non-droits", "non-engagé", "non-engagement", "non-engagements", "non-engagés", "non-exécution", "non-exécutions", "non-existence", "non-existences", "non-fumeur", "non-fumeurs", "non-fumeuse", "non-fumeuses", "non-ingérence", "non-ingérences", "non-initié(e)", "non-initiée", "non-initiées", _
   "non-initiés", "non-inscrit", "non-inscrits", "non-intervention", "non-interventions", "non-lieu", "non-lieux", "non-paiement", "non-paiements", "non-partant", "non-partants", "non-prolifération", "non-proliférations", "non-recevoir", "non-résident", "non-résidents", "non-respect", "non-respects", "non-retour", "non-retours", "non-sens", "non-spécialiste", "non-spécialistes", "non-stop", "non-viable", "non-viables", "non-violence", "non-violences", "non-violent", "non-violents", "non-voyant", "non-voyants", "nord-africains", "nord-est", "nord-ouest", "nouveau-né", "nouveau-nés", "nue-propriété", "nues-propriétés", "nu-jambes", "nu-pieds", "nu-tête")
   O = Array("œil-de perdrix", "œil-de-bœuf", "œil-de-chat", "œil-de-paon", "œil-de--pie", "œils-de-bœuf", "œils-de-chat", "œils-de-paon", "œils-de-perdrix", "œils-de-pie", "ohm-mètre", "ohms-mètres", "oiseau-lyre", "oiseau-mouche", "oiseaux-lyres", "oiseaux-mouches", "on-dit", "one-man-show", "on-man-show", "opéra-ballet", "opéra-bouffe", "opéra-comique", "opéras-ballets", "opéras-bouffes", "opéras-comiques", "orang-outan", "orang-outang", "orangs-outangs", "orangs-outans", "oto-rhino-laryngologie", "oto-rhino-laryngologies", "oto-rhino-laryngologiste", "oto-rhino-laryngologistes", "ouest-allemand", "ouest-allemands", "ouï-dire", "outre-mer", "outre-tombe", "ouvre-boîtes", "ouvre-bouteilles")
   P = Array("page-écran", "pages-écrans", "pan-bagnat", "panchen-lama", "panchen-lamas", "panier-repas", "paniers-repas", "pans-bagnats", "papier-calque", "papier-émeri", "papier-filtre", "papier-monnaie", "papiers-calque", "papiers-émeri", "papiers-filtre", "papiers-filtres", "papiers-monnaies", "par-ci", "par-delà", "par-derrière", "par-dessous", "par-dessus", "par-devant", "par-devers", "pare-balles", "pare-boue", "pare-brise", "pare-cendres", "pare-chocs", "pare-clous", "pare-étincelles", "pare-feu", "pare-flamme", "pare-neige", "pare-soleil", "pare-vent", "paris-brest", "par-là", "pas-d'âne", "pas-de-porte", _
   "paso-doble", "passe-boules", "passe-crassane", "passe-droit", "passe-droits", "passe-fil", "passe-fils", "passe-lacet", "passe-lacets", "passe-main", "passe-mains", "passe-montagne", "passe-montagnes", "passe-muraille", "passe-murailles", "passe-partout", "passe-passe", "passe-pied", "passe-pieds", "passe-plat", "passe-plats", "passe-temps", "passe-thé", "passing-shot", "passing-shots", "patte-d'oie", "patte-nageoire", "pattes-d'oie", "pattes-nageoires", "pause-café", "pauses-café", "peau-rouge", "peaux-rouges", "pêle-mêle", "pense-bête", "pense-bêtes", "perce-neige", "perce-oreille", "perce-oreilles", "pèse-alcool", "pèse-bébé", _
   "pèse-bébés", "pèse-lait", "pèse-lettre", "pèse-lettres", "pèse-personne", "pèse-personnes", "pet-d'âne", "pet-de-loup", "pet-de-nonne", "pet-en-l'air", "pète-sec", "petit déjeuner", "petit-beurre", "petit-bourgeois", "petit-cousin", "petit-déjeuner", "petite-bourgeoise", "petite-cousine", "petite-fille", "petite-maîtresse", "petite-nièce", "petites-bourgeoises", "petites-cousines", "petites-filles", "petites-maîtresses", "petites-nièces", "petit-fils", "petit-four", "petit-gris", "petit-lait", "petit-maître", "petit-neveu", "petits déjeuners", "petits-beurre", "petits-bourgeois", "petits-cousins", "petits-déjeuners", "petits-enfants", "petits-fils", "petits-fours", "petits-gris", _
   "petits-laits", "petits-maîtres", "petits-neveux", "petits-suisses", "petit-suisse", "pets-d'âne", "pets-de-loup", "pets-de-nonne", "peut-être", "piano-bar", "pianos-bars", "pick-up", "pics-verts", "pic-vert", "pied-à-terre", "pied-bot", "pied-de-biche", "pied-de-mouton", "pied-de-poule", "pied-noir", "pieds-bots", "pieds-de-biche", "pieds-de-mouton", "pieds-de-poule", "pieds-noirs", "pie-grièche", "pie-mère", "pies-grièches", "pies-mères", "pince-monseigneur", "pince-nez", "pince-sans-rire", "pinces-monseigneur", "ping-pong", "ping-pongs", "pin-pon", "pin-up", "pipe-line", "pipe-lines", "pique-assiette", "pique-assiettes", _
   "pique-feu", "pique-feux", "pique-fleurs", "pique-nique", "pique-niques", "pis-aller", "pisse-froid", "pistolet-mitrailleur", "pistolets-mitrailleurs", "pit-bull", "pit-bulls", "plain-chant", "plain-pied", "plains-chants", "plan-masse", "plans-masses", "plat-bord", "plateau-repas", "plateaux-repas", "plate-bande", "plate-forme", "plates-bandes", "plates-formes", "plats-bords", "play-back", "play-boy", "play-boys", "play-list", "play-lists", "plein emploi", "plein-air", "plein-emploi", "plein-jeu", "plein-jeux", "pleins-emplois", "pleins-temps", "pleins-vents", "plein-temps", "plein-vent", "plues-values", "plus-value", _
   "pochettes-surprises", "pochette-surprise", "poil-de-carotte", "point-de-vue", "points-de-vue", "points-virgules", "point-virgule", "poisson-chat", "poissons-chats", "pont-l'évêque", "pont-levis", "ponts-levis", "pop-corn", "porc-épic", "porcs-épics", "porte-à-faux", "porte-à-porte", "porte-autos", "porte-avions", "porte-bagages", "porte-bébé", "porte-bébés", "porte-billet", "porte-billets", "porte-bonheur", "porte-bouteille", "porte-bouteilles", "porte-carte", "porte-cartes", "porte-cigarette", "porte-cigarettes", "porte-clefs", "porte-clés", "porte-couteau", "porte-couteaux", "porte-document", "porte-documents", "porte-drapeau", "porte-drapeaux", "porte-fenêtre", "porte-greffe", _
   "porte-greffes", "porte-hélicoptères", "porte-jarretelles", "porte-malheur", "porte-monnaie", "porte-parapluie", "porte-parapluies", "porte-parole", "porte-plume", "porte-plumes", "porte-revues", "porte-savon", "porte-savons", "porte-serviette", "porte-serviettes", "portes-fenêtres", "porte-voix", "portrait-robot", "portraits-robots", "Port-Salut", "poste-frontière", "postes-frontières", "post-scriptum", "pot-au-feu", "pot-de-vin", "pot-pourri", "potron-jacquet", "potron-minet", "pots-de-vin", "pots-pourris", "pouce-pied", "pouces-pieds", "pousettes-cannes", "pousse-café", "pousse-pousse", "pousse-toc", "poussette-canne", "prêchi-prêcha", "première-née", "premières-nées", "premier-né", _
   "premiers-nés", "pré-salé", "prés-salés", "press-book", "press-books", "presse-agrumes", "presse-bouton", "presse-citron", "presse-citrons", "presse-étoupe", "presse-étoupes", "presse-papiers", "presse-purée", "presse-raquette", "presse-raquettes", "presse-viande", "prêt-à-coudre", "prêt-à-porter", "prête-nom", "prête-noms", "prêts-à-coudre", "prêts-à-porter", "prie-Dieu", "primo-infection", "primo-infections", "prince-de-galles", "procès-verbal", "procès-verbaux", "propre-à-rien", "propres-à-rien", "protège-cahier", "protège-cahiers", "protège-dents", "protège-slip", "protège-slips", "publi-information", "publi-informations", "pull-over", "pull-overs", "punching-ball", "punching-balls", "pur-sang")
   Q = Array("quant-à-moi", "quant-à-soi", "quarante-huitard", "quarante-huitarde", "quarante-huitardes", "quarante-huitards", "quart monde", "quart-de-pouce", "quart-de-rond", "quartier-maître", "quartiers-maîtres", "quart-monde", "quarts mondes", "quarts-de-pouce", "quarts-de-ronds", "quarts-mondes", "quasi-contrat", "quasi-contrats", "quasi-délit", "quasi-délits", "quasi-monnaie", "quasi-monnaies", "quasi-statique", "quasi-statiques", "quasi-usufruit", "quasi-usufruits", "quatre-cent-vingt-et-un", "quatre-de-chiffre", "quatre-épices", "quatre-faces", "quatre-feuilles", "quatre-heures", "quatre-mâts", "quatre-quarts", "quatre-quatre", "quatre-saisons", "quatre-temps", "quatre-vingt-dix", "qu'en-dira-t-on", "queue-de-cheval", "queue-de-pie", "queue-de-vache", "queue-fourchue", "queue-gazée", "queue-rouge", "queues-de-cheval", "queues-de-pie", "queues-fourchues", "queues-gazées", "queues-rouges", "qui-vive", "quote-part", "quotes-parts")
   R = Array("rabat-joie", "radio-isotope", "radio-isotopes", "radio-réveil", "radios-réveils", "radio-taxi", "radio-taxis", "ramasse-miettes", "rase-mottes", "ras-le-bol", "rat-de-cave", "rats-de-cave", "raz de marée", "raz-de-marée", "ready-made", "rebrousse-poil", "reine-claude", "reine-marguerite", "reines-claudes", "reines-marguerites", "remonte-pente", "remonte-pentes", "remue-ménage", "remue-méninges", "rendez-vous", "repose-pied", "repose-pieds", "repose-tête", "requin-marteau", "requins-marteaux", "resto-U", "réveille-matin", "revenez-y", "rez-de-chaussée", _
   "rez-de-jardin", "rhino-pharyngite", "rhino-pharyngites", "rhino-pharynx", "rince-bouche", "rince-bouteille", "rince-bouteilles", "rince-doigts", "risque-tout", "rocking-chair", "rocking-chairs", "rôles-titres", "rôle-titre", "roman-feuilleton", "roman-fleuve", "roman-photo", "romans - photos", "romans-feuilletons", "romans-fleuves", "rond-de-cuir", "ronde-bosse", "rondes-bosses", "rond-point", "ronds-de-cuir", "ronds-points", "rose-croix", "rosé-des-prés", "rosés-des-prés", "rouge-gorge", "rouge-queue", "rouges-gorges", "rouges-queues", "roulé-boulé", "roulés-boulés")
   S = Array("sac-poubelle", "sacro-iliaque", "sacro-iliaques", "sacro-saint", "sacro-saints", "sacs-poubelle", "safari-photo", "safaris-photos", "sage-femme", "sages-femmes", "saint-bernard", "sainte-nitouche", "saintes-nitouches", "saint-frusquin", "saint-glinglin", "saint-honoré", "saint-nectaire", "saint-père", "saint-pierre", "saints-pères", "saisie-arrêt", "saisies-arrêts", "sang-froid", "sang-mêlé", "sans-abri", "sans-cœur", "sans-coeur", "sans-culotte", "sans-culottes", "sans-emploi", "sans-faute", "sans-gêne", "sans-le-sou", "sans-logis", "sans-papiers", "sauf-conduit", "sauf-conduits", "saut-de-lit", "saut-de-loup", "saut-de-mouton", "saute-mouton", _
   "sauts-de-lit", "sauts-de-loup", "sauts-de-mouton", "sauve-qui-peut", "savoir-faire", "savoir-vivre", "science-fiction", "sciences-fictions", "scittich-terriers", "scottish-terrier", "sèche-cheveux", "sèche-linge", "sèche-mains", "self-control", "self-controls", "self-induction", "self-inductions", "self-made-man", "self-made-mans", "self-service", "self-services", "semi-automatique", "semi-automatiques", "semi-circulaire", "semi-circulaires", "semi-conducteur", "semi-conducteurs", "semi-conductrice", "semi-conductrices", "semi-conserve", "semi-conserves", "semi-consonne", "semi-consonnes", "semi-fini", "semi-finis", "semi-liberté", "semi-libertés", "semi-public", "semi-publics", "semi-publique", "semi-publiques", "semi-remorque", _
   "semi-remorques", "semi-voyelle", "semi-voyelles", "sénatus-consulte", "sénatus-consultes", "sergent-chef", "sergents-chefs", "serre-bijoux", "serre-bois", "serre-bras", "serre-ciseaux", "serre-file", "serre-files", "serre-fils", "serre-frein", "serre-freins", "serre-joint", "serre-joints", "serre-livres", "serre-nez", "serre-papiers", "serre-rayons", "serre-tête", "serre-tube", "serre-tubes", "serviette-éponge", "serviettes-éponges", "sex-appeal", "sex-shop", "sex-shops", "short-track", "short-tracks", "show-business", "side-car", "side-cars", "sit-in", "six-huit", "snack-bar", "snack-bars", "snow-boot", "snow-boots", "social-démocrate", _
   "social-démocratie", "social-démocraties", "sociale-démocrate", "sociales-démocrates", "sociaux-démocrates", "socio-économique", "socio-économiques", "socio-éducatif", "socio-éducatifs", "soixante-dix", "songe-creux", "sortie-de-bain", "sorties-de-bain", "sot-l'y-laisse", "souffre-douleur", "sourde-muette", "sourdes-muettes", "sourd-muet", "sourd-muets", "sous-alimentation", "sous-alimentations", "sous-alimenté", "sous-alimentée", "sous-alimentées", "sous-alimentés", "sous-bois", "sous-chef", "sous-chefs", "sous-comité", "sous-comités", "sous-commission", "sous-commissions", "sous-continent", "sous-continents", "sous-couche", "sous-couches", "sous-cutané", "sous-cutanée", "sous-cutanées", "sous-cutanés", "sous-développé", "sous-développée", _
   "sous-développées", "sous-développement", "sous-développements", "sous-développés", "sous-directeur", "sous-directeurs", "sous-directrice", "sous-directrices", "sous-emploi", "sous-emplois", "sous-ensemble", "sous-ensembles", "sous-entendu", "sous-entendue", "sous-entendues", "sous-entendus", "sous-équipé", "sous-équipée", "sous-équipées", "sous-équipement", "sous-équipements", "sous-équipés", "sous-exploitation", "sous-exploitations", "sous-exposition", "sous-expositions", "sous-fifre", "sous-fifres", "sous-jacent", "sous-jacente", "sous-jacentes", "sous-jacents", "sous-lieutenant", "sous-lieutenants", "sous-locataire", "sous-locataires", "sous-location", "sous-locations", "sous-main", "sous-maître", "sous-maîtres", "sous-marin", _
   "sous-marins", "sous-marque", "sous-marques", "sous-multiple", "sous-multiples", "sous-officier", "sous-officiers", "sous-ordre", "sous-ordres", "sous-peuplé", "sous-peuplée", "sous-peuplées", "sous-peuplement", "sous-peuplements", "sous-peuplés", "sous-préfecture", "sous-préfectures", "sous-préfet", "sous-préfète", "sous-préfètes", "sous-préfets", "sous-pression", "sous-pressions", "sous-produit", "sous-produits", "sous-programme", "sous-programmes", "sous-pull", "sous-pulls", "sous-sol", "sous-sols", "sous-tasse", "sous-tasses", "sous-titrage", "sous-titrages", "sous-traitance", "sous-traitances", "sous-traitant", "sous-traitants", "sous-ventrière", "sous-ventrières", "sous-verre", _
   "sous-vêtement", "sous-vêtements", "soutien-gorge", "soutiens-gorge", "spatio-temporel", "spatio-temporelle", "spatio-temporelles", "spatio-temporels", "stand-by", "starting-block", "starting-blocks", "station-service", "stations-service", "steeple-chase", "steeple-chases", "stock-car", "stock-cars", "strato-cumulus", "strip-tease", "strip-teases", "strip-teaseur", "strip-teaseurs", "strip-teaseuse", "strip-teaseuses", "stud-book", "stud-books", "stylo-feutre", "stylos-feutres", "sud-africain", "sud-africains", "sud-américain", "sud-américains", "super-huit", "super-léger", "super-légers", "surdi-mutité", "surdi-mutités", "sur-le-champ", "surprise-partie", "surprises-parties", "sweat-shirt", "sweat-shirts")
   T = Array("taille-buissons", "taille-crayon", "taille-crayons", "taille-douce", "taille-haie", "taille-haies", "taille-légumes", "taille-mer", "taille-ongles", "taille-pain", "taille-racines", "tailles-douces", "tailleur-pantalon", "tailleurs-pantalons", "taille-vent", "talkies-walkies", "talkie-walkie", "tambour-major", "tambours-majors", "tam-tam", "tam-tams", "tape-à-l'œil", "tapis-brosse", "tapis-brosses", "taste-vin", "tâte-vin", "taupe-grillon", "taupes-grillons", "tchin-tchin", "technico-commercial", "technico-commerciale", "technico-commerciales", "technico-commerciaux", "teen-ager", "teen-agers", "tee-shirt", "tee-shirts", "télé-enseignement", "télé-enseignements", "terre-neuvas", "terre-neuve", "terre-neuvier", "terre-neuviers", "terre-plein", "terre-pleins", _
   "tête-à-queue", "tête-à-tête", "tête-bêche", "tête-de-nègre", "teufs-teufs", "teuf-teuf", "ticket-restaurant", "tickets-restaurant", "tic-tac", "tie-break", "tie-breaks", "tiers-monde", "tiers-mondes", "tiers-mondisme", "tiers-mondismes", "tiers-mondiste", "tiers-mondistes", "timbre-poste", "timbre-quittance", "timbres-poste", "timbres-quittances", "timbres-taxe", "timbre-taxe", "tire-au-cul", "tire-au-flanc", "tire-bonde", "tire-bondes", "tire-botte", "tire-bottes", "tire-bouchon", "tire-bouchons", "tire-bouton", "tire-boutons", "tire-braise", "tire-braises", _
   "tire-cartouche", "tire-cartouches", "tire-clou", "tire-clous", "tire-d'aile", "tire-douille", "tire-douilles", "tire-fesses", "tire-feu", "tire-fond", "tire-joint", "tire-joints", "tire-jus", "tire-laine", "tire-lait", "tire-larigot", "tire-ligne", "tire-lignes", "tire-nerf", "tire-nerfs", "tire-pied", "tire-pieds", "tire-sève", "tire-veille", "tiroir-caisse", "tiroirs-caisses", "tissu-éponge", "tissu-feutre", "tissus-éponges", "tissus-feutres", "tohu-bohu", "tord-boyaux", "touche-à-tout", "tourne-à-gauche", "tourne-disque", "tourne-disques", "tourne-pierre", "tourne-pierres", "tourne-vent", "tour-opérateur", "tour-opérateurs", "tour-opérator", "tour-opérators", "tous terrains", "tous-terrains", _
   "tout terrain", "tout-à-l'égout", "toute-bonne", "toute-épice", "toute-puissance", "toute-puissante", "toutes-bonnes", "toutes-épices", "toutes-puissances", "toutes-puissantes", "tout-petit", "tout-petits", "tout-puissant", "tout-puissants", "tout-terrain", "tout-venant", "trachée-artère", "trachées-artères", "trade-union", "trade-unions", "tragi-comédie", "tragi-comédies", "tragi-comique", "tragi-comiques", "traîne-savates", "train-train", "trench-coat", "trench-coats", "trente-six", "trois-étoiles", "trois-huit", "trois-mâts", "trois-pièces", "trois-ponts", "trois-quarts", "trois-quatre", "trois-six", "trompe-l'œil", "trompe-l'oeil", "trompette-de-la-mort", "trompette-des-morts", "trompettes-de-la-mort", "trompettes-des-morts", "trop-perçu", "trop-perçus", "trop-plein", "trop-pleins", "trouble-fête", "tsé-tsé", "t-shirt", "t-shirts", "tue-chien", "tue-diable", "tue-mouches")
   V = Array("va-de-la-gueule", "vade-mecum", "va-et-vient", "valse-hésitation", "valses-hésitations", "vanity-case", "vanity-cases", "va-nu-pieds", "va-t-en-guerre", "va-tout", "vente-saisie", "ventes-saisies", "vert-de-gris", "vert-de-grisé", "vert-de-grisée", "vert-de-grisées", "vert-de-grisés", "vesse-de-loup", "vesses-de-loup", "vice-amiral", "vice-amiraux", "vice-chancelier", "vice-chanceliers", "vice-consul", "vice-consulat", "vice-consulats", "vice-consuls", "vice-légat", "vice-légation", "vice-légations", "vice-légats", "vice-présidence", _
   "vice-présidences", "vice-président", "vice-présidente", "vice-présidentes", "vice-présidents", "vice-recteur", "vice-recteurs", "vice-roi", "vice-rois", "vice-royauté", "vice-royautés", "vide-bouteille", "vide-bouteilles", "vide-cave", "video-clip", "video-clips", "vide-ordures", "vide-poche", "vide-poches", "vide-pomme", "vide-pommes", "vif-argent", "vifs-argents", "ville frontière", "ville-frontière", "villes frontières", "villes-frontières", "vis-à-vis", "vive-arête", "vive-eau", "vives-arêtes", "vives-eaux", "voiture-balai", "voiture-bar", "voiture-lit", "voiture-restaurant", "voiture-salon", "voitures-balais", "voitures-bars", "voitures-lits", "voitures-restaurants", "voitures-salons", "vol-au-vent", "volley-ball", "volley-balls", "volte-face", "vraie-fausse", "vraies-fausses", "vrai-faux", "vrais-faux")
   W = Array("wagon-bar", "wagon-citerne", "wagon-écurie", "wagon-foudre", "wagon-lit", "wagon-poste", "wagon-réservoir", "wagon-restaurant", "wagons-bars", "wagons-citernes", "wagons-écuries", "wagons-foudres", "wagons-lits", "wagons-poste", "wagons-réservoirs", "wagons-restaurants", "wagons-tombereaux", "wagons-trémies", "wagon-tombereau", "wagon-trémie", "walkies-talkies", "walkie-talkie", "walk-man", "water-closet", "water-closets", "water-polo", "water-polos", "week-end", "week-ends", "white-spirit", "white-spirits")
   Y = Array("yacht-club", "yacht-clubs", "yé-yé", "yo-yo")
   txp = Array(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, V, W, Y)
   sp = Array(",", ";", ".", "!", "?", ":", "-", "'", "(", ")", "...", """", "«", "»", "*", Chr(133), Chr(160), vbLf, vbCr)
   For Each oCel In rr.Cells
      xx = CStr(oCel.Value)
      xx = WorksheetFunction.Trim(xx)
      For ii = 0 To UBound(txp)
         For jj = 0 To UBound(txp(ii))
            xx = Replace(xx, txp(ii)(jj), "x", , , vbTextCompare)
         Next jj
      Next ii
      For ii = 0 To UBound(sp)
         xx = Replace(xx, sp(ii), Space(1))
      Next ii
      xx = WorksheetFunction.Trim(xx)
      If xx <> "" Then CompteMots = CompteMots + UBound(Split(xx)) + 1
   Next oCel
End Function[/B][/COLOR]
Bien entendu, la liste des mots composés n'est pas exhaustive (il n'y en a ici qu'à peine plus de deux mille sept cents) : il ne vous reste qu'à la compléter.
ROGER2327
#3541


Dimanche 8 Merdre 137 (Cocuage de Monsieur le Père Ubu, SS)
6 Prairial An CCXVIII
2010-W21-2T21:02:10Z
 

Pièces jointes

  • CompteMots_3541.zip
    43.6 KB · Affichages: 63

JNP

XLDnaute Barbatruc
Re : Compter mots dans cellule

Re bonjour :),
Bien entendu, la liste des mots composés n'est pas exhaustive (il n'y en a ici qu'à peine plus de deux mille sept cents) : il ne vous reste qu'à la compléter.
Beau travail ;). Certes, l'exhaustivité sera longue et difficile. Entre autre tout les cas de nombres écrits en toutes lettres.
Mais que pensez-vous de l'hypothèse inverse, càd de détecter les traits d'union amenés par une phrase interrogative ou une union d'usage ?
L'exhaustivité ne serait-elle pas plus facile à atteindre ?
Bonne journée :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 368
Messages
2 087 669
Membres
103 633
dernier inscrit
Surfer