Excel. Probleme Macro / Impression

Résolu
Bonjour,

Est il possible dans un classeur excel de créer une macro (ou autre moyen) "imprimer la page 4 de chaque feuille" par exemple.

Sachant que les feuilles vont et viennent dans le classeur... et qu'il n'est donc pas possible, je pense, en utilisant le nom des feuilles....

Merci d'avance
Configuration: Windows XP
Internet Explorer 6.0

22 réponses

  1. Bonjour,
    OK. jte proposerai bien un userform (une interface) mais si cette solution te convient et que tu t'y connais pas trop (il faut créer des boutons et des codes dans "la grande fenetre")...

    n'oulbie pas de cloturer SVP
    0
    1. Bonjour,

      Non, le numero de page ne sera pas parlant pour les utilisateurs... L'autre solution (la 1ere macro) convient mieux merci!
      0
      1. eske la solution 18 te convient?
        0
        1. Bonjour,
          Bonjour,
          Merci pour vos aides.

          Le tableau croisé dynamique ca va aps convenir a mon avis mais j'ai regler le probleme d'impression!
          0
          1. noublie pasde cloturer le sujet SVP...
            0
            1. pour répondre à la question 11

              je te propose un truc simple : il t'imprime le no de la page que tu lui indiques dans la case A1 de la 1ère feuille

              pour ce faire:

              1) remplace le code que je t'ai donné par celui-là:

              Sub imprim_page_no()

              Dim no, i

              Sheets(1).Activate
              no = Range("A1").Value

              For i = 1 To Sheets.Count

              With Sheets(i)
              .PrintOut From:=no, To:=no
              End With
              Next i

              End Sub


              2) reviens à ton classeur et saisi le No de la page que tu veux imprimer (2 par exemple) dans la cellule A1 de la 1ère feuille

              3) lance la macro
              => il t'imprime les pages no 2 de chaque feuille

              si tu veux imprimer des autres pages, tu n'as qu'à changer la valeur de la cellule A1 et relancer la macro!

              jespère que ça t'aidera
              atonservice

              PS : si ça n'est pas possible de saisir le chiffre en A1, tu peux lui indiquer une autre cellule en remplaçant le "A1" dans Range("A1") par l'adresse de la cellule ou se trouve le chiffre à prendre en compte
              1
              1. c un tableau qui sert à synthétiser des données de plusieurs feuilles

                ça se met à jour les valeurs à chaque fois qu'elles changent (d'ou le terme dynamique)

                tu fais Menu->données->rapport de tableau croisé dynamique
                0
                1. ça sent le tableau croisé dynamique...

                  tu sais ce que c?
                  0
                  1. Bonjour,

                    Un grand merci. j'avais pas vu ton message precedent! Mais bon l'interface c'est idéal. ta solution de acros me convient parfaitement.

                    Concernant mon post suivant :
                    Pour t'eclaircir une page correspond à un mois.

                    C'est à dire que la page 2 corresopnd au mois de novembre pour chaque personne du groupe.

                    Cette page comprend les stats du mois (entrés).

                    C'est donc c'est stats que je dois recapituler dans un tableau regroupant toutes les personnes du groupe.

                    LA difficulté etant que de temps en temps une personne nouvelle arrive dans le groupe et que d'autres passent d'un gropupe à l'autre...

                    merci
                    0
                    1. Bonjour,

                      C'est encore moi.

                      Dans le meme ordre d'idée : "Excel devine le nombre de feuille qu'il y a et effectue la meme operation dans chaque feuille"

                      -> Serait il possible dans une feuille supplementaire de créer une macro ayant pour mission de "recuperer toutes les données de A6(par exemple) de chaque feuille du classeur"

                      En esperant avoir été clair....

                      Merci d'avance
                      0
                      1. jvais voir ce que jpeux faire pcq on arrive vite à des usines à gaz, qui dès qu'on modifie le moindre truc il faut tout refaire...

                        jregarde après manger ^^P
                        0
                        1. Bonjour,

                          Ca marche Nickel!!!

                          Maintenan,t si ca te derange pas ca m'interesse beaucoup ton ->

                          "PS : pour aller plus loin, il est même possible de lancer une interface qui te permettrait d'indiquer le no de la page à imprimer si ça t'intéresse "

                          En prenant en compte omn trés modeste niveau ;-)

                          (Pour l'instant il me faudra imprimer d'abord toutes les pages 2, puis plus tard toutes les pages 3... et ainsi jusqu'a 13.)
                          0
                          1. Bonjour,

                            ok alors dans la "grande page" (lol)

                            1) tu vas dans le menu "insertion", tu cliques sur "module"

                            une fenêtre, telle que celle ci, s'ouvre :
                             http://www.fabnet.ch/cours_vb/environ2.PNG 
                            ,

                            2) tu colles le code dans la partie de droite (juste en dessous des listes "Général" et "Déclarations").

                            3) tu reviens à ta feuille excel. la macro "imprim_page_no" figure maintenant dans la liste des macros (Menu Outils->Macro->Macros)

                            tu n'as plus qu'à l'exécuter pour voir ce que ça donne
                            0
                            1. Bonjour,
                              Ca m'a l'air pas mal du tout comme solution, mais au niveau macro je suis limité à enregistrer une macro. Quand il faut la créer comme tu me le demande je sais pas faire.

                              En faisant alt+f11, une grande page grise s'affiche... ensuite?

                              Merci d'avance
                              0
                              1. Bonjour,

                                sinon, si tu connais le no de page que tu veux imprimer et que celui-ci ne change pas d'une feuille à la suivante, copie le code si dessous dans l'éditeur Macros (ALT+F11)

                                jai testé ça marche chez moi
                                (attention la macro plante si 'nb de pages d'une feuille < no page que tu veux imprimer', c'est à dire si tu lui demandes d'imprimer une page qui n'existe pas !)
                                ________________________________________________________________
                                sub imprim_page_no ()

                                dim nb_de_feuilles

                                nb_de_feuilles = activeworkbook.sheets.count 'compte le nombre de feuille dans le classeur en cours

                                'impression de la page 4 de chaque feuille du classeur
                                for i=1 to nb_de_feuilles

                                sheets(i).select
                                Activesheet.PrintOut From:=4, To:=4, Copies:=1, Collate:=True

                                next

                                end sub
                                __________________________________________


                                si tu veux imprimer un autre no de page que le 4, tu n'as qu'à changer le chiffre dans From:=4, To:=4, . :)

                                PS : pour aller plus loin, il est même possible de lancer une interface qui te permettrait d'indiquer le no de la page à imprimer si ça t'intéresse

                                atonservice
                                0
                                1. Bonjour !

                                  en fait il te faut pour chacune des feuilles définir la zone d'impressionsoit tu fais aperçu des sautes de page
                                  tu sélectionnes les cellules de la page
                                  puis fichier , zone d'impression , définir
                                  ensuite quand feras imprimer
                                  le système n'imprimera que les zones sélectionnées pour chacune des feuilles

                                  et dans ce cas, pas besoin de macro

                                  se traduit en macro par :

                                  Sheets("Feuil1").Select
                                  ActiveSheet.PageSetup.PrintArea = "$A$55:$D$108"
                                  Sheets("Feuil2").Select
                                  Range("A55:B108").Select
                                  ActiveSheet.PageSetup.PrintArea = "$A$55:$B$108"
                                  Sheets("Feuil4").Select
                                  Range("A55:B108").Select
                                  ActiveSheet.PageSetup.PrintArea = "$A$55:$B$108"
                                  Sheets("Feuil3").Select
                                  Range("A55:A67").Select
                                  ActiveSheet.PageSetup.PrintArea = "$A$55:$A$67"
                                  Range("E69").Select
                                  0
                                  1. Bonjour,

                                    Je me suis peut etre mal exprimé.

                                    c'est la page 4 (par exemple) de chaque feuille du classeur que je veux imprimer.... (sachant que les feuilles vont et viennent dans ce classeur).

                                    merci d'vaance
                                    0
                                    1. Bonjour !

                                      J'ai mal compris ta demande
                                      dans un classeur , il n'y a qu'une feuille nommée feuille 4
                                      et je pensais que tu voulais imprimer celle-là !!!

                                      0
                                      1. Bonjour,

                                        J'ai essayé la solution de la macro, hélas, ca ne m'imprime que la feuille 4 à l'écran...

                                        Par contre je n'ai pas "tout le classeur" mais "classuer entier"... je pense que c'est la meme chose.

                                        Merci de votre aide
                                        0
                                        • 1
                                        • 2