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 format livret A3 [WD-365]


Sujet :

VBA Word

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 43
    Par défaut Impression format livret A3
    Bonjour

    Je suis en galère ...
    J'ai beau chercher une solution je ne trouve pas, je me dis que peut être c'est impossible d'ailleurs

    Je suis dans une entreprise donc je ne maitrise pas les paramètres par défaut des imprimantes.
    (j'attends de savoir si je peux les changer en local mais c'est pas gagné, rien n'est autorisé dans cette boite lol)

    En dehors de cette situation la réponse m'intéresse tout de même étant donné que la macro servira à plusieurs personnes qui ne maitrisent pas forcément.

    Alors voilà ma problématique :

    Je suis en train de faire une macro pour aller chercher des documents (nombreux et à différents endroits), les ouvrir et les imprimer.

    Sauf que je dois les imprimer en format livret A3

    La problématique se pose également si on veut faire du recto/verso, je n'ai pas trouvé l'option non plus

    Est ce qu'on peut le faire via une macro ?

    J'ai effectué un test via une macro que j'ai trouvé dans la FAQ qui permet de récupérer les paramètres de l'imprimante mais ça ne m'aide pas, je n'ai pas trouvé l'option.
    Je met la macro ci dessous

    Et j'ai aussi testé d'enregistrer une macro en modifiant les paramètres de l'impression via la boîte de dialogue externe mais il ne met rien non plus

    Pouvez vous m'aider par pitié ?

    Merci d'avance

    Sub ProprietesImprimantes()
    Dim objWMIService As Object, colItems As Object
    Dim objItem As Object
    Dim strComputer As String
    Dim i As Byte

    On Error Resume Next
    strComputer = "."

    Set objWMIService = GetObject("winmgmts:" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.execQuery("Select * from Win32_printerConfiguration", , 48)

    For Each objItem In colItems
    i = i + 1
    Cells(1, i) = "bitsPerPel: " & objItem.bitsPerPel
    Cells(2, i) = "Caption: " & objItem.Caption
    Cells(3, i) = "Collate: " & objItem.Collate
    Cells(4, i) = "Color: " & objItem.Color
    Cells(5, i) = "Copies: " & objItem.Copies
    Cells(6, i) = "Description: " & objItem.Description
    Cells(7, i) = "deviceName: " & objItem.deviceName
    Cells(8, i) = "displayFlags: " & objItem.displayFlags
    Cells(9, i) = "displayFrequency: " & objItem.displayFrequency
    Cells(10, i) = "ditherType: " & objItem.ditherType
    Cells(11, i) = "driverVersion: " & objItem.driverVersion
    Cells(12, i) = "Duplex: " & objItem.Duplex
    Cells(13, i) = "formName: " & objItem.formName
    Cells(14, i) = "horizontalResolution: " & objItem.HorizontalResolution
    Cells(15, i) = "ICMIntent: " & objItem.ICMIntent
    Cells(16, i) = "ICMMethod: " & objItem.ICMMethod
    Cells(17, i) = "logPixels: " & objItem.logPixels
    Cells(18, i) = "mediaType: " & objItem.mediaType
    Cells(19, i) = "Name: " & objItem.Name
    Cells(20, i) = "Orientation: " & objItem.Orientation
    Cells(21, i) = "paperLength: " & objItem.paperLength
    Cells(22, i) = "paperSize: " & objItem.PaperSize
    Cells(23, i) = "paperWidth: " & objItem.paperWidth
    Cells(24, i) = "pelsHeight: " & objItem.pelsHeight
    Cells(25, i) = "pelsWidth: " & objItem.pelsWidth
    Cells(26, i) = "printQuality: " & objItem.PrintQuality
    Cells(27, i) = "Scale: " & objItem.Scale
    Cells(28, i) = "SettingID: " & objItem.SettingID
    Cells(29, i) = "specificationVersion: " & objItem.specificationVersion
    Cells(30, i) = "TTOption: " & objItem.TTOption
    Cells(31, i) = "verticalResolution: " & objItem.VerticalResolution
    Cells(32, i) = "XResolution: " & objItem.Xresolution
    Cells(33, i) = "YResolution: " & objItem.Yresolution
    Columns(i).AutoFit
    Next
    End Sub

  2. #2
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 067
    Par défaut
    Hello,

    je suis désolé, je n'ai pas bien compris votre demande...
    "Livret A3" je ne sais pas ce que c'est, vous voulez imprimez en A3 ?
    Et que vient faire le recto verso ici ?

    En clair vous cherchez à faire quoi et pourquoi en VBA ?
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 43
    Par défaut
    Bonjour JièL et merci pour votre réponse.

    C'est vrai que je n'ai pas été très explicite dans mon message de départ je suis désolée

    Voici ma problématique.

    Chaque année à la rentrée scolaire nous devons imprimer 3 documents préremplis.
    Chaque document est dans un dossier différent, multiplié par le nombre de famille (quasi 150/200 que nous gérons à 3) à qui nous envoyons les documents.
    Avec sur chaque document l'année scolaire à changer.

    Du coup mon idée c'était d'ouvrir les docs word, changer les années scolaire, lancer l'impression et refermer le document.

    Le but étant de ne pas avoir à les ouvrir un par un, ça prends un temps fou

    Donc je me suis dit qu'avec une macro c'est quand même ce qu'il y avait de plus simple ...

    Voici la configuration des impressions :

    2 documents sont des A4 recto verso
    C'est le paramètre par défaut de l'imprimante de l'entreprise donc pas de problème pour ces documents là mais la possibilité de le faire via une macro m'intéresse tout de même.

    1 document est en format A3 recto verso format livret

    Le format livret consiste à imprimer le document comme un livre. La première page s'imprime sur la droite du recto de la feuille A3, les pages 2 et 3 sur le verso de la feuille.
    Nous n'avons pas de page 4 mais si c'était le cas elle serait à gauche du recto.
    L'idée est de plier la feuille en deux pour avoir comme un livret.
    Je sais pas si je suis très claire ...
    Je vous ai aussi mis une photo qui explique l'ordre des pages dans un format livret, je ne sais pas si ça pourra vous aider

    Sachant que les 2 options, livret et recto verso sont dans le même bloc des paramètres d'impression.
    Je vous met une capture d'écran pour voir de quoi je parle.

    J'espère que ça vous aidera à mieux comprendre

    Merci d'avance

    Nom : Capture d'écran format livret.png
Affichages : 22
Taille : 34,4 Ko

    Nom : Capture d'écran format impression.png
Affichages : 19
Taille : 44,4 Ko

  4. #4
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 067
    Par défaut
    Re,

    ok, j'ai compris cette fois
    Mais bon, à priori VBA ne sais pas modifier les paramètres de l'imprimante, il peut juste modifier les paramètres de l'impression (nuance).
    La macro que vous avez récupérer ne permet que d'accéder qu'a 33 paramètres
    https://powershell.one/wmi/root/cimv...rconfiguration

    Avec VBA, ouvrir un doc, changer l'année (si elle est toujours au même endroit), lancer l'impression et refermer le doc (en l'enregistrant ?) c'est possible.
    Sans VBA (à moins d'attaquer directement le driver de l'imprimante via les API du constructeur ), si l'imprimante est correctement paramétrée (mode livret) et que Word n'a qu'a utiliser ses paramètres, là ça doit le faire
    Il semblerait qu'il soit possible de créer des "réglages favoris". Si vous pouviez créer les réglages "qui vont bien" et en définir un par défaut, word utilisera cette config. Vous pouvez vérifier ça ?
    Nom : 2025-03-28_10-30-55.png
Affichages : 22
Taille : 43,9 Ko
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 43
    Par défaut
    Citation Envoyé par Nain porte koi Voir le message
    Re,

    ok, j'ai compris cette fois
    Mais bon, à priori VBA ne sais pas modifier les paramètres de l'imprimante, il peut juste modifier les paramètres de l'impression (nuance).
    La macro que vous avez récupérer ne permet que d'accéder qu'a 33 paramètres
    https://powershell.one/wmi/root/cimv...rconfiguration

    Avec VBA, ouvrir un doc, changer l'année (si elle est toujours au même endroit), lancer l'impression et refermer le doc (en l'enregistrant ?) c'est possible.
    Sans VBA (à moins d'attaquer directement le driver de l'imprimante via les API du constructeur ), si l'imprimante est correctement paramétrée (mode livret) et que Word n'a qu'a utiliser ses paramètres, là ça doit le faire
    Il semblerait qu'il soit possible de créer des "réglages favoris". Si vous pouviez créer les réglages "qui vont bien" et en définir un par défaut, word utilisera cette config. Vous pouvez vérifier ça ?
    Nom : 2025-03-28_10-30-55.png
Affichages : 22
Taille : 43,9 Ko
    Merci pour votre réponse, désolée pour mon retard ...

    Je pense que je vais faire comme ça effectivement, modifier les paramètres par défaut de l'imprimante en local sur mon pc le temps de l'impression.
    Je ne sais pas si mes collègues sauront faire mais au pire je ferais une petite procédure word.

    Merci à vous !

    Je clôture la discussion

    @ bientôt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD-2007] Impression d'une zone de texte dans un tableau au format livret
    Par poulinos dans le forum Word
    Réponses: 3
    Dernier message: 15/11/2010, 12h30
  2. Impression format rtf
    Par pboscaiolo dans le forum Débuter
    Réponses: 0
    Dernier message: 14/09/2010, 11h10
  3. [Impression] Format du papier
    Par Narah dans le forum Documents
    Réponses: 3
    Dernier message: 03/08/2010, 09h04
  4. Impression format paysage d'un etat
    Par doudou0088 dans le forum VBA Access
    Réponses: 5
    Dernier message: 06/01/2008, 21h57
  5. [Impression] Format papier
    Par narmataru dans le forum Windows 2000/Me/98/95
    Réponses: 3
    Dernier message: 03/09/2007, 15h33

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