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 :

Mise en page document publiposté


Sujet :

VBA Word

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 71
    Points : 37
    Points
    37
    Par défaut Mise en page document publiposté
    Bonjour à tous,

    Mon problème est très simple mais je ne vois pas comment faire pour trouver la solution.
    J'ajoute des champs de fusion comme ceci: Nom : Capture01.jpg
Affichages : 144
Taille : 42,1 Ko et en fonction du nombre d'enregistrements contenu dans ma source de données (fichier excel), le texte en dessous sera décalé. Je souhaite qu'il ne le soit pas.
    Voir exemple 1 :

    Nom : Sans titre2.jpg
Affichages : 154
Taille : 140,1 Ko

    Et exemple 2 :
    Nom : Sans titre3.jpg
Affichages : 121
Taille : 108,9 Ko

    On voit bien que le pied de page contenant GEMLIK, TURKIYE, OYAK etc n'est pas à la même position.
    Comment faire pour que ce pied de page soit toujours dans la même position peu importe le nombre d'enregistrements fusionnés ?

    J'espère avoir été clair, merci d'avance de vos réponses/idées.

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Si tu le mets dans une zone de texte, ça devrait le faire.
    On peut définir une position fixe pour cet objet par rapport au coin supérieur gauche.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 71
    Points : 37
    Points
    37
    Par défaut
    Salut,
    Merci pour ta réponse.
    Effectivement en créant une zone de texte cela semble répondre à mon besoin.
    Cependant en utilisant cette macro je n'arrive pas à fixer la position:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      Dim txtBx As Shape
      Set txtBx = ActiveDocument.Shapes.AddTextbox(msoTextOrientationHorizontal, 400, 10, 100, 200)
      txtBx.TextFrame.TextRange = "GEMLIK"
      txtBx.TextFrame.TextRange.Bold = True
    J'aimerais la fixer en utilisant cette propriété:

    Nom : Capture01.jpg
Affichages : 118
Taille : 20,5 Ko

    "Au dessous de marge" au lieu de "au dessous du paragraphe"
    Mais je ne sais pas le traduire en vba

    Peux-tu m'aider stp ?

    Merci d'avance

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Pourquoi fixer la zone par vba.
    Normalement, le publipostage se base sur un document existant qui contient les champs de fusion.
    Il suffit que ce document contienne la zone de texte.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 71
    Points : 37
    Points
    37
    Par défaut
    Salut Oli,
    Car mon projet doit être entièrement automatisé.
    Mais du coup peut-être faut-il déplacer ce sujet dans le bon topic: 'VBA & Word'

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Voilà comment on peut ajouter et placer une zone de texte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim oSh As Shape
     
    Set oSh = Shapes.AddTextbox(msoTextOrientationHorizontal, 100, 100, 100, 100)
    With oSh
        .RelativeVerticalPosition = wdRelativeVerticalPositionTopMarginArea
        .Top = CentimetersToPoints(21)
        .RelativeHorizontalPosition = wdRelativeHorizontalPositionLeftMarginArea
        .Left = CentimetersToPoints(1)
    End With
    Set oSh = Nothing
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #7
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 71
    Points : 37
    Points
    37
    Par défaut
    Merci beaucoup ca fonctionne

    Le code final ressemble à ça:

    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
    Dim oSh As shape
    Set oSh = ActiveDocument.Shapes.AddTextbox(Orientation:=msoTextOrientationHorizontal, _
    Left:=100, Top:=100, Width:=75, Height:=65)
    With oSh
        .RelativeVerticalPosition = wdRelativeVerticalPositionTopMarginArea
        .Top = CentimetersToPoints(25.43)
        .RelativeHorizontalPosition = wdRelativeHorizontalPositionLeftMarginArea
        .Left = CentimetersToPoints(5.45)
        .TextFrame.TextRange = "GEMLIK" & vbCrLf & "TÜRKIYE" & vbCrLf & Format(Date, "dd.MM.yyyy")
        .TextFrame.TextRange.Bold = True
        .TextFrame.TextRange.Font.Name = "Arial"
        .TextFrame.TextRange.Font.Size = 9
        .Line.Visible = msoFalse
    End With
    Set oSh = Nothing

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

Discussions similaires

  1. [WD-2007] Différence de mise en page document entre XP et Wind 7
    Par laurentF2G2 dans le forum Word
    Réponses: 6
    Dernier message: 04/09/2010, 00h23
  2. Mise en page d'un document Word sous VBA/Word
    Par cupidette92 dans le forum VBA Word
    Réponses: 15
    Dernier message: 20/02/2008, 18h48
  3. Réponses: 2
    Dernier message: 24/10/2007, 11h44
  4. mise en page d'un document
    Par Qamalito dans le forum Word
    Réponses: 8
    Dernier message: 09/10/2007, 14h49
  5. Réponses: 3
    Dernier message: 30/06/2006, 15h10

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