Personalisation des notes bas de page

Bonjour,

Comment insérer, en une seule opération, une espace insécable après les numéros de toutes les notes dans le bas de page ?

Rechercher / remplacer ?

Macro ?

Merci de votre aide


Windows / Firefox 140.0

7 réponses

Résumé de la discussion

L’opération peut être automatisée par une macro VBA qui insère un espace insécable après chaque numéro de notes de bas de page dans Word. Plusieurs codes existent, principalement des macros qui parcourent les notes et ajoutent ChrW(160) après le numéro, avec des variantes selon le format de numérotation (avec ou sans point, ou autres séparateurs). Pour les exécuter, il faut ouvrir l’éditeur VBA (Alt+F11), ajouter un module, coller le code et lancer la macro, puis enregistrer le document en .docm. Des retours indiquent que le placement précis de l’espace peut varier et nécessiter des ajustements (par exemple 1 ou 2 caractères après le numéro ou changer le caractère ciblé selon le format).

Bobot (l’IA à votre service)
  1. J'ai, au pif, modifié la ligne  9 par :

    noteText.MoveStart wdCharacter, 0 ' Passe le numéro

    et le résultat est correct et, je n'ai pas remarqué de dégâts collatéraux.

    Pouvez-vous toutefois me confirmer que cette modif était judicieuse ?

    Merci

    1
    1. Bonjour,

      Si on a du mal à y parvenir par une macro, deux autres pistes.

      Modification des tabulations dans le style:
      https://www.reddit.com/r/MicrosoftWord/comments/dgj3xy/space_between_footnotes_number_and_note/?tl=fr

      Rechercher-Remplacer:
      On a ici le cas inverse (supprimer l'espace):
      https://www.reddit.com/r/MicrosoftWord/comments/sv7fp2/footnotes_space_between_footnote_number_and/?tl=fr

      mais la syntaxe de remplacement pour cette fois-ci ajouter un espace se trouve là:
      https://www.msofficeforums.com/word/28124-space-between-footnote-number-footnote.html

      où je suppose que 32 doit être remplacé par 160 si l'espace doit être insécable.

      0
    2. Super !

      0
  2. Bonjour,

    Si vous devez effectuer cette opération fréquemment ou sur plusieurs documents, une macro VBA peut automatiser le processus. Voici un exemple de code VBA pour Word :

    Sub InsererEspaceInsecableApresNotes()
        Dim note As Footnote
        For Each note In ActiveDocument.Footnotes
            note.Range.Text = note.Range.Text & Chr(160)
        Next note
    End Sub

    0
    1. Merci de votre retour.

      J'ai tenté...mais ça n'a pas fonctionné ! Ai-je oublié quelque chose ?

      0
      1. Alors suivez bien ceci:

        - Accéder à l'éditeur VBA
        Appuyez sur Alt + F11 pour ouvrir l'éditeur VBA.
        Insérez un nouveau module : Insertion > Module.


        - Écrire la macro
        Copiez le code suivant pour parcourir les notes de bas de page et insérer une espace insécable après le numéro :

        Sub AjouterEspaceInsecableNotes()
            Dim note As Footnote
            Dim noteText As Range
            
            For Each note In ActiveDocument.Footnotes
                Set noteText = note.Range
                ' Supposons que le numéro est suivi d'un point ou d'un autre caractère
                If Len(noteText.Text) > 1 Then
                    noteText.MoveStart wdCharacter, 1 ' Ignore le numéro de note automatique
                    noteText.MoveEndUntil Cset:=".", Count:=1 ' Avance jusqu'au point
                    noteText.MoveEnd wdCharacter, 1 ' Inclut le point
                    noteText.InsertAfter ChrW(160) ' Insère une espace insécable (code Unicode 160)
                End If
            Next note
        End Sub

        - Exécuter la macro
        Enregistrez le document avec prise en charge des macros (.docm).
        Appuyez sur F5 dans l'éditeur VBA ou exécutez la macro depuis Affichage > Macros > Exécuter.


        La macro parcourt chaque note de bas de page et insère une espace insécable après le numéro (en supposant qu'il est suivi d'un point).


        Testez sur un document de sauvegarde pour éviter toute perte de données.


        0
        1. Personnalisation :
          Si vos notes ont un format différent (par exemple, 1), 1-), modifiez la ligne noteText.MoveEndUntil Cset:="." pour cibler le caractère approprié (par exemple, ")" ou "-").

          0
      2. Eh bien je suis désolé. Vos indications sont pourtant claires et précises...et ça ne fonctionne toujours pas  !

        NB le format des notes est "standard" (1,2,3...) sans point,  avec renumérotation à chaque section.

        0
        1. Désolé ! Essayez cette dernière :

          Sub AjouterEspaceInsecableNotesSimples()
              Dim note As Footnote
              Dim noteText As Range
              
              For Each note In ActiveDocument.Footnotes
                  Set noteText = note.Range
                  ' Déplace au début du texte après le numéro automatique
                  noteText.Collapse wdCollapseStart
                  noteText.MoveStart wdCharacter, 1 ' Passe le numéro
                  ' Vérifie s'il n'y a pas d'espace ou caractère après
                  If noteText.Characters(1) <> ChrW(160) And noteText.Characters(1) <> " " Then
                      noteText.InsertBefore ChrW(160) ' Insère une espace insécable avant le texte
                  End If
              Next note
          End Sub
          0
      3. "On" y est presque. Super.

        L'espace est mal placé (1 ou 2 caractères après le numéro)

        0
        1. Merci Brucine,

          La macro précedente avait fonctionné, mais les liens fournis étaient très didactique.

          Rechercher/remplacer peut être utilisé 

          0