Gérer l'impression de certaines pages avec Word

micie1509

XLDnaute Junior
Bonjour,

Je travaille avec Word 2010. J’ai fait un peu de VBA sur Excel, mais jamais sur Word.

J'ai un document, de quelques 500 pages et je n'ai pas toujours besoin d'imprimer tout le document, mais seulement certaines parties. Je me demandais s'il était possible sur Word de faire une table des matières un peu semblable à ceci :

☐ Consignes générales de sécurité 18
☒ Déboisement 22
☐ Excavation et remblayage 28

Et de faire une macros (ou autres) qui exécuterais quelque chose comme:
Si case à cocher #1 est cochée, imprimer page 18 à 21, sinon rien
Si case à cocher #2 est cochée, imprimer page 22 à 27, sinon rien
Si case à cocher #3 est cochée, imprimer page 28 à 31, sinon rien etc...

Il pourrait avoir plusieurs choix de cochés en même temps.

Merci beaucoup de toute l'aide que vous pourriez m'apporter. :confused:
 

Modeste

XLDnaute Barbatruc
Re : Gérer l'impression de certaines pages avec Word

Bonjour micie1509,

Dans un cas comme celui-ci, l'enregistreur de macro semble être tout à fait adapté: le code qui sera généré ne devrait même pas être adapté. J'associerais ensuite chacun des 3 petits bouts de code créé à un bouton (plutôt qu'une case à cocher!?
N'hésite pas à nous dire si tu as des questions ... ou si je n'ai rein compris :)
 

micie1509

XLDnaute Junior
Re : Gérer l'impression de certaines pages avec Word

Bonjour Modeste,

Merci pour ta réponse. J'ai un peu changer d'idée depuis hier (il y juste les fous qui ne changent pas d'idée :)). Je me suis dit : et si je sélectionnais les pages que je ne veux pas au lieu de celles que je veux et que je les effaçais. Il ne me resterait que les pages que je veux et je pourrais ainsi les sauvegarder pour usage futur. Donc, l'idée serait de ne garder que les pages dont la case à cocher est… cochée.

Alors, voici ce que j’ai essayé, mais ça ne fonctionne pas :

Sub Macro15()
' Macro 15
'Sub selectpages ()

Dim rgePages As Range

If CheckBox1 = False Then

Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=5
Set rgePages = Selection.Range
Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=5
rgePages.End = Selection.Bookmarks("\Page").Range.End
rgePages.Select
End If

If CheckBox2 = False Then

Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=6
Set rgePages = Selection.Range
Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=7
rgePages.End = Selection.Bookmarks("\Page").Range.End
rgePages.Select
End If

If CheckBox3 = False Then

Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=8
Set rgePages = Selection.Range
Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=15
rgePages.End = Selection.Bookmarks("\Page").Range.End
End If

Selection.Delete

End Sub


J'ai mis une copie de mon fichier test en pièce jointe.

Merci beaucoup !
 

Pièces jointes

  • 15.zip
    261.7 KB · Affichages: 76
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Gérer l'impression de certaines pages avec Word

Bonsoir à tous

Essaies de voir ce que ceci t'inspire
testes puis adaptes ensuite le code pour l'utiliser avec tes CheckBoxs
VB:
Sub test()
Dim ChoixPages
ChoixPages = _
        InputBox("Choix possible" & Chr(13) & _
        "A=18-21" & Chr(13) & _
        "B=22-27" & Chr(13) & _
        "C=28-31", "Sélection pages pour Impression", "A")
Select Case ChoixPages
Case Is = "A"
Application.PrintOut FileName:="", Copies:=1, Range:=wdPrintRangeOfPages, Pages:="18-21"
Case Is = "B"
Application.PrintOut FileName:="", Copies:=1, Range:=wdPrintRangeOfPages, Pages:="22-27"
Case Is = "C"
Application.PrintOut FileName:="", Copies:=1, Range:=wdPrintRangeOfPages, Pages:="28-31"
Case Else
Exit Sub
End Select
End Sub
 

kiki29

XLDnaute Barbatruc
Re : Gérer l'impression de certaines pages avec Word

Salut,
Code:
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="2"
    ThisDocument.PrintOut outputFilename:=sNomFichier, PrintToFile:=True, Background:=False, Range:=wdPrintCurrentPage
	
ThisDocument.PrintOut outputFilename:=sNomFichier, PrintToFile:=True, Background:=False, Range:=wdPrintFromTo, From:="3", To:="4"

sPages = "2-3,5"
    ThisDocument.PrintOut outputFilename:=sNomFichier, PrintToFile:=True, Background:=False, Range:=wdPrintRangeOfPages, Pages:=sPages
 

micie1509

XLDnaute Junior
Re : Gérer l'impression de certaines pages avec Word

Bonjour Kiki29,

Merci beaucoup pour l'aide que tu m'apportes. J'ai essayé ton code, mais j'ai un erreur d'exécution 13. Est-ce que tu saurais pourquoi ?

Encore merci beaucoup!

Erreur 13.jpg
 

Pièces jointes

  • Erreur 13.jpg
    Erreur 13.jpg
    31.1 KB · Affichages: 81
  • Erreur 13.jpg
    Erreur 13.jpg
    31.1 KB · Affichages: 77

micie1509

XLDnaute Junior
Re : Gérer l'impression de certaines pages avec Word

Bonjour Staple1600,

Oui, je l'ai testé, mais comme je suis vraiment novice, je n'ai pas réussi à l'adapté à des cases à cocher. Pour l'instant, j'essaie l'idée de Chris et je découpe tout le document en sections. Ensuite on verra si je réussi à faire quelque chose avec ça. :confused:

Un gros merci pour ton aide.
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA