compter les mots gras

rafii

XLDnaute Nouveau
Bonjour, svp je voudrais compter les mots gras dans mon fichier word ou excel
comment faire ?
 

Softmama

XLDnaute Accro
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

  • Fonction NbMotsGras.xls
    36 KB · Affichages: 90
Dernière édition:

Softmama

XLDnaute Accro
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:

Softmama

XLDnaute Accro
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:

Softmama

XLDnaute Accro
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
    15.1 KB · Affichages: 61
  • XL.zip
    15.1 KB · Affichages: 50
  • XL.zip
    15.1 KB · Affichages: 55

Softmama

XLDnaute Accro
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
 

rafii

XLDnaute Nouveau
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

  • Classeur1.xls
    16.5 KB · Affichages: 98
  • Classeur1.xls
    16.5 KB · Affichages: 97
  • Classeur1.xls
    16.5 KB · Affichages: 94
Dernière édition:

Softmama

XLDnaute Accro
Re : compter les mots gras

Bonjour,

j'ai collé ton exemple dans le fichier test1.zip, un peu adapté la macro et le résultat semble ok... A tester plus en profondeur.
 

Pièces jointes

  • XL.zip
    20.7 KB · Affichages: 52
  • XL.zip
    20.7 KB · Affichages: 50
  • XL.zip
    20.7 KB · Affichages: 49

Discussions similaires

Réponses
19
Affichages
647

Statistiques des forums

Discussions
312 676
Messages
2 090 804
Membres
104 670
dernier inscrit
Djnic30