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

VBA Word Discussion :

Problèmes pour coder la mise en page


Sujet :

VBA Word

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Points : 50
    Points
    50
    Par défaut Problèmes pour coder la mise en page
    Bonjour à tous,

    J'ai fait une macro Word qui permet de concaténer plusieurs documents Word dans 1 seul.

    Chaque document de départ tient sur une page.

    Malheureusement dans le document final, certains documents sources sont séparés sur 2 pages.

    Quand je modife la taille des marges dans le document final (il faut que j'aille dans mise-en-page et que je choisisse "appliquer à tout le document"), tout se remet en place, il n'y a plus de sauts de pages intempestifs.

    Donc je voudrai définir ces settings par du code VBA mais rien n'y fait, cela ne marche que manuellement : je n'arrive pas à voir comment on code l'option "appliquer à tout le document".

    voici le 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
    23
    24
    25
    26
    With docCompendiumFinal.Content.PageSetup
        .LineNumbering.Active = False
        .Orientation = wdOrientPortrait
        .TopMargin = CentimetersToPoints(1)
        .BottomMargin = CentimetersToPoints(0.5)
        .LeftMargin = CentimetersToPoints(2)
        .RightMargin = CentimetersToPoints(2)
        .Gutter = CentimetersToPoints(0)
        .HeaderDistance = CentimetersToPoints(0.9)
        .FooterDistance = CentimetersToPoints(0)
        .PageWidth = CentimetersToPoints(21.59)
        .PageHeight = CentimetersToPoints(27.94)
        .FirstPageTray = wdPrinterDefaultBin
        .OtherPagesTray = wdPrinterDefaultBin
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = True
        .VerticalAlignment = wdAlignVerticalTop
        .SuppressEndnotes = False
        .MirrorMargins = False
        .TwoPagesOnOne = False
        .BookFoldPrinting = False
        .BookFoldRevPrinting = False
        .BookFoldPrintingSheets = 1
        .GutterPos = wdGutterPosLeft
        .LayoutMode = wdLayoutModeDefault
    End With
    Auriez-vous une idée ?

    Merci beaucoup d'avance.

    Laurent.

  2. #2
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut Laurent,

    As-tu essayer de sélectionner ton document, pour lui appliquer ta mise en forme ? Pour cela, remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    With docCompendiumFinal.Content.PageSetup
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Selection.WholeStory
    With Selection.Content.PageSetup
    @+

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Points : 50
    Points
    50
    Par défaut
    Sepia,

    Merci pour ta réponse.

    J'ai essayé ce que tu as dit mais malheureusement, c'est pareil.

    Laurent.

  4. #4
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut Laurent,


    je viens de réessayer avec mon mac (car parfois le code généré n'est pas identique à celui du PC) et c'est le cas. L'enregistreur de macros sur Mac me donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With ActiveDocument.PageSetup
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With ActiveDocument.Content.PageSetup
    ce qui donnerait pour ton cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With docCompendiumFinal.PageSetup
    Il faudrait essayer

    @+

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Points : 50
    Points
    50
    Par défaut
    Sepia,

    J'ai essayé ce que tu m'as dit mais c'est pareil.

    Laurent.

  6. #6
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut Laurent,

    J'ai refait des tests et ça marche sans problème sur mon PC (Word 2003) aussi ==> ???

    Désolé

    @+

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Points : 50
    Points
    50
    Par défaut
    Sepia,

    Je t'envoie ma macro et les 2 fichiers source de données.

    J'espère que tu auras le temps d'y jeter un coup d'oeil.

    Il faut juste que tu changes le chemin des fichiers de données et le chemin du fichier résultat.

    Il faut lancer la macro à partir de l'éditeur VBA car le bouton ne marche pas.

    Comme tu remarqueras, les 2 fichiers source tiennent sur 1 page chacun et le fichier final tient sur 4 pages.

    Merci beaucoup d'avance.

    Laurent.
    Fichiers attachés Fichiers attachés

  8. #8
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut Laurent,

    Je n'ai pas pu tester sur mon PC et sur le Mac, la macro ne fonctionne pas car il me manque les bibliothèques standards pour manipuler le fso).

    En revanche, en regardant j'ai vu que les marges n'étaient pas identiques entre ton document compendium, les valeurs dans ta macro et les valeurs des pages source. Est-ce vraiment ce que tu voulais ? Si c'est le cas, en changeant les attributs de page, tu peux modifier la pagination ==> peut-être ton problème.

    De toute façon, je refais le test sur PC dès demain.

    @+

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Points : 50
    Points
    50
    Par défaut
    Salut Sepia,

    Mon but, c'est d'avoir les mêmes marges que dans les documents sources, c'est pourquoi dans le code j'ai mis les configurations PageSetup... mais cà ne marche pas...

    Merci pour les tests !

    Laurent.

Discussions similaires

  1. Probléme de Menu vs mise en pages
    Par Bobskye dans le forum Débuter
    Réponses: 2
    Dernier message: 02/05/2010, 16h48
  2. Problème pour rediriger sur une autre page html
    Par PatMh77 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 05/05/2008, 07h48
  3. [MySQL] j'ai un probléme pour faire la mise à jour de ma table mysql
    Par kebson dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/06/2007, 16h50
  4. [VBA-E] Problème pour coder une boucle
    Par lord-asriel dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/03/2007, 10h10

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