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

suppression d'espace dans un signet

2 réponses
Avatar
Eric
Bonjour,

Débutant en VBA sous word (j'ai plus l'habitude d'XL), j'ai quelques
problèmes pour définir et récupérer le contenu de mes signets.

J'ai un document contenant des informations fixes et des informations issues
d'une fusion préalable (donc changeant à chaque document)

Les informations issues de la fusion me servent à classer le document dans
ma GED via OLE.


Pour repérer mes informations nécessaires au classement , je fais une
recherche d'une donnée fixe, puis en me déplacant dans le document, je
définis un signet sur la zone qui m'interesse.
Cela fonctionne correctement sauf dans le cas où je sélectionne toute la
ligne comme variable. Dans l'exemple ci-desous, quand j'ai plusieurs mots
dans ma ligne c'est bon, par contre, quand j'ai qu'un seul mot, j'ai un
espace rajouté dans mon signet.

Je souhaite savoir s'il existe une fonction du style SUPPRESPACE en VBA sous
Word, où éventuellement une autre méthode pour définir mes signets


Ci-dessous extrait de mon code généré automatiquement par l'enregistreur


'signet Nom
Selection.ExtendMode = False
Selection.Find.ClearFormatting
With Selection.Find
.Text = "campagne"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
End With

Selection.Find.Execute
Selection.MoveLeft Unit:=wdCharacter, Count:=4
With Selection
' Collapse current selection to insertion point.
.Collapse
' Turn extend mode on.
.Extend
' Extend selection to word.
.Extend
'Etend à la ligne complète
.Extend
End With

With ActiveDocument.Bookmarks
.Add Range:=Selection.Range, Name:="Nom"
.DefaultSorting = wdSortByName
.ShowHidden = False
End With

Selection.ExtendMode = False

D'avance merci
Eric

2 réponses

Avatar
Anacoluthe
Bonjour !

'Eric' nous a écrit ...
Cela fonctionne correctement sauf dans le cas où je sélectionne toute la
ligne comme variable.


Votre système d'Extend successif est assez aberrant : vous vous
retrouvez avec un Extend (F8) de trop si la phrase ne contient
qu'un mot et vous récupérez alors une marque de paragraphe
(équivalent d'un 4ème Extend).
Utilisez MoveLeft en extension pour sélectionner clairement par phrase
Selection.MoveLeft Unit:=wdSentence, Count:=1, Extend:=wdExtend
et vous n'aurez plus aucun problème !

Anacoluthe
« La vraie question est : pourquoi sélectionner?
Et je ne connais pas la réponse. »
- Albert JACQUARD




'signet Nom
Selection.ExtendMode = False
Selection.Find.ClearFormatting
With Selection.Find
.Text = "campagne"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
End With

Selection.Find.Execute
Selection.MoveLeft Unit:=wdCharacter, Count:=4
With Selection
' Collapse current selection to insertion point.
.Collapse
' Turn extend mode on.
.Extend
' Extend selection to word.
.Extend
'Etend à la ligne complète
.Extend
End With

With ActiveDocument.Bookmarks
.Add Range:=Selection.Range, Name:="Nom"
.DefaultSorting = wdSortByName
.ShowHidden = False
End With

Selection.ExtendMode = False

D'avance merci
Eric




Avatar
Eric
merci, ça fonctionne bien comme cela, et merci pour l'explication
complémentaire

bonne réception
Eric

"Anacoluthe" a écrit dans le message de
news:Ok$
Bonjour !

'Eric' nous a écrit ...
Cela fonctionne correctement sauf dans le cas où je sélectionne toute la
ligne comme variable.


Votre système d'Extend successif est assez aberrant : vous vous
retrouvez avec un Extend (F8) de trop si la phrase ne contient
qu'un mot et vous récupérez alors une marque de paragraphe
(équivalent d'un 4ème Extend).
Utilisez MoveLeft en extension pour sélectionner clairement par phrase
Selection.MoveLeft Unit:=wdSentence, Count:=1, Extend:=wdExtend
et vous n'aurez plus aucun problème !

Anacoluthe
« La vraie question est : pourquoi sélectionner?
Et je ne connais pas la réponse. »
- Albert JACQUARD




'signet Nom
Selection.ExtendMode = False
Selection.Find.ClearFormatting
With Selection.Find
.Text = "campagne"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
End With

Selection.Find.Execute
Selection.MoveLeft Unit:=wdCharacter, Count:=4
With Selection
' Collapse current selection to insertion point.
.Collapse
' Turn extend mode on.
.Extend
' Extend selection to word.
.Extend
'Etend à la ligne complète
.Extend
End With

With ActiveDocument.Bookmarks
.Add Range:=Selection.Range, Name:="Nom"
.DefaultSorting = wdSortByName
.ShowHidden = False
End With

Selection.ExtendMode = False

D'avance merci
Eric