IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

Impression avec numéro pour chaque exemplaire


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    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 : 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
     
    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

  2. #2
    Membre Expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Loire (Auvergne)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Par défaut
    Bonjour,

    Il s'agit d'une propriété d'un objet application.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Dialogs(wdDialogFilePrint).Show
    Cela affiche la fenêtre d'impression.

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Par défaut
    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 : 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
    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

  4. #4
    Expert confirmé
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    @+

Discussions similaires

  1. [Débutant] tableau avec date pour chaque colonne
    Par bigboy dans le forum VB.NET
    Réponses: 5
    Dernier message: 23/12/2013, 20h07
  2. fichier avec 1bits pour chaque caracteres
    Par jassem dans le forum MATLAB
    Réponses: 2
    Dernier message: 20/10/2010, 16h12
  3. Requete avec limite pour chaque valeur du IN
    Par grunge0 dans le forum Requêtes
    Réponses: 4
    Dernier message: 29/09/2009, 14h00
  4. Réponses: 4
    Dernier message: 12/04/2007, 20h25
  5. Réponses: 1
    Dernier message: 18/05/2005, 18h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo