OVH Cloud OVH Cloud

Suppression de page en VBA

2 réponses
Avatar
Tee
Bonjour à tous

J'aimerai savoir comment faire en VBA pour supprimer des pages selon leurs
numéro, j'ai des 2 CommandButton avec si CommandButton 1 suppression page 3
et 4, CommandButton 2 suppression page 1 et 2.

il me faudrait la sintaxe pour la suppression par numero de page.

Merci d'avance

2 réponses

Avatar
Jean-Guy Marcil
Tee was telling us:
Tee nous racontait que :

Bonjour à tous

J'aimerai savoir comment faire en VBA pour supprimer des pages selon
leurs numéro, j'ai des 2 CommandButton avec si CommandButton 1
suppression page 3 et 4, CommandButton 2 suppression page 1 et 2.

il me faudrait la sintaxe pour la suppression par numero de page.

Merci d'avance


Ce n'est pas si simple car les pages ne font pas partie d'une collection
comme les paragraphes ou les mots. En effet, sans changer le contenu du
document, le contenu des pages peut changer facilement si on modifie la
police, la grosseur de la police, les marges, l'espacement, l'interligne,
les retraits, etc.

Dans Words 2003 il y a un collection de pages qui est lié à l'affichage, pas
au contenu.

Malgré tout, voici un example de ce qui peut être fait:

'_______________________________________
Dim NoPage As Variant
Dim RangeCourant As Range

'Pour sauvegarder la sélection courante
Set RangeCourant = Selection.Range

Do
NoPage = InputBox("Quel numéro de page voulez-vous supprimer?", _
"Suppression de pages")
Loop While Not IsNumeric(NoPage)

Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=NoPage

ActiveDocument.Bookmarks("Page").Range.Delete

RangeCourant.Select
'_______________________________________

Il faudrait quand même faire toutes sorte de vérifications sur NoPage (par
exemple, pour s'assurer que le nombre entré n'est pas plus grand que le
nombre de pages dans le document, etc.)
Aussi, si la numérotation est modifiée de sorte à ce que le document
commence à la page numéro 10, si l'utilistateur entre 15, se sera la page
numérotée 25 qui sera supprimée et non la page numérotée 15.

Le plus simple serait d'avoir un bouton sur la barre d'outils étiquetté:
"Supprimer page courante" qui appelerait ce code:

ActiveDocument.Bookmarks("Page").Range.Delete

--
Salut!
_______________________________________
Jean-Guy Marcil - Word MVP

Word MVP site: http://www.word.mvps.org

Avatar
Tee
Bonjour

Désolé pour la réponse tardiven c'était le week end.

Ca marche parfaitement

Merci

"Jean-Guy Marcil" a écrit dans le message de
news:OPVwl$
Tee was telling us:
Tee nous racontait que :

Bonjour à tous

J'aimerai savoir comment faire en VBA pour supprimer des pages selon
leurs numéro, j'ai des 2 CommandButton avec si CommandButton 1
suppression page 3 et 4, CommandButton 2 suppression page 1 et 2.

il me faudrait la sintaxe pour la suppression par numero de page.

Merci d'avance


Ce n'est pas si simple car les pages ne font pas partie d'une collection
comme les paragraphes ou les mots. En effet, sans changer le contenu du
document, le contenu des pages peut changer facilement si on modifie la
police, la grosseur de la police, les marges, l'espacement, l'interligne,
les retraits, etc.

Dans Words 2003 il y a un collection de pages qui est lié à l'affichage,
pas

au contenu.

Malgré tout, voici un example de ce qui peut être fait:

'_______________________________________
Dim NoPage As Variant
Dim RangeCourant As Range

'Pour sauvegarder la sélection courante
Set RangeCourant = Selection.Range

Do
NoPage = InputBox("Quel numéro de page voulez-vous supprimer?", _
"Suppression de pages")
Loop While Not IsNumeric(NoPage)

Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=NoPage

ActiveDocument.Bookmarks("Page").Range.Delete

RangeCourant.Select
'_______________________________________

Il faudrait quand même faire toutes sorte de vérifications sur NoPage
(par

exemple, pour s'assurer que le nombre entré n'est pas plus grand que le
nombre de pages dans le document, etc.)
Aussi, si la numérotation est modifiée de sorte à ce que le document
commence à la page numéro 10, si l'utilistateur entre 15, se sera la page
numérotée 25 qui sera supprimée et non la page numérotée 15.

Le plus simple serait d'avoir un bouton sur la barre d'outils étiquetté:
"Supprimer page courante" qui appelerait ce code:

ActiveDocument.Bookmarks("Page").Range.Delete

--
Salut!
_______________________________________
Jean-Guy Marcil - Word MVP

Word MVP site: http://www.word.mvps.org