Personalisation des notes bas de page

phnoel Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   -  
Bruno83200_6929 Messages postés 472 Date d'inscription   Statut Membre Dernière intervention   -

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

A voir également:

7 réponses

phnoel Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   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
brucine Messages postés 21084 Date d'inscription   Statut Membre Dernière intervention   3 303
 

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
Bruno83200_6929 Messages postés 472 Date d'inscription   Statut Membre Dernière intervention   92
 

Super !

0
Bruno83200_6929 Messages postés 472 Date d'inscription   Statut Membre Dernière intervention   92
 

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
phnoel Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   1
 

Merci de votre retour.

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

0
Bruno83200_6929 Messages postés 472 Date d'inscription   Statut Membre Dernière intervention   92
 

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
Bruno83200_6929 Messages postés 472 Date d'inscription   Statut Membre Dernière intervention   92
 

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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
phnoel Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   1
 

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
Bruno83200_6929 Messages postés 472 Date d'inscription   Statut Membre Dernière intervention   92
 

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
phnoel Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   1
 

"On" y est presque. Super.

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

0
phnoel Messages postés 60 Date d'inscription   Statut Membre Dernière intervention   1
 

Merci Brucine,

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

Rechercher/remplacer peut être utilisé 

0