compter les mots gras

  • Initiateur de la discussion Initiateur de la discussion rafii
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Re : compter les mots gras

Bonjour Rafii, JCGL 🙂

Dans le cas où il y aurait plusieurs mots par cellules et que seuls certains d'entre eux seraient en gras, je te propose cette fonction personnalisée (pour elle un mot Gras est un mot dont le 1er caractère est gras) :

VB:
Function MotsGras&(Plage As Range)
Application.Volatile
Dim c As Range
For Each c In Plage.SpecialCells(xlCellTypeConstants, 2)
  If c.Characters(Start:=1, Length:=1).Font.FontStyle = "Gras"  Then MotsGras = MotsGras + 1
  a = InStr(c, " ")
  Do While a > 0
   If a = Len(c) Then Exit Do
   If c.Characters(Start:=a + 1, Length:=1).Font.FontStyle = "Gras" Then MotsGras = MotsGras + 1
   a = InStr(a + 1, c, " ")
  Loop
Next c
End Function

un exemple dans le fichier joint :

EDIT : Correction d'une erreur
 

Pièces jointes

Dernière édition:
Re : compter les mots gras

re rafii,

Un essai ci-dessous (à tester)
VB:
Sub MotsGrasWord()
' ****************************************************
'Nécessite d'activer la référence Microsoft Word xx.x Object Library
' Alt+F11 / Références et cocher la réf dans la liste
' ****************************************************
Dim Fichier As String
Dim wordApp As Word.Application
Dim wordDoc As Word.Document
Dim CollWord As Word.Words
Dim t As Long, u As Integer, MotsenGras As Long
Dim A as string, B as string

Application.ScreenUpdating = False
Fichier = "C:\CHeminduFichier\" & "NomduFichier.doc" 'Adapter le bon chemin et nom de fichier

Set wordApp = CreateObject("Word.Application")
wordApp.Visible = False
Set wordDoc = wordApp.Documents.Open(Fichier) 'ouverture Doc word
Set CollWord = wordDoc.Content.Words
For t = 1 To CollWord.Count 'boucle sur les mots du document
A = "!?,.;:()' 1234567890+-*=/€£$%[]"  'Lettres à enlever des mots trouvés pour ne garder que les "vrais" mots et pas prendre en compte les nombres ou les signes de ponctuation qui seraient en gras (probablement oublié qques uns mais le principe est là)
B = CollWord(t)
  For u = 1 To Len(A)
    B = Replace(B, Mid(A, u, 1), "")
  Next u
  If Len(Replace(B, Chr(13), "")) > 0 Then
    If CollWord(t).Bold = -1 Then MotsenGras = MotsenGras + 1
  End If
Next t
 
wordDoc.Close False 'fermeture documents word
wordApp.Quit
Set wordDoc = Nothing
Set wordApp = Nothing
Set CollWord = Nothing
MsgBox "Il y a " & MotsenGras & " mots en gras dans le document " & Fichier
End Sub
 
Dernière édition:
Re : compter les mots gras

Je t'apporte quelques explications quant au résultat renvoyé par cette macro, car je ne suis pas sur que l'on s'entende bien par le sens d'un 'mot'. J'ai considéré qu'un mot ne pouvait être uniquement composé de ces caractères là : "!,.;:?()' 1234567890+-*=/€£$%[]" mais qu'un mot pouvait les contenir.

Ainsi, sur cet exemple :
Le forum d'Excel Download est un bon endroit où se croisent souvent plus de 500 personnes, qui te collent des formules du type : x = int(5 + a / Rnd) et qui le font juste pour le plaisir, vu que ça leur rapporte 0€!
la macro comptera les 12 mots en gras suivants :
Le forum d'Excel Download souvent personnes formules x int a Rnd plaisir
elle ne compte pas :
500 + / 0€!
 
Dernière édition:
Re : compter les mots gras

re,

ben heu, que veux-tu dire par là ?
La macro, tu la copies dans un module sous Excel (Alt+F11) et tu l'exécutes depuis une feuille de calcul Excel.

Je te joins un exemple. Je fais afficher en colonne A tous les mots en gras trouvés dans le fichier Test1.doc inclus dans le zip. Dézippe le fichier avant de lancer le fichier excel.
 

Pièces jointes

  • XL.zip
    XL.zip
    15.1 KB · Affichages: 61
  • XL.zip
    XL.zip
    15.1 KB · Affichages: 50
  • XL.zip
    XL.zip
    15.1 KB · Affichages: 55
Re : compter les mots gras

Bonjour c'est toujours moi, peut on avoir la même macro pour une application sur un texte écrit en 2 langues (français + arabe) avec bien sur les mots gras insérer dans ce texte ?
Merci encore.
 
Re : compter les mots gras

Bonjour,

Je pense que tu peux utiliser la même macro, en adaptant juste 2 choses :
1- modifie le chemin et le nom du fichier
2- ajoute les caractères de ponctuation ou autres à enlever en arabe, que je ne connais pas

Si tu ne t'en sors pas, poste un petit fichier word dans les 2 langues en précisant le résultat que tu veux
 
Re : compter les mots gras

Bonsoir cher ami,
voila je voudrais tout simplement savoir le nombre de mots gras écrit en français dans un texte word qui comprend une traduction en arabe de ces même mots en français. (je t'envoie un exemple en excel au lieu du word car le fichier attaché word n'a pas pu être envoyer ou bien voila un extrait ci-dessous!)
Merci encore.

balourd, e [balur, urd] adj. est balourd, il manque de finesse (= lourd).[FONT=&quot][/FONT]
[FONT=&quot]-[/FONT] [FONT=&quot]غليظ الأخلاق[/FONT][FONT=&quot] : ص. فاقد للدقة ([/FONT]=[FONT=&quot] ثقيل ) .[/FONT]​
balourdise n.f. Ses balourdises l'ont ridiculisé (= sottise).[FONT=&quot][/FONT]
[FONT=&quot]- حماقة[/FONT][FONT=&quot] : إ.مؤ هذه الحماقات جعلته سخرية ([/FONT]=[FONT=&quot] غباء ) .[/FONT]​
[FONT=&quot] [/FONT]
- baIsa [balza] n.m. Le balsa est un bois très léger utilisé pour fabriquer des modèles réduits.[FONT=&quot][/FONT]
[FONT=&quot]- بلزا[/FONT][FONT=&quot] : إ. مذ. البلزا خشب خفيف جدا يستعمل في صناعة نماذج مصغرة .[/FONT]​
 

Pièces jointes

Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
19
Affichages
869
Réponses
3
Affichages
122
Retour