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 :

Appliquer PageSetup sur plusieurs feuilles en même temps


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 50
    Points : 41
    Points
    41
    Par défaut Appliquer PageSetup sur plusieurs feuilles en même temps
    Bonjour,
    Je voudrais reproduire l'action de sélectionner plusieurs feuilles pour y appliquer la même mise en page.

    J'ai bien pensé à enregistrer une macro (ci-dessous) lorsque j'exécute les actions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Macro1()
        Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select
        Sheets("Feuil1").Activate
        With ActiveSheet.PageSetup
            .Orientation = xlLandscape
            .Zoom = False
            .FitToPagesWide = False
            .FitToPagesTall = 1
        End With
    End Sub
    Mais lorsque je la lance, le résultat ne s'applique que sur la feuille active et non sur les feuilles sélectionnées...
    Je pense que c'est un problème de déclaration de l'objet sur lequel les actions doivent s'appliquer, mais... je cale...
    Bien entendu je ne veux pas appliquer une boucle sur les feuilles pour y appliquer la mise en page car il y en a plus d'une cinquantaine...

    Un peu d'aide serait la bienvenue... MERCI !

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Tu peux tester ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Macro1()
    Dim LesFeuilles As Variant
    Dim Feuille As Worksheet
        Set LesFeuilles = Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
        For Each Feuille In LesFeuilles
            With Feuille.PageSetup
                .Orientation = xlLandscape
                .Zoom = False
                .FitToPagesWide = False
                .FitToPagesTall = 1
            End With
        Next
    End Sub
    Bonne journée

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 50
    Points : 41
    Points
    41
    Par défaut Pas de boucle...
    Citation Envoyé par sl.info Voir le message
    ...Bien entendu je ne veux pas appliquer une boucle sur les feuilles pour y appliquer la mise en page car il y en a plus d'une cinquantaine...
    Cela ressemble à ma solution de secours mais le temps d'exécution est multiplié par le nombre de page à traiter...
    Je recherche l'objet à déclarer pour traiter les feuilles sélectionnées comme pour le saut de pages qui s'utilise ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Macro1()
        Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select
        ActiveWindow.SelectedSheets.VPageBreaks.Add Before:=ActiveSheet.Range("S1")
    End Sub
    une

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    J'ai bien compris mais "apparemment", PageSetup n'en veut pas le pourquoi de ma solution...
    S'il en existe une autre, je suis prenneur.
    Bonne chance
    A+

  5. #5
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 50
    Points : 41
    Points
    41
    Par défaut Réponse Microsoft
    Il semblerait que ce soit la réponse que communiquerai aussi Microsoft (Ils développent des procédures qu'ils sont incapable d'expliquer)
    On va donc vivre avec... En attendant de pouvoir accélérer le temps d'exécution de nos codes , on peut au moins les faire fonctionner...
    Pour les curieux : http://support.microsoft.com/kb/465002/fr

    En tout cas merci pour la rapidité de la réponse

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

Discussions similaires

  1. Appliquer une action sur plusieurs objets en même temps
    Par Aminerman dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 27/10/2011, 16h00
  2. récupérer des données sur plusieurs feuilles en même temps
    Par huître dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/06/2011, 14h10
  3. Réponses: 9
    Dernier message: 20/01/2009, 12h29
  4. Réponses: 3
    Dernier message: 17/07/2007, 09h44
  5. Réponses: 2
    Dernier message: 19/07/2006, 19h45

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