1 votes

Word ou LibreOffice/OpenOffice - Comment insérer automatiquement le texte de note de bas de page dans le corps du document au niveau de la marque de renvoi de note de bas de page ?

J'ai quelques documents docx qui contiennent beaucoup de notes de bas de page avec généralement un court texte de note de bas de page (par exemple "Richard 2010." ou "voir la section xy"). Il est beaucoup plus pratique d'avoir ces notes dans le corps du document entre crochets[] à la place du marqueur de référence de la note de bas de page. Je ne trouve pas de fonction pour cela dans Word ou LibreOffice. Je suppose que j'ai besoin d'une macro.

J'ai vu ici une macro qui convertit les commentaires en notes de bas de page. Ce n'est que dix lignes. J'ai essayé pendant une nuit d'apprendre quelques bases des macros et de modifier quelques macros existantes mais j'ai lamentablement échoué.

0voto

Un point de départ :

Sub bootNoteIntoBody()
Dim bScreenUpdating As Boolean
Dim oDoc As Document
Dim oNote As Footnote
Dim rng As Range
Dim strStyleName As String

bScreenUpdating = Application.ScreenUpdating
On Error GoTo finish
Application.ScreenUpdating = False
Set oDoc = ActiveDocument
For Each oNote In ActiveDocument.Footnotes
  ' choisissez votre propre longueur maximale
  If Len(oNote.Range.Text) < 20 Then
    Set rng = oNote.Reference
    With rng
      strStyleName = .Style
      .Text = "[" & cleanup(oNote.Range.Text) & "]"
      .Style = strStyleName
    End With
  End If
Next

finish:
Application.ScreenUpdating = bScreenUpdating

End Sub

Function cleanup(s As String) As String
' remplace certains caractères par un espace.
Dim i As Integer
Dim r As String
r = ""
For i = 1 To Len(s)
  Select Case AscW(Mid(s, i, 1))
    Case 1 To 31 ' et peut-être d'autres
      r = r & " "
    Case Else
      r = r & Mid(s, i, 1)
  End Select
Next
cleanup = r
End Function

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X