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 :

Macro pour impression par trimestre


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 88
    Par défaut Macro pour impression par trimestre
    Bonjour,

    J'ai créé un planning annuel ou j'ai utilisé des macros pour afficher le planning au mois le mois,
    je dois également créer un bouton pour avoir une vue par trimestre et pour ça, j'ai utilisé ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Trimestre_1()
        'Application.ScreenUpdating = False
        'Cells.Select
        'Selection.EntireColumn.Hidden = True
        Columns("D:NG").Select
        Selection.EntireColumn.Hidden = False
        Columns("CQ:NF").Select
        Selection.EntireColumn.Hidden = True
        Range("E16").Select
    End Sub

    au final, j'apprends que l'origine de la demande par trimestre était de pouvoir imprimer la vue par trimestre et d'avoir une visibilité sur les 3 mois ensemble
    mais si je lance l'impression de manière classique (option paysage..), tout ne se met pas sur la meme page vu que j'ai a peu pret 94 colonnes, et j'ai trouvé que quitte à ne pas tout avoir sur la meme page, avoir un mois par page
    et j'ai utilisé ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Macro_trimestre_1bise()
    Call MOIS.JANVIER
    Selection.EntireRow.Hidden = False
    Call MOIS.FEVRIER
    Selection.EntireRow.Hidden = False
    Call MOIS.MARS
    Selection.EntireRow.Hidden = False
    End Sub
    ça m'imprime bien tout mon trimestre, mais un mois par un page, au final ca permet pas d'avoir la visibilité sur tout le trimestre

    Y a-t-il un autre moyen pour optimiser l'impression et avoir une vue d'ensemble sur tout le trimestre malgré le nombre de colonnes que j'ai???



    Une 2ème question:
    quand j'imprime l'interface du planning, les boutons de macros ne sortent pas sur le papier? est ce normal, y a-t-il une option sur Excel pour les afficher dans mes impressions?


    Merci pour vos retours
    Images attachées Images attachées  

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut macro
    Bonjour zinebwhere, Bonjour le Forum,

    Bienvenu!

    Tout d'abord, un conseil : utilise les bornes de code pour mettre en évidence ton(tes) dévelopement(s)
    Tu sélectionnes son texte puis tu actionnes le bouton # da la barre de titre figurant au-dessus de ton message.

    Développer une procédure par mois me semble lourd.

    Une idée :

    Définir 12 zones d'impression : Tb_Jan, Tb_Fév etc...

    Et utiliser une procédure argumentée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Impression_du_mois(lazone As String)
     
        With worsheets(1)
                .PageSetup.PrintArea = .Range("Tb_" & lazone).Address
                .PrintOut
        End With
     
    End Sub
     
    Public Sub essai()
    Call Impression_du_mois("Jan")
    End Sub
    Ensuite, affecter une macro avec argument différent pour chacun de tes boutons

    Et surtout, ôte ces f... méthodes "Sélect" qui ne font qu'alourdir ton code.

    Si tes boutons sont des contrôles ActiveX, alors tu peux les imprimer
    en modifiant leur propriété.
    Mode développeur puis Clic droit sur le bouton.

    Propriété "PrintObject"

    N'hésite pas à revenir!

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 88
    Par défaut
    Merci Marcel,

    Ca marche pour le bouton, il apparait bien dans mes impressions

    sinon pour ton code, je suis débutante dans le VBA, du coup je n'ai pas compris si ca répond bien à ce que je demandais,
    ta macro va m'imprimer mois par mois?
    ou par trimestre comme je veux?

    si je définis le mois de janv en zone d'impression 1
    et fév en 2
    et mars en 3
    pourrais je les mettre dans la mm macro afin d'avoir une impression du trimestre?

    Cordialement

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Il te suffit d'adapter.

    As-tu compris le code proposé?

    Si tu souhaits une impression par trimestre, alors il te faut définir 4 noms : Tb_Trim1, Tb_Trim2, Tb_Trim3, Tb_Trim4
    Chaque nom de ta feuille de calcul ainsi défini se reporterait à la zone englobant les mois correspondants.

    Reprends le code ligne par ligne.
    Et surtout, pose toutes les questions qui te viennent.

    Nous mènerons ta discussion jusqu'à sa résolution.

    Tonton Marcel veille.

  5. #5
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Casebwhere,

    Si tu souhaites une page par mois pour le trimestre concerné,
    Alors, au préalable, il te faut définir la mise en page par 3 pages en largeur et 1 en hauteur.

  6. #6
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 88
    Par défaut
    Merci pour tes explications mister
    j'essaie demain et jte dis
    bonne soirée

  7. #7
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut zinebwhere,

    Voilà! Voilà!

    Le problème ici résiderait dans la gestion des sauts de page.

    Je modifie donc mon code en retirant la mise en pages sur 3 pages.
    C'est volontairement que je n'y ai pas inséré de commentaires afin que tu reviennes si nécessaire.

    Seule la définition des zones par mois est ici utile.

    A compléter pour T3 et T4

    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
    21
    22
    23
    24
    25
    26
    Option Explicit
     
    Public Sub essai()
        Call Impression_du_trim("T2")
    End Sub
     
    Sub Impression_du_trim(lazone As String)
     
        Dim zoneimp As Variant
        Dim z As Variant
     
        Select Case lazone
            Case "T1"
                zoneimp = Array("Jan", "Fév", "Mars")
            Case "T2"
                zoneimp = Array("Avr", "Mai", "Juin")
        End Select
     
        For Each z In zoneimp
            With Worksheets(1)
                    .PageSetup.PrintArea = .Range("Tb_" & z).Address
                    .PrintOut
            End With
        Next z
     
    End Sub
    Surtout, tu reprends ligne par ligne.
    Et tu demandes tous les éclaircissements nécessaires.

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/04/2014, 14h54
  2. [WD-2003] Macro pour envoi par email
    Par relenaheero dans le forum VBA Word
    Réponses: 11
    Dernier message: 22/11/2010, 20h42
  3. macro pour impression dernière ligne excel
    Par schwoby dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/08/2007, 14h33
  4. macro pour impression d'une ligne excel sous word
    Par schwoby dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2007, 12h02
  5. Création d'un bouton avec macro pour impression rapide
    Par citrouilllle dans le forum VBA Word
    Réponses: 16
    Dernier message: 13/07/2007, 23h20

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