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 :

Utilisation de Sheets().PrintOut Copies:=1


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Par défaut Utilisation de Sheets().PrintOut Copies:=1
    Bonjour,

    J'utilise la fonction Sheets().PrintOut Copies:=1 avec un Array qui contient la liste des sheets à imprimer.

    cela fonctionne excepté que cela m'imprime aussi la feuille sur laquelle je suis en train de travailler.

    comment désactiver la feuille active et donc n'imprimer que les feuilles contenues dans mon array ?

    merci d'avance,

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,


    Difficile de répondre comme ça, tu pourrais nous montrer le code ?

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Par défaut
    Désolé, en gros mon code ressemble à ca...


    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
     
     
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
     
    For p = 5 To p + iLines
        If Worksheets("CHECK PROCEDURE").Range("L" & p).Value = myPassportToPrint Then
            myArrayList(i) = Worksheets("CHECK PROCEDURE").Range("M" & p).Value
            i = i + 1
        End If
    Next p
     
    Application.EnableEvents = False
    Sheets(myArrayList).PrintOut Copies:=1
    Application.EnableEvents = True
    end sub

    En gros on a un tableau excel avec 3 feuilles.
    On est en train de lire les données de la feuille 3 et on demande à imprimer la feuille 1 et 2, cela ajoute le nom des feuilles dans mon arrayList.

    L'impression se lance mais cela imprime la feuille 3 (celle d'ou est partie la demande d'impression...) avec les autres, chose que je n'ai pas besoin.

    Je ne sais pas donc comment je peux faire comprendre à la macro qu'il ne faut pas imprimer la feuille active, mais uniquement les autres.

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Par défaut
    J'ai modifié mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Application.EnableEvents = False
     
    Sheets(myArrayList).Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
     
    'Sheets(myArrayList).PrintOut Copies:=1
     
    Application.EnableEvents = True
    Ce qui en gros ne sélectionne que les feuilles que je choisi via mon interface et je n'ai plus la feuille active.

    Par contre il me les imprime 2 fois....what else ?

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Par défaut
    Problème résolu,
    il suffit d'enlever la ligne ActiveWindow.SelectedSheets.PrintOut Copies:=1

    Comme je travaille dans une fonction BeforePrint, l'impression est déja lancée...

  6. #6
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Alors ça c'st bien, tu répond tout seul à tes problèmes

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

Discussions similaires

  1. Injecter KDE, pour utiliser son systéme de copie
    Par alpha_one_x86 dans le forum Administration système
    Réponses: 2
    Dernier message: 13/05/2008, 12h36
  2. Utilisation de la fonction copy
    Par casho dans le forum Langage
    Réponses: 2
    Dernier message: 11/08/2007, 12h08
  3. Réponses: 5
    Dernier message: 04/04/2007, 09h34
  4. Réponses: 2
    Dernier message: 16/12/2006, 11h01
  5. [VBA-E]Sheets("Feuille1").Copy plante
    Par agro dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/11/2005, 16h07

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