Bj à tous
Je ne sais pas comment faire une macro VBA qui me permettrait d imprimer 1a 1ere et les 2 dernieres pages d'un document word qui change de nombre de page à chaque fois
Merci de m'aider
Bj à tous
Je ne sais pas comment faire une macro VBA qui me permettrait d imprimer 1a 1ere et les 2 dernieres pages d'un document word qui change de nombre de page à chaque fois
Merci de m'aider
Essayer peut être en créant des signets sur les pages à imprimer :
"insertion - signet"
Ensuite utiliser l'enregistreur de macro :
edition - atteindre signet 1 -> imprimer
edition - atteindre signet 2 -> imprimer
edition - atteindre signet 3 -> imprimer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 Sub IMPRESSION_SIGNETS() ' ' IMPRESSION_SIGNETS Macro ' Macro enregistrée le 23/08/2013 par Thomas ' Selection.GoTo What:=wdGoToBookmark, Name:="pages1" Selection.Find.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Application.PrintOut FileName:="", Range:=wdPrintCurrentPage, Item:= _ wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _ ManualDuplexPrint:=False, Collate:=True, Background:=False, PrintToFile:= _ False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _ PrintZoomPaperHeight:=0 Selection.GoTo What:=wdGoToBookmark, Name:="pages2" Selection.Find.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Application.PrintOut FileName:="", Range:=wdPrintCurrentPage, Item:= _ wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _ ManualDuplexPrint:=False, Collate:=True, Background:=False, PrintToFile:= _ False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _ PrintZoomPaperHeight:=0 Selection.GoTo What:=wdGoToBookmark, Name:="pages3" Selection.Find.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Application.PrintOut FileName:="", Range:=wdPrintCurrentPage, Item:= _ wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _ ManualDuplexPrint:=False, Collate:=True, Background:=False, PrintToFile:= _ False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _ PrintZoomPaperHeight:=0 End Sub
Salut Michel5364,
As-tu essayer d'imprimer avec les options de choix des pages ? Voici le code avec un PDFCreator comme imprimante :
@+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ActivePrinter = "PDFCreator" Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _ wdPrintDocumentWithMarkup, Copies:=1, Pages:="1-2", PageType:= _ wdPrintAllPages, Collate:=True, Background:=False, PrintToFile:=False, _ PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _ PrintZoomPaperHeight:=0
Sepia,
apparement le nombre de page de son document change tout le temps,
Il ne connait pas le numéro des pages à imprimer
Salut tom0ne,
Oui mais comme il demande toujours à imprimer les pages 1 et 2, il suffit à Word de demander à imprimer ces pages. Je viens de faire le test avec Word 2010 et un document vierge (1 seule page) et ça fonctionne.
Il faut donc qu'il essaie ce code pour voir si cela correspond à ces besoins.
@+
Je crois que tu es étourdi à ton tour,
il dit vouloir imprimer :
"la 1ere et les 2 dernieres pages d'un document word"
Salut Tom0ne,
Oups autant pour moi. Comme je venais de travailler sur l'impression d'un document Word jusqu'à la table des matières, j'ai lu "premières" pour "dernières".
Voici comment faire pour imprimer les 2 dernières pages d'un doc dont on ne connait pas le nombre de pages (j'ai mis bien évidence pour signaler que j'avais compris, enfin)
@+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub DVP_Print_Pages_1_Plus_2_Dernieres() ActiveDocument.Save ActiveDocument.Fields.Update If ActiveDocument.BuiltInDocumentProperties(wdPropertyPages) > 3 Then aListePages = "1;" & Trim(Str(ActiveDocument.BuiltInDocumentProperties(wdPropertyPages) - 1)) & "-" & Trim(Str(ActiveDocument.BuiltInDocumentProperties(wdPropertyPages))) Else aListePages = "1-" & Trim(Str(ActiveDocument.BuiltInDocumentProperties(wdPropertyPages))) End If ActivePrinter = "PDFCreator" Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:=wdPrintDocumentWithMarkup, Copies:=1, _ Pages:=aListePages, _ PageType:=wdPrintAllPages, Collate:=True, Background:=False, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0 End Sub
Salut Sépia,
Sympa le code ! je prends pour moi !
Par contre notre ami Michel 5364 semble avoir disparu, nous ne parlons plus que tous les deux
Salut tom0ne,
Merci et au moins on est sûr que ce code servira .Sympa le code ! je prends pour moi !
Le mystère des disparitions dans le Triangle des Bermudes s'agrandit. Mais on va lui laisser le bénéfice des vacances avant de mettre sur la discussion.Par contre notre ami Michel 5364 semble avoir disparu, nous ne parlons plus que tous les deux
@+
Bj a tous
Merci tout d abord de vous etre pencher sur mon probleme
Je viens de decouvrir vos reponse ce jour ( 05/09/2013 vers 12h50) et je vais essayer des que je peux .... mais je ne manquerai pas de vous dire si ca fonctionne comme je le souhaite
a bientot et encore merci de m accorder du temps !!!!!
Bj suite a votre reponse voila le code que j'ai mis dans ma macro: la seule modif que j ai faite est la destination d'impression.
Le pb c'est que ca ne marche pas : le resultat est : l'impression de trois pages quelque soit la taille du fichier mais ces 3 pages sont la 1ere la 2eme et la 3 eme
alors que moi j'ai besoin de la 1ere,l'avant der et la derniere
de plus au niveau de l'impression sur la 1ere page j'ai aussi le debut de la 2ieme alors que moi je souhaite que chaque page soit distincte .
Pour exemple dans le fichier joint: la 1ere page la 8eme et la 9eme
Cdt michel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Sub ImpressionGrandLivre() ' ' ImpressionGrandLivre Macro 'Sub DVP_Print_Pages_1_Plus_2_Dernieres() ActiveDocument.Save ActiveDocument.Fields.Update If ActiveDocument.BuiltInDocumentProperties(wdPropertyPages) > 3 Then aListePages = "1;" & Trim(Str(ActiveDocument.BuiltInDocumentProperties(wdPropertyPages) - 1)) & "-" & Trim(Str(ActiveDocument.BuiltInDocumentProperties(wdPropertyPages))) Else aListePages = "1-" & Trim(Str(ActiveDocument.BuiltInDocumentProperties(wdPropertyPages))) End If ActivePrinter = "\\OPIBUFA1.lille.francetelecom.fr\W7-AGELAOS" Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:=wdPrintDocumentWithMarkup, Copies:=1, _ Pages:=aListePages, _ PageType:=wdPrintAllPages, Collate:=True, Background:=False, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0 End Sub
Salut Michel5364,
Je viens de refaire le test avec un document de 7 folios avec la macro que je t'avais envoyé et que tu as adapté et j'imprime bien les pages "1, 6 et 7" comme demandé.
@+
Bj Sepia
Je refait des tests et je te confirme dans les 4 j a suivre car pas tj là
Merci de toute facon
abientot
Salut Sépia
Bj et excuse moi
j'ai fait des essais: effectivement ton code fonctionne MAIS en mode portrait.
ce que j'ai oublié de preciser c'est que mes impressions sont en mode PAYSAGE et ca change tout car dans ce mode je n'ai pas la bonne impression
Comment faire pour lui dire en plus que je suis en mode paysage et que je veux l'IMP de la 1ere et avant der et der?!!!!
Cdt
Michel
Salut,
Tu dois modifier le PageSetup avant pour spécifier que la mise en page change d'orientation.
Ensuite, tu imprimes les pages.
Code : Sélectionner tout - Visualiser dans une fenêtre à part activedocument.PageSetup.Orientation = wdOrientLandscape
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA
Mes articles
Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager