Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

extraction mots

7 réponses
Avatar
exagone69
Bonjour

Nouveau dans ce forum je vous demande d'excuser par avance mes maladresses

Ma question : existe-t-il dans Word 97 une manip (ou une
macro)permettant d'extraire les mots d'un texte long (150 pages) selon
leur police, corps et présentation (italique, gras, ...)avec le numéro
de la page où ils apparaissent ?
Merci d'avance

Francis Gros

7 réponses

Avatar
Geo

Bonjour

Nouveau dans ce forum je vous demande d'excuser par avance mes maladresses

Ma question : existe-t-il dans Word 97 une manip (ou une macro)permettant d'extraire
les mots d'un texte long (150 pages) selon leur police, corps et présentation
(italique, gras, ...)avec le numéro de la page où ils apparaissent ?
Merci d'avance


Ça dépend où vous voulez cette extraction, car ce que vous demandez
ressemble à un index.
http://faqword.free.fr/articles.php?lng=fr&pg46
Je verrai bien une Rechercher Remplacer des mots ayant les
caractéristiques indiquées en les remplaçant par eux-mêmes plus un
champ d'entré d'index.

--
A+

Avatar
Francis Gros

Bonjour

Nouveau dans ce forum je vous demande d'excuser par avance mes
maladresses

Ma question : existe-t-il dans Word 97 une manip (ou une
macro)permettant d'extraire les mots d'un texte long (150 pages) selon
leur police, corps et présentation (italique, gras, ...)avec le numéro
de la page où ils apparaissent ?
Merci d'avance


Ça dépend où vous voulez cette extraction, car ce que vous demandez
ressemble à un index.
http://faqword.free.fr/articles.php?lng=fr&pg46
Je verrai bien une Rechercher Remplacer des mots ayant les
caractéristiques indiquées en les remplaçant par eux-mêmes plus un champ
d'entré d'index.

Oui je souhaite faire un index mais sans tout ressaisir avec entrée

d'index. En effet les mots à indexer sont très nombreux (de 50 à 100 par
page sur 150 pages)


Avatar
Geo

Oui je souhaite faire un index mais sans tout ressaisir avec entrée d'index.


D'accord, le rechercher remplacer permet de marquer toutes les
occurrences d'un même mot, ou groupe de mots en une seule opération.

les mots à indexer sont très nombreux (de 50 à 100 par page sur 150 pages)


Et le nombre d'entrées d'index sera élevé ?

--
A+

Avatar
Francis Gros

Oui je souhaite faire un index mais sans tout ressaisir avec entrée
d'index.


D'accord, le rechercher remplacer permet de marquer toutes les
occurrences d'un même mot, ou groupe de mots en une seule opération.
D'accord mais les mots sont tous différents (il s'agit de liste

généalogique)

les mots à indexer sont très nombreux (de 50 à 100 par page sur 150
pages)


Et le nombre d'entrées d'index sera élevé ? presqu'autant que de mot (sans doute plus de 1000)




Avatar
Geo


Oui je souhaite faire un index mais sans tout ressaisir avec entrée d'index.


D'accord, le rechercher remplacer permet de marquer toutes les occurrences d'un même
mot, ou groupe de mots en une seule opération.
D'accord mais les mots sont tous différents (il s'agit de liste généalogique)


les mots à indexer sont très nombreux (de 50 à 100 par page sur 150 pages)


Et le nombre d'entrées d'index sera élevé ? presqu'autant que de mot (sans doute plus
de 1000)



Gasp !
Bon voici une macro, à adapter, qui marque un nombre variable de textes
différents. Dans l'exemple il y en a 4, mais on peut sans problème
l'étendre à un plus grand nombre.
On suppose que la condition de format est la même pour tous les textes
recherchés
Pour un millier il faudra faire plusieurs passages avec des listes
différentes.
Une autre possibilité serait de faire un document avec la liste des
mots ou expressions à marquer.
Si la condition sur le format dépend des textes, c'est probablement
plutôt dans cette direction : tableau avec le texte, la police, ...

Sub MarquerIndex()
Dim T As String
Dim TableEntrées() As String
Dim i As Integer
' liste des noms à marquer comme entrées d'index
' séparateur : virgule
T = "qui est,est,elle,il"
TableEntrées = Split(T, ",")
For i = 0 To UBound(TableEntrées)
Selection.HomeKey Unit:=wdStory

Dim Trouvé As Boolean
Do
Selection.Find.ClearFormatting

With Selection.Find
With .Font
.Size = 11 ' préciser la taille de police recherchée
.Italic = False ' par exemple
.Bold = False ' par exemple
.Underline = wdUnderlineNone ' par exemple
.Color = wdColorAutomatic ' par exmple
.name = "Calibri" ' Per exemple
End With
.MatchWildcards = True
.MatchWholeWord = True
.Forward = True
.Wrap = wdFindStop
Trouvé = .Execute(findtext:=TableEntrées(i))
If Trouvé Then
Selection.Collapse (wdCollapseEnd)
Selection.Fields.Add Range:=Selection.Range, _
Type:=wdFieldIndexEntry, _
Text:=Chr(34) & TableEntrées(i) & Chr(34)
Else
Exit Do
End If
End With

Loop

Next i
MsgBox "Terminé"
End Sub








Et comme vous aurez sûrement à effacer les index pour tout refaire :

Sub SuppEntreeIndex()
Dim Champ As Field
Dim i As Long
For i = ActiveDocument.Fields.Count To 1 Step -1
If ActiveDocument.Fields(i).Type = wdFieldIndexEntry Then
ActiveDocument.Fields(i).Delete
End If
Next
End Sub

--
A+



Avatar
Dom
Bonjour,

avec Word 2003, ce travail pourrait se faire en un quart d'heure par 4
manipulations :
1- Rechercher les mots gras et italique (par exemple), et en activant
l'option Surligner tous les éléments trouvés
2- Copier tous les mots trouvés dans un autre document pour en faire un
fichier de concordance
3- Exécuter l'indexation grâce au fichier de concordance grâce au bouton
Marquage auto de la boîte de dialogue Index
4- Générer l'index

Seulement, Francis a Word 97 qui ne connaît pas la sélection multiple dans
le rechercher-remplacer. La macro qui suit indexe tous les mots ou
expressions en gras. Elle fonctionne sous 97. Il restera ensuite à générer
l'index.

Sub IndexMotsGras()
Dim rWord As Range
Dim rPrecWord As Range
With ActiveDocument
Set rPrecWord = .Content.Words(1)
For Each rWord In .Content.Words
If rWord.Font.Bold Then
If rPrecWord.Font.Bold Then
rPrecWord.End = rWord.End
Else
Set rPrecWord = rWord
End If
Else
If rPrecWord.Font.Bold Then
If Not Asc(rPrecWord.Text) = 19 Then
.Indexes.MarkEntry rPrecWord, rPrecWord.Text, rPrecWord.Text
End If
End If
Set rPrecWord = rWord
End If
Next rWord
End With
End Sub

Dom




Oui je souhaite faire un index mais sans tout ressaisir avec entrée
d'index.


D'accord, le rechercher remplacer permet de marquer toutes les
occurrences d'un même mot, ou groupe de mots en une seule opération.
D'accord mais les mots sont tous différents (il s'agit de liste

généalogique)

les mots à indexer sont très nombreux (de 50 à 100 par page sur 150
pages)


Et le nombre d'entrées d'index sera élevé ? presqu'autant que de mot (sans doute plus de 1000)







Avatar
Francis Gros
Bonjour,

avec Word 2003, ce travail pourrait se faire en un quart d'heure par 4
manipulations :
1- Rechercher les mots gras et italique (par exemple), et en activant
l'option Surligner tous les éléments trouvés
2- Copier tous les mots trouvés dans un autre document pour en faire un
fichier de concordance
3- Exécuter l'indexation grâce au fichier de concordance grâce au bouton
Marquage auto de la boîte de dialogue Index
4- Générer l'index

Seulement, Francis a Word 97 qui ne connaît pas la sélection multiple dans
le rechercher-remplacer. La macro qui suit indexe tous les mots ou
expressions en gras. Elle fonctionne sous 97. Il restera ensuite à générer
l'index.

Sub IndexMotsGras()
Dim rWord As Range
Dim rPrecWord As Range
With ActiveDocument
Set rPrecWord = .Content.Words(1)
For Each rWord In .Content.Words
If rWord.Font.Bold Then
If rPrecWord.Font.Bold Then
rPrecWord.End = rWord.End
Else
Set rPrecWord = rWord
End If
Else
If rPrecWord.Font.Bold Then
If Not Asc(rPrecWord.Text) = 19 Then
.Indexes.MarkEntry rPrecWord, rPrecWord.Text, rPrecWord.Text
End If
End If
Set rPrecWord = rWord
End If
Next rWord
End With
End Sub

Dom




Oui je souhaite faire un index mais sans tout ressaisir avec entrée
d'index.
D'accord, le rechercher remplacer permet de marquer toutes les

occurrences d'un même mot, ou groupe de mots en une seule opération.
D'accord mais les mots sont tous différents (il s'agit de liste

généalogique)
les mots à indexer sont très nombreux (de 50 à 100 par page sur 150
pages)
Et le nombre d'entrées d'index sera élevé ? presqu'autant que de mot (sans doute plus de 1000)


Bravo à tous



Je crois que vais essayer la solution prônée par Dom
Peut-être essaierai-je de trouver une version WORD 2003
Je vous tiendrai au courant du résultat
Cordialement à tous

Francis Gros