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

macro et lisibilité

13 réponses
Avatar
Pif
Bonjour, pour occuper mes soir=E9es... je veux faire une macro sur la
lisibilit=E9...

Du coup, j'envisage deux choses :
- d=E9placer le curseur courant, comme dans la recherche...
- g=E9n=E9rer un commentaire pour chaque phrase, comme dans le suivi de
modifications.

Pouvez vous me dire quelles sont les instructions qui permettent de
d=E9placer un curseur ? de g=E9n=E9rer un commentaire ?

Quelle est la fonction qui permet de r=E9cup=E9rer un texte s=E9lectionn=E9=
?
Comment fonctionne le texte, est il dans un sorte de balisage XML like
quand on le r=E9cup=E8re ?

Merci.

3 réponses

1 2
Avatar
Anacoluthe
Bonjour !

'Pif' nous a écrit ...
en fait, ce n'est pas bien long... si ce n'est ce bug...


Pour info je n'ai vu aucun bug avec votre exemple et mon code.
Le bouclage infini dont vous parlez n'a rien à voir.
Amha il s'agit d'une pebcak error indéterminée... ;-)

Anacoluthe
« Aime la vérité, mais pardonne à l'erreur. »
- VOLTAIRE

Avatar
Pif
Bonjour, je ne pense pas qu'il y ait de bug dans ce code... mais dans
word (oui, je sais, ca fait prétentieux d'affirmer ce genre de
choses...).
Le problème ne se produit qu'à à partir de la 40 page de mon document,
à la première occurence d'un quote anglais. Quand je remplace les
simples quotes par des chevrons, ca reppart jusqu'au ... simple quote
suivant...

Le problème est donc bien identifié...
j'ai essayé de changer les paramètres de détection de la langue.. ça
change rien..

On 1 avr, 17:56, Anacoluthe wrote:

Pour info je n'ai vu aucun bug avec votre exemple et mon code.
Le bouclage infini dont vous parlez n'a rien à voir.
Amha il s'agit d'une pebcak error indéterminée... ;-)


Avatar
Pif
voici le code :
(liste est une listebox, seuil un champ de texte ou on rentre la
longueur minimum de la phrase à souligner,


Public Sub update()
Dim val As Integer
val = CInt(seuil.Value)

' INITIALISATION
Dim tabCpt(100) As Integer
Dim intI As Integer
For intI = 0 To 100
tabCpt(intI) = 0
Next

' PARCOURS DU CONTENU
Dim Phrase As Range
For Each Phrase In ActiveDocument.Content.Sentences
wdCount = Phrase.Words.Count
If wdCount >= val Then
Phrase.HighlightColorIndex = wdPink
End If

If wdCount > 100 Then
tabCpt(100) = tabCpt(100) + 1
Else
MsgBox Phrase
tabCpt(wdCount) = tabCpt(wdCount) + 1 ' bouclage infini ici....
End If
Next Phrase

' CALCUL CUMUL et MOYENNE
Dim moyenne As Double
moyenne = 0
Dim cumul(100) As Integer
For intI = 99 To 0 Step -1
cumul(intI) = cumul(intI + 1) + tabCpt(intI)
moyenne = moyenne + tabCpt(intI) * intI
' MsgBox i & " " & moyenne
Next intI

moyenne = moyenne / cumul(0)
lab_lgmoy.Caption = moyenne

Dim chaine As String
liste.Clear
For intI = 99 To 0 Step -1
If tabCpt(intI) > 0 Then
chaine = "Longueur " & intI & " / " & tabCpt(intI) & "/" &
cumul(intI)
liste.AddItem (chaine)
End If
Next intI

End Sub
Private Sub refresh_Click()
Call update
End Sub
1 2