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 :

Mise en page forcée


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    Mars 2014
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 569
    Par défaut Mise en page forcée
    Bonjour je relance un topic

    ..... Je dois rendre ce travail rapidement ..... c'est la panique à bord....

    Le fichier joint est un note que remplisse mes collègues

    Ils remplissent les points 1.2 1.3 .....

    comme les chapitres d'un livre

    Pour que la mise en page soit agréable, je souhaiterais qu'aucune des parties 1.2 1.3 ne commence en bas de page pour une ou deux ligne et se termine sur la page suivante.

    L'idée est que si une partie commence pour une ou deux lignes en bas de page elle se retrouve décalée au début de la page suivante.

    Un pdf doit être fait de se fichier excel

    J'ai déjà figé (portrait ou paysage) les parties qui m’intéressent avec ce code.

    Comment faire pour résoudre le reste ?


    Bonne aprem

    Seb




    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
    Sub Bouton2_Cliquer()
    With ActiveSheet.PageSetup
        .PrintArea = "A1:H30"
        .Orientation = xlPortrait
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        ActiveSheet.PrintPreview
        .PrintArea = "A31:H137"
        .Orientation = xlPortrait
        ActiveSheet.PrintPreview
        .PrintArea = "A186:H309"
        .Orientation = xlPortrait
        ActiveSheet.PrintPreview
        .PrintArea = "A310:H322"
        .Orientation = xlPortrait
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        ActiveSheet.PrintPreview
        .PrintArea = "A138:T185"
        .Orientation = xlLandscape
        ActiveSheet.PrintPreview
    End With
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Regarde ceci pour t'en inspirer...
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    Sub Bouton2_Cliquer()
        ActiveSheet.ResetAllPageBreaks
     
        With ActiveSheet.PageSetup
            .PrintArea = "A1:H30"
            .Orientation = xlPortrait
            .Zoom = False
            .FitToPagesWide = 1
            .FitToPagesTall = 1
            ActiveSheet.PrintPreview
     
            .PrintArea = "A31:H137"
            .Orientation = xlPortrait
            .FitToPagesWide = 1
            .FitToPagesTall = False
            CheckPage "A31:H137"        'Vérifier la structure de la page
            ActiveSheet.PrintPreview
     
            .PrintArea = "A186:H309"
            .Orientation = xlPortrait
            CheckPage "A186:H309"        'Vérifier la structure de la page
            ActiveSheet.PrintPreview
            .PrintArea = "A310:H322"
            .Orientation = xlPortrait
            .FitToPagesWide = 1
            .FitToPagesTall = 1
            ActiveSheet.PrintPreview
            .PrintArea = "A138:T185"
            .Orientation = xlLandscape
            ActiveSheet.PrintPreview
        End With
     
    End Sub
     
    Sub CheckPage(Plage)
        Dim I As Long
        Dim nbLignes As Long
     
        nbLignes = Range(Plage).Row + Range(Plage).Rows.Count - 1
        For I = Range(Plage).Row + 1 To nbLignes
            If Rows(I).PageBreak = xlPageBreakAutomatic Then
                FixPageBreak I, Range(Plage).Row
            End If
        Next
     
    End Sub
     
    Sub FixPageBreak(Ligne As Long, Debut As Long)
        Dim I As Long
     
        For I = Ligne To Debut Step -1
            If Left(Range("A" & I), 3) Like "#.#" Or Left(Range("A" & I), 5) = "Cycle" Then
                ActiveSheet.HPageBreaks.Add before:=Range("A" & I)
                Exit For
            End If
        Next
    End Sub

  3. #3
    Membre éclairé Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    Mars 2014
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 569
    Par défaut
    Excellent

    Pour bien vérifier le rendu final est-ce que l'on peut générer un pdf avec cette mise en plage forcée?

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Désolé, mais je ne sais pas.
    Je n'utilise jamais les PDF...

    J'imagine que tu peux faire un test (?)

  5. #5
    Membre éclairé Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    Mars 2014
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 569
    Par défaut
    Yes je veux faire le test

    en ajoutant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim sRep As String          'Répertoire de sauvegarde
    Dim sFilename As String     'Nom du fichier
    sRep = ""      'Répertoire de sauvegarde (si non spécifié, répertoire actif par défaut)
    sFilename = ThisWorkbook.Name       'Nom du fichier
    sFilename = Left(sFilename, InStr(1, sFilename, “.”)) & “pdf”
     
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sRep & sFilename, _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
     OpenAfterPublish:=False
    J'ai une erreur 424 "Objet requis) sur la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sFilename = Left(sFilename, InStr(1, sFilename, “.”)) & “pdf”
    Fichiers attachés Fichiers attachés

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Tes guillemets sont bizarres...

Discussions similaires

  1. [VB6+API][Impression] Mise en page
    Par HPJ dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 06/09/2004, 17h11
  2. [CR.NET][VS.NET] mise en page et sections
    Par guignol dans le forum SDK
    Réponses: 8
    Dernier message: 06/08/2004, 15h07
  3. mise en page (Header and Footer) en XML-XSL.
    Par christine dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 01/03/2004, 16h31
  4. [CR] Mise en page
    Par akolyto dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 14/10/2003, 12h22
  5. [mise en page] pour bien indenter son code
    Par bihorece dans le forum C++Builder
    Réponses: 4
    Dernier message: 06/08/2003, 16h14

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