Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/04/2011, 20h51   #1
Invité régulier
 
Freddy EVRARD
Responsable de service informatique
Inscription : février 2011
Messages : 20
Détails du profil
Informations personnelles :
Nom : Freddy EVRARD
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Associations - ONG

Informations forums :
Inscription : février 2011
Messages : 20
Points : 6
Points : 6
Par défaut intercepter le numero de la page sur laquelle on est positionné

Bonjour,

J'essaye de créer une macro qui me permettrait d'imprimer et agrafer (sur imprimante 1) des documents s'il y a plusieurs pages ou s'il n'y en a qu'une seule, imprimer vers une autre imprimante.

J'ai un document word publiposté, sur la première page j'ai l'adresse d'un destinataire et un tableau mais pour certains destinataires le tableau contient plusieurs pages de données. je veux agrafer les documents qui ont plusieurs pages.

l'imprimante 1 est configurée pour imprimer et agrafer l'autre pour simplement imprimer. Un saut de page manuel ^m sépare chaque destinataire.

je ne trouve pas d'instruction qui me permette de mémoriser le N° de la page sur laquelle le curseur est situé.
wdActiveEndPageNumber me retourne systématiquement le n° de la page du premier ^m trouvé

Et si je pouvais définir le FileName (Nom_Zone_IMPR) du doc ds la file d'impression, ce serait la cerise sur le gâteau.

Code :
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
Sub Impr_agraf()
'
' Impr_agraf Macro
'
Selection.HomeKey Unit:=wdStory
pge_A = 1
Selection.Find.ClearFormatting
With Selection.Find
    .Text = "^m"
    .Replacement.Text = ""
    .Wrap = wdFindAsk
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
For i = 1 To 9
    Selection.Find.Execute
    pge_B = wdActiveEndPageNumber
    zone_IMPR = pge_A & "-" & pge_B
    Nom_Zone_IMPR = "Doc pg " & pge_A & " à " & pge_B
    MsgBox zone_IMPR
    If pge_A <> pge_B Then
    ' Imprimer et agrafer sur imprimante 1
    ActivePrinter = "Oce CS171"
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentWithMarkup, Copies:=1, Pages:=zone_IMPR, PageType:= _
        wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _
        PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
    Else
    ' Imprimer sans agrafer sur imprimante 2
    ActivePrinter = "HP2200"
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentWithMarkup, Copies:=1, Pages:=zone_IMPR, PageType:= _
        wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _
        PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
    End If
    pge_A = pge_B
Next
freddyev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 21h02   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 321
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 321
Points : 29 220
Points : 29 220
Salut,

La page est obtenue avec la propriété information de l'objet sélection.

Code :
Selection.Information(wdActiveEndPageNumber)
sans l'objet Selection, ce n'est pas la page qui contient le curseur qui est affichée.
__________________
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 !
Heureux-oli est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 21h04   #3
Invité régulier
 
Freddy EVRARD
Responsable de service informatique
Inscription : février 2011
Messages : 20
Détails du profil
Informations personnelles :
Nom : Freddy EVRARD
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Associations - ONG

Informations forums :
Inscription : février 2011
Messages : 20
Points : 6
Points : 6
Génial il est
merci
freddyev est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h43.


 
 
 
 
Partenaires

Hébergement Web