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

VBA supprimer des mots

10 réponses
Avatar
Daniel.C
Bonjour.
Je me positionne sur un signet et je veux supprimer les mots jusqu'à la
prochaine marque de paragraphe.
La suppression fonctionne. J'utilise dans une boucle :

Selection.Expand wdWord
Selection.Delete

Mais comment détecter que la sélection est une marque de paragraphe ?

Merci d'avance.
Daniel

10 réponses

Avatar
Anacoluthe
Bonjour !

'Daniel.C' nous a écrit ...
Je me positionne sur un signet et je veux supprimer les mots jusqu'à la
prochaine marque de paragraphe.
La suppression fonctionne. J'utilise dans une boucle :
Selection.Expand wdWord
Selection.Delete
Mais comment détecter que la sélection est une marque de paragraphe ?


Pourquoi ne pas utiliser
Selection.Expand wdParagraph
?

Anacoluthe
« L’art du mot ne connaît pas de limites. »
- Ivan GONTCHAROV

Avatar
Daniel.C
"Anacoluthe" a écrit dans le message de news:

Bonjour !

'Daniel.C' nous a écrit ...
Je me positionne sur un signet et je veux supprimer les mots jusqu'à la
prochaine marque de paragraphe.
La suppression fonctionne. J'utilise dans une boucle :
Selection.Expand wdWord
Selection.Delete
Mais comment détecter que la sélection est une marque de paragraphe ?


Pourquoi ne pas utiliser
Selection.Expand wdParagraph
?



Parce que, si je fais Selection.Delete, le paragraphe est supprimé, et mon
signet avec.
Daniel


Avatar
Geo

Parce que, si je fais Selection.Delete, le paragraphe est supprimé, et mon signet avec.
Daniel


Il est où votre signet ?

Sinon pour savoir s'il y a une marque de paragraphe dans votre
sélection :
If InStr(1, Selection.Text, vbCr) > 0 Then
' marque de paragraphe

Else
' pas de marque de paragraphe

End If

Si vous voulez savoir si le dernier caractère est une marque de
paragraphe il vaudrait mieux utiliser la recherche inverse et tester
sur la valeur 1.

--
A+

Avatar
Anacoluthe
Bonjour !

'Daniel.C' nous a écrit ...
Parce que, si je fais Selection.Delete, le paragraphe est supprimé, et mon
signet avec.


L'instruction ( UNE seule) suivante supprime tout le texte qui suit
le signet Toto jusqu'à la fin du paragraphe contenant ce signet
sans toucher au signet ni au saut de paragraphe :

ActiveDocument.Range(ActiveDocument.Bookmarks("Toto").Range.End, _
ActiveDocument.Bookmarks("Toto").Range.Paragraphs(1).Range.End - 1).Delete

Par principe zen je n'utilise JAMAIS l'objet Selection dans une macro :-)

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

Avatar
Daniel.C
Merci à tous deux. Je mets en application.
Daniel
"Daniel.C" a écrit dans le message de news:
%

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

'Daniel.C' nous a écrit ...
Je me positionne sur un signet et je veux supprimer les mots jusqu'à la
prochaine marque de paragraphe.
La suppression fonctionne. J'utilise dans une boucle :
Selection.Expand wdWord
Selection.Delete
Mais comment détecter que la sélection est une marque de paragraphe ?


Pourquoi ne pas utiliser
Selection.Expand wdParagraph
?



Parce que, si je fais Selection.Delete, le paragraphe est supprimé, et mon
signet avec.
Daniel





Avatar
Daniel.C
Par principe zen je n'utilise JAMAIS l'objet Selection dans une macro :-)



Merci du tuyau, je suis novice et je retravaille ce que me donne
l'enregistreur.
Daniel

Avatar
Daniel.C
Ca fonctionne SAUF, s'il n'y a rien entre le signet et la marque de
paragraphe (c'est une possibilité, je ne l'avais pas dit, je le reconnais)
Daniel
"Anacoluthe" a écrit dans le message de news:
uk%
Bonjour !

'Daniel.C' nous a écrit ...
Parce que, si je fais Selection.Delete, le paragraphe est supprimé, et
mon signet avec.


L'instruction ( UNE seule) suivante supprime tout le texte qui suit
le signet Toto jusqu'à la fin du paragraphe contenant ce signet
sans toucher au signet ni au saut de paragraphe :

ActiveDocument.Range(ActiveDocument.Bookmarks("Toto").Range.End, _
ActiveDocument.Bookmarks("Toto").Range.Paragraphs(1).Range.End - 1).Delete

Par principe zen je n'utilise JAMAIS l'objet Selection dans une macro :-)

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



Avatar
Anacoluthe
Bonjour !

'Daniel.C' nous a écrit ...
Ca fonctionne SAUF, s'il n'y a rien entre le signet et la marque de
paragraphe (c'est une possibilité, je ne l'avais pas dit, je le reconnais)


Testez la longueur (.Characters.Count) du Range entre le signet et la fin de §
et supprimez-le que si sa longueur est > 1 sinon effectivement cette
instruction va supprimer le saut de paragraphe lui-même...

Anacoluthe
« Fais un petit saut l'alouette, l'alouette
Fais un petit saut l'alouette comme il faut »
- Comptine

Avatar
Daniel.C
"Anacoluthe" a écrit dans le message de news:

Bonjour !

'Daniel.C' nous a écrit ...
Ca fonctionne SAUF, s'il n'y a rien entre le signet et la marque de
paragraphe (c'est une possibilité, je ne l'avais pas dit, je le
reconnais)


Testez la longueur (.Characters.Count) du Range entre le signet et la fin
de §
et supprimez-le que si sa longueur est > 1 sinon effectivement cette
instruction va supprimer le saut de paragraphe lui-même...

Anacoluthe
« Fais un petit saut l'alouette, l'alouette
Fais un petit saut l'alouette comme il faut »
- Comptine


Cette fois, c'est parfait. Encore merci.
Daniel


Avatar
AB
Hello Daniel,
Tu te mets à Word aussi ?
Après avoir plusieurs fois bénéficié de ta compétence et de ta gentillesse
sur Excel, peut-être pourrai-je t'être utile à mon tour sur Word ?
Encore que..., vu dans quoi tu te lances avec VBA, je crains que ce soit toi
qui nous dépannes bientôt !
Amitiés
André

"Daniel.C" a écrit dans le message de news:


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

'Daniel.C' nous a écrit ...
Ca fonctionne SAUF, s'il n'y a rien entre le signet et la marque de
paragraphe (c'est une possibilité, je ne l'avais pas dit, je le
reconnais)


Testez la longueur (.Characters.Count) du Range entre le signet et la fin
de §
et supprimez-le que si sa longueur est > 1 sinon effectivement cette
instruction va supprimer le saut de paragraphe lui-même...

Anacoluthe
« Fais un petit saut l'alouette, l'alouette
Fais un petit saut l'alouette comme il faut »
- Comptine


Cette fois, c'est parfait. Encore merci.
Daniel