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

Macros et VBA Excel Discussion :

Mise en page du fichier vs imprimante PDF


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de Souriane
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2009
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2009
    Messages : 541
    Points : 758
    Points
    758
    Par défaut Mise en page du fichier vs imprimante PDF
    Bonjour,

    Comment fait-on pour sélectionner par VBA n’importe quelle imprimante sauf celles qui donne le rendu en PDF? Ou encore, comment faire pour mettre en page un fichier Excel lorsqu’une imprimante « PDF » est sélectionnée

    C’est que ma macro est utilisée par plusieurs usagers où je travaille. La macro met en forme un fichier extrait d’une BD avant de l’enregistrer sur l’intranet.

    La raison pourquoi elle fait une mise en page est au cas où quelqu’un souhaiterait imprimer le document : la macro détermine la zone d’impression, la largeur des colonnes, les marges, le format de papier, etc.

    Or, si par défaut l’usager a comme imprimante « Adobe PDF », la macro ne fonctionne pas comme il faut parfois. J’avais donc ajouté dans le code ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim sPrinterOriginal As String
        sPrinterOriginal = Application.ActivePrinter
    
    'Sélectionne l'imprimante générale du département
          Application.ActivePrinter = "\\svmimp1\Imp_NB sur Ne05:"
    Et à la fin du code, je remettais l’imprimante de l’usager
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Remet l'imprimante de l'usager actif
    Application.ActivePrinter = sPrinterOriginal
    Tout fonctionnait très bien jusqu’à ce que j’aie cette nouvelle employée cette semaine qui utilise la macro pour la première fois et obtient l’erreur que la méthode ActivePrinter a échouée. Après certaines recherches, je constate que sur son poste de travail à elle l’imprimante, que nous utilisons dans mon département s’appelle « \\svmimp1\Imp_NB sur Ne06: » ! (au lieu de 05)

    Je n’ai aucune idée pourquoi ça fait ça mais j’aimerais savoir comment faire pour mettre en page un fichier Excel lorsqu’une imprimante « PDF » est sélectionnée?


    Merci!

    Souriane

  2. #2
    Membre éclairé Avatar de Souriane
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2009
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2009
    Messages : 541
    Points : 758
    Points
    758
    Par défaut
    Toujours à la recherche d'une solution. N'importe laquelle. L'important, c'est d'être capable de faire la mise en forme d'une page même si l'imprimante par défaut est PDF ou n'importe quelle imprimante.

    Merci!

    Souriane

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2021
    Messages
    334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2021
    Messages : 334
    Points : 602
    Points
    602
    Par défaut
    Bonjour,

    Pourquoi pas mettre en place une gestion de l'erreur sur cette ligne de code ? Avec un on error goto blabla, ou on error resume next

    Sinon il va falloir ajouter manuellement une imprimante de référence du même nom sur chaque poste et la mettre en constante.

    Autre méthode est de sélectionner l'imprimante que l'on veut utiliser avec Application.Dialogs(xlDialogPrinterSetup).Show.

    Peut etre que je réponds a coté et que je n'ai pas bien compris votre problématique

Discussions similaires

  1. [XL-2010] Ajouter une mise en page à un fichier (après exportation)
    Par jeannevds dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/05/2018, 17h19
  2. [2008] Problème de mise en page rapport lors export en PDF
    Par cana13 dans le forum SSRS
    Réponses: 8
    Dernier message: 20/07/2011, 18h33
  3. Automatiser une mise en page de fichier en python
    Par Mydriaze dans le forum Général Python
    Réponses: 3
    Dernier message: 20/10/2008, 14h50
  4. Réponses: 1
    Dernier message: 05/05/2006, 11h36
  5. [CSS] Mise en page differente pour l'ecran et l'imprimante
    Par leportois dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 22/04/2005, 12h49

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