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 :

Ajout saut de pages


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Ajout saut de pages
    Bonjour,
    Je désire faire des mise en pages de plusieurs feuilles de mon classeur mais excel n'a pas l'air de me les prendre en compte.

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Private Sub CmdMiseEnPage_Click()
     
    For i = 3 To Worksheets.Count
        With Worksheets(i)
            .Select
            .ResetAllPageBreaks
     
             Colonne = .Range("A3").CurrentRegion.Columns.Count
            .DisplayPageBreaks = False
            .PageSetup.Orientation = xlLandscape
            .PageSetup.TopMargin = Application.CentimetersToPoints(2)
            .PageSetup.LeftMargin = Application.CentimetersToPoints(0.5)
            .PageSetup.RightMargin = Application.CentimetersToPoints(1)
            .PageSetup.BottomMargin = Application.CentimetersToPoints(0.5)
            .PageSetup.CenterHorizontally = True
            .PageSetup.LeftHeader = "&D"
            .PageSetup.CenterHeader = "&Z&F"
            .PageSetup.RightHeader = "&P / &N"
            .PageSetup.LeftFooter = ""
            .PageSetup.CenterFooter = ""
            .PageSetup.RightFooter = ""
            .PageSetup.PrintArea = .Range(Columns(1), Columns(Colonne)).Address
            .PageSetup.PrintTitleRows = .Range(Rows(1), Rows(3)).Address
            .PageSetup.Zoom = False
            .PageSetup.FitToPagesWide = 1
     
            'Insertion saut de pages
            If ActiveSheet.Name = SparePartList Then
            j = 3
                While .Cells(j, 1) <> "" Or .Cells(j + 2, 1) <> ""
                    If .Cells(j, 1) = "" And .Cells(j + 1, 1) = "" Then
                        ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=.Cells(j + 1, 1)
                    End If
                    j = j + 1
                Wend
            End If     
            .DisplayPageBreaks = True       
        End With
    Next i
    End Sub
    j'ai essaillé de mettre le code dans un autre module et sa a marché, mais lors de la mise en pages sa refuse de me les garder. Apparemment c'est le fait de faire la commande "FitToPagesWide " qui empêche. Ni a t-il pas un moyen tout de même?

    Un peu d'aide serrais pas mal su tout.

    Kalu

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Je m'aperçois que ce que j'ai dit n'était pas très clair, alors je vais un peu reformuler.
    J'ai plusieurs tableaux sur une même feuille et je voudrai les imprimer avec une feuille par tableau.
    D'après ce que j'ai pu voir sur des forums, excel supprimes les sauts de page si dans la mise en page on fait les fonction "ajuster en largeur/longueur" ou "zoom".
    Le probleme c'est que je suis obliger d'utiliser ces fonction et je n'ai pas envi de faire de la 'bidouille' non plus pour imprimer mes tableaux. Du coup je suis bien bloqué...
    Je continus a rechercher de mon côté mais si quelqu'un a une idée...

    Kalu

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Bon ba j'ai trouver une alternative.
    Au lieu de mettre des saut de pages, je définit une zone d'impression multiple(Printarea pour ceux qui sont très fâché avec l'anglais).
    Je vous met ci-dessous mon code :

    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
    'Determination address tableaux
                With Worksheets(SparePartList): j = 1: NbNomenclmatures = 0
                    While .Cells(j, 1) <> "" Or .Cells(j + 2, 1) <> ""
                        If .Cells(j, 1) = "" And .Cells(j + 1, 1) <> "" Then
                            NbLigneDeb(NbNomenclmatures) = .Cells(j + 1, 1).Row
                        ElseIf .Cells(j + 2, 1) = "" And .Cells(j + 3, 1) = "" Then
                            NbNomenclmatures = NbNomenclmatures + 1
                            NbLigneFin(NbNomenclmatures - 1) = .Cells(j + 1, 1).Row
                        End If
                        j = j + 1
                    Wend
                End With
     
                'Determination zone d'impression multiple
                For j = 1 To NbNomenclmatures - 1
                    If j = 1 Then
                        Set PrintPlage = Range(Cells(NbLigneDeb(0), 1), Cells(NbLigneFin(0), Colonne))
                    End If
                    Set Plage1 = Range(Cells(NbLigneDeb(j - 1) + 1, 1), Cells(NbLigneFin(j - 1), Colonne))
                    Set PrintPlage = Union(PrintPlage, Plage1)
                Next j
                .PageSetup.PrintArea = PrintPlage.Address
    La mise en page est donc faite tel que pour chaque plage de cellules est mise sur une feuille différente.

    En espérant aider quelqu'un...

    Kalu

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

Discussions similaires

  1. Ajouter une mise en page après un saut de page
    Par iliaseyah dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 11/05/2015, 11h17
  2. [XL-2002] Souci d'ajout de saut de page
    Par phal2ip dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/03/2010, 11h10
  3. Réponses: 1
    Dernier message: 04/02/2008, 12h03
  4. Réponses: 7
    Dernier message: 05/12/2003, 10h14
  5. [Delphi6] Saut de page
    Par Seb328Ci dans le forum QuickReport
    Réponses: 1
    Dernier message: 02/10/2003, 12h36

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