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 02/02/2011, 15h54   #1
Invité de passage
 
Inscription : juin 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 5
Points : 0
Points : 0
Par défaut Impression avec numéro pour chaque exemplaire

Bonjour,

J'ai besoin d'un script permettant d'imprimer un document Word en un certain nombre d'exemplaires, en y ajoutant un numéro unique sur chacun des exemplaires.

Je parviens à imprimer ces document via ce script, mais mon problème est qu'il faudrait que je puisse paramétrer l'impression via le print dialog (sélection de l'imprimante, recto/verso, copies assemblés, agrafés, etc...)

Or ce script lance directement l'impression de chaque exemplaire sans même ouvrir la fenêtre qui permet de paramétrer tout cela.

Voici le script en question :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
Sub pied()
'
' pied Macro
'
'
    Dim i As Byte
i = 1
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
    With Selection
        .TypeText Text:="Exemplaire N° " & CStr(i)
        For i = 1 To 10
                .TypeBackspace
                .TypeText Text:=CStr(i)
                ActiveDocument.PrintOut PrintToFile:=True,     OutputFileName:=CStr(i) & ".doc"
        Next i
    End With
End Sub
Je débute en VB, un peu d'aide serait la bienvenue !

Merci d'avance
axe84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 16h37   #2
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonjour,

Il s'agit d'une propriété d'un objet application.
Code :
Application.Dialogs(wdDialogFilePrint).Show
Cela affiche la fenêtre d'impression.
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 11h26   #3
Invité de passage
 
Inscription : juin 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 5
Points : 0
Points : 0
Merci bcp pour cette réponse !

ça fonctionne avec ce code on demande le nombre d'exemplaires à imprimer, on affiche la boite de dialogue pour configurer les impressions, et ensuite ça boucle autant de fois qu'il y a d'exemplaires.

Le seul problème est que si on clique sur annuler lors de la config de l'impression, il ne lance pas l'impression du premier exemplaire mais il lance quand même la suite.
y a t il un moyen de lui dire d’arrêter le macro en cas d'annulation de la boite de dialogue ?

Merci encore !

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub pied()
'
' pied Macro
'
'
Dim i As Byte
i = 1
i = InputBox("Nombre d'impression", "Combien d'exemplaire ?")
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
    With Selection
        .TypeText Text:="Exemplaire N° " & CStr(i)
        Application.Dialogs(wdDialogFilePrint).Show
        For i = 2 To i
                .TypeBackspace
                .TypeText Text:=CStr(i)
                ActiveDocument.PrintOut 
        Next i
 
    End With
End Sub
axe84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 13h55   #4
Rédacteur/Modérateur
 
Avatar de Sepia
 
Homme JF Jousseaume
Inscription : octobre 2007
Messages : 2 390
Détails du profil
Informations personnelles :
Nom : Homme JF Jousseaume
Âge : 48
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 2 390
Points : 3 377
Points : 3 377
Salut Axe84,

Oui il est possible de récupérer le fait qu'il y ait un clic sur Annuler dans une DlgBox de Word. Mais il faut changer (un peu) ton code car il faut alors récupérer la valeur renvoyée par les méthodes Show et Display qui indique sur quel bouton l'utilisateur a cliqué pour fermer la boîte de dialogue.

Code :
1
2
3
4
5
6
7
8
9
10
11
 
    Select Case Application.Dialogs(wdDialogFilePrint).Show
        Case -2 '// L'utilisateur a cliqué sur Fermer
            <...>
        Case -1 '// L'utilisateur a cliqué sur OK
            <...>
        Case 0 '// L'utilisateur a cliqué sur Annuler
            <...>
        Case Else '// L'utilisateur a cliqué sur un bouton de commande dont la valeur dépend de la boîte de dialogue
            <...>
    End Select
@+
Sepia est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h37.


 
 
 
 
Partenaires

Hébergement Web