OVH Cloud OVH Cloud

Supprimer page en VBA ?

5 réponses
Avatar
Alex
Bonjour,
Je cherche à supprimer par code VBA une page d'un document. En effet pour
générer un fichier .doc, j'utilise un .dot de 4 pages.
En fonction de ce que je mets dans les 3 premières pages, il faut (ou non)
supprimer la page 4 qui est inutile.

J'ai vu que dans le Document il existait des collections Paragraphs, Tables,
Shapes, etc. N'y aurait-il pas une Pages ? :p
Sinon y'a-t-il peut-être un moyen de définir facilement un Range couvrant la
page 4 ?

Alex

5 réponses

Avatar
AB
Bonjour,
Un dot de 4 pages ? Curieux : tes 4 pages constituent alors autant de
sections, je suppose, car sinon, je ne vois pas pourquoi le modèle fait 4
pages.
Cela dit, pourquoi une macro ? Si tu te positionnes à la fin de ton texte,
puis F8 CTRL Fin et Suppr, ça ne convient pas ?
En macro, ça donnerait :
Sub SupprimePagesSuperfétoires ()
Selection.Extend
Selection.EndKey Unit:=wdStory
Selection.Delete
End Sub
Mais le club des AMIS va te tomber dessus !
:))
AB

Alex wrote:
|| Bonjour,
|| Je cherche à supprimer par code VBA une page d'un document. En effet
|| pour générer un fichier .doc, j'utilise un .dot de 4 pages.
|| En fonction de ce que je mets dans les 3 premières pages, il faut
|| (ou non) supprimer la page 4 qui est inutile.
||
|| J'ai vu que dans le Document il existait des collections Paragraphs,
|| Tables, Shapes, etc. N'y aurait-il pas une Pages ? :p
|| Sinon y'a-t-il peut-être un moyen de définir facilement un Range
|| couvrant la page 4 ?
||
|| Alex
Avatar
Alex
Bonsoir,
Le .dot fait 4 pages, car il s'agit d'un document "à trous" faisant au
minimum 4 pages, et au maximum N (car certains "trous" sont
remplis par des tableaux dont on ignore à priori le nombre de lignes qui est
très variable d'une fois sur l'autre), et dont au moins
3 sont remplis par du blabla prédéfini...

Si je souhaite virer ma dernière page par code, c'est parce que la
génération du doc est automatique par clic sur un bouton, et
qu'on peut déterminer automatiquement si on a besoin de la 4e page. En gros
on a deux cas possibles. Dans le cas A, il faut
mettre la page, et dans le cas B elle n'a aucun intérêt, puisque le contenu
de la 4e page (qui est un blabla légal) se rapporte
directement aux spécificités du cas A.
Donc j'aimerai accomplir cette suppression de page 4 automatiquement plutôt
que d'infliger la manipulation à l'utilisateur
à chaque fois que se présente le cas B (qui est le cas le plus fréquent).

Je vais essayer de suivre la piste proposée par ta macro :)

Sinon je n'ai pas l'honneur de connaître le club AMIS, même si je suppose
que les premières lettres sont pour Anti Macros :P
S'ils ont une meilleure solution que la tienne à me proposer, je suis
preneur ;)

Alex


"AB" a écrit dans le message de
news:O%23V$
Bonjour,
Un dot de 4 pages ? Curieux : tes 4 pages constituent alors autant de
sections, je suppose, car sinon, je ne vois pas pourquoi le modèle fait 4
pages.
Cela dit, pourquoi une macro ? Si tu te positionnes à la fin de ton texte,
puis F8 CTRL Fin et Suppr, ça ne convient pas ?
En macro, ça donnerait :
Sub SupprimePagesSuperfétoires ()
Selection.Extend
Selection.EndKey Unit:=wdStory
Selection.Delete
End Sub
Mais le club des AMIS va te tomber dessus !
:))
AB


Avatar
Guy Moncomble
Bonjour à tous,
dans le message O#V$,

| Bonjour,
| Un dot de 4 pages ? Curieux : tes 4 pages constituent alors autant de
| sections, je suppose, car sinon, je ne vois pas pourquoi le modèle
| fait 4 pages.
| Mais le club des AMIS va te tomber dessus !

Si tu veux, je peux te montrer un .dot de 29 pages ! avec tout plein de
macros #:-)
--
A+

G.M. MVP Word
Avatar
AB
Hello Guy,
Je savais bien que les club des MIS allait se manifester !
J'avions pas compris le problème de notre ami Alex (je croyais qu'il tapait
bêtement (heu...faites excuse, cher alex) du texte, et que si ça dépassait
pas trois pages, il virait la 4è qui était inutilement vierge...
Bon, c'était quand même plus subtil que ça...
A+
AB
Guy Moncomble wrote:
|| Bonjour à tous,
|| dans le message O#V$,
||
||| Bonjour,
||| Un dot de 4 pages ? Curieux : tes 4 pages constituent alors autant
||| de sections, je suppose, car sinon, je ne vois pas pourquoi le
||| modèle fait 4 pages.
||| Mais le club des AMIS va te tomber dessus !
||
|| Si tu veux, je peux te montrer un .dot de 29 pages ! avec tout plein
|| de macros #:-)
|| --
|| A+
||
|| G.M. MVP Word
Avatar
Anacoluthe
Bonjour !

'Alex' nous a écrit ...
Je cherche à supprimer par code VBA une page d'un document. En effet pour
générer un fichier .doc, j'utilise un .dot de 4 pages.
En fonction de ce que je mets dans les 3 premières pages, il faut (ou non)
supprimer la page 4 qui est inutile.
J'ai vu que dans le Document il existait des collections Paragraphs, Tables,
Shapes, etc. N'y aurait-il pas une Pages ? :p
Sinon y'a-t-il peut-être un moyen de définir facilement un Range couvrant la
page 4 ?


Il n'y a pas de collection Pages dans votre document, c'est Word
qui décide de la pagination même si vous placez des sauts de page !

Sous réserve que votre macro ne soit pas superfétatoire ;-)
- placez votre page 4 depuis votre modèle dans un signet
(avec ou sans saut de page). Vous n'aurez aucune difficulté
à le supprimer par la suite.
- autre technique: atteindre page 4 - étendre sélection - atteindre
page 5 ou fin si c'est la dernière - supprimer

Anacoluthe
« Le monde est un livre dont chaque pas nous ouvre une page. »
- Alphonse de LAMARTINE