Sub Lise2007()

' Macro -- Conception : Luc Labelle mai 2016

 

     Dim Chiffre As String

    Dim MBTitle As String

   Dim Stat As String

   Dim Factor As String

    Dim Syllabes As String

   Dim Docstats As String

   Dim J As Integer

  

   ActiveDocument.Content.LanguageID = wdFrench

   Selection.Range.LanguageID = wdFrench

   

  'Flesch reading ease = 206.835 - (1.015 * ASL) - (84.6 * average syllabes per word)

  

   Carmot = ActiveDocument.Content.ReadabilityStatistics(5).Value

  'Word 2007  readability statistics 5 = nombre de caractères par mot

   'Word 2016 readability statistics 7 = nombre de caractères par mot

 

 

  MotsPhrase = ActiveDocument.Content.ReadabilityStatistics(6).Value

 

     'BONUS-MALUS pour le nombre de caractères

   If Carmot <= 4.5 Then

    Factor = 2.9

        End If

       

        If Carmot > 4.5 And Carmot <= 5.8 Then

        Factor = 2.8

     End If

   

    If Carmot > 5.8 Then

        Factor = 2.7

      End If

   

 

   Chiffre = (206.835 - (1.015 * MotsPhrase) - 84.6 * Carmot / Factor)

  

   Syllabes = Carmot / Factor

    MBTitle = "Selon LISE..."

   

'BONUS-MALUS pour le nombre de mots

 

        If MotsPhrase <= 13 Then

        Chiffre = Chiffre + 7

      End If

     

      If MotsPhrase <= 14 And MotsPhrase > 13 Then

        Chiffre = Chiffre + 5

      End If

   

    If MotsPhrase <= 15 And MotsPhrase > 14 Then

        Chiffre = Chiffre + 3

          End If

         

           If MotsPhrase <= 16 And MotsPhrase > 15 Then

        Chiffre = Chiffre + 1

          End If

         

             If MotsPhrase > 20 And MotsPhrase <= 25 Then

        Chiffre = Chiffre - 1

      End If

     

        If MotsPhrase > 25 And MotsPhrase <= 30 Then

        Chiffre = Chiffre - 2

      End If

     

        If MotsPhrase > 30 Then

        Chiffre = Chiffre - 5

      End If

    

    'ARRONDIR A ZERO LES CHIFFRES NÉGATIFS

    If Chiffre < 0 Then

        Chiffre = 0

        End If

       

    'PRESENTATION

    Stat = Round(Chiffre, 1)

    Syllabes = Round(Syllabes, 1)

   

      With ActiveDocument.Content

       

             For J = 6 To 6

            Docstats = Docstats & .ReadabilityStatistics(J)

            Docstats = Docstats & "  "

            Docstats = Docstats & .ReadabilityStatistics(J).Value

            Docstats = Docstats & vbCrLf

        Next J

        End With

       

    MsgBox "INDICE DE LISIBILITÉ  " & Stat & "                       " & Docstats & vbCrLf _

& vbCrLf & " 0-9 : Vous êtes totalement illisible !" _

& vbCrLf & "10-19 : Hélas, il faut un doctorat pour vous lire." _

& vbCrLf & "20-29 : Vous êtes plus ou moins lisible." _

& vbCrLf & "30-39 : Vous êtes lisible." _

& vbCrLf & "40-54 : Bravo ! Vous êtes très lisible. " _

& vbCrLf & "55-100 : Vous êtes digne de La Fontaine !" _

& vbCrLf & vbCrLf, vbOKOnly, MBTitle

   

 

End Sub