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 :

plusieurs signets dans entête word


Sujet :

VBA Word

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Points : 7
    Points
    7
    Par défaut plusieurs signets dans entête word
    Bonjour,
    j'aimerai ajouter un entête et un pied de page à mon document word.
    mon entête est composé de 2 éléments mon logo et l'identifiant de mon étude
    mon pied de page est lui composé de 3 éléments .
    j'utilise les signets avec recupération des données sous excel.
    je n'arrive pas à positionner mes signets correctement (logo à gauche, identifiant à droite) et pour le pied de page (gauche centrer et droite)
    j'ai essayé avec la variable position:= mais cette solution ne me convient pas car dans mon document il y'a des pages en portrait et en paysage

    un bout de 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
    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 SIG_entete()
    '
    ' Macro3 Macro
    '
    '
        If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
            ActiveWindow.Panes(2).Close
        End If
        If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
            ActivePane.View.Type = wdOutlineView Then
            ActiveWindow.ActivePane.View.Type = wdPrintView
        End If
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
        Selection.ParagraphFormat.TabStops.Add Position:=CentimetersToPoints(8), _
            Alignment:=wdAlignTabLeft, Leader:=wdTabLeaderSpaces
        Selection.ParagraphFormat.TabStops.Add Position:=CentimetersToPoints(15.5) _
            , Alignment:=wdAlignTabLeft, Leader:=wdTabLeaderSpaces
        Selection.TypeText Text:=vbTab & vbTab
        Selection.MoveLeft Unit:=wdCharacter, count:=2
        With ActiveDocument.Bookmarks
            .Add Range:=Selection.Range, Name:="logo"
            .DefaultSorting = wdSortByName
            .ShowHidden = False
        End With
        Selection.MoveRight Unit:=wdCharacter, count:=2
        With ActiveDocument.Bookmarks
            .Add Range:=Selection.Range, Name:="NumInes"
            .DefaultSorting = wdSortByName
            .ShowHidden = False
        End With
        If Selection.HeaderFooter.IsHeader = True Then
            ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
        Else
            ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
        End If
        Selection.TypeText Text:=vbTab & vbTab
        Selection.MoveLeft Unit:=wdCharacter, count:=2
        With ActiveDocument.Bookmarks
            .Add Range:=Selection.Range, Name:="confidential2"
            .DefaultSorting = wdSortByName
            .ShowHidden = False
        End With
        Selection.MoveRight Unit:=wdCharacter, count:=1
        With ActiveDocument.Bookmarks
            .Add Range:=Selection.Range, Name:="page"
            .DefaultSorting = wdSortByName
            .ShowHidden = False
        End With
        Selection.MoveRight Unit:=wdCharacter, count:=1
        With ActiveDocument.Bookmarks
            .Add Range:=Selection.Range, Name:="date2"
            .DefaultSorting = wdSortByName
            .ShowHidden = False
        End With
        ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
     
    End Sub
    merci d'avance pour votre aide

  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,

    C'est une macro enregistrée et en général pour ce genre d'opération, le résultat n'est pas constant.

    Ce que je ne comprend pas, c'est l'intérêt de positionner des éléments qui sont fixes sur un document en VBA ?

    Si c'est pour injecter des données, on peut adresser les signets directement, quelle que soit la position qu'ils occupent sur le document.

    ActiveDocument.Bookmarks("MonSignet").Range.Text = "Mon texte"Le principe est assez rudimentaire, on crée un modèle de document avec tout ce qui est fixe. Ensuite, on utilise les signets pour les données variables.
    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
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci pour ta réponse,
    effectivement il s'agit bien d'un code enregistré car je n'ai pas trouvé comment le faire à la main.
    concernant ta question sur l'intérêt d'utiliser du VBA pour des signets fixe, en fait j'aimerai générer automatiquement la page de garde, je génère le modèle et je le remplis avec des infos stockées dans une feuille excel. la macro devrait être utilisable partout sans devoir accéder à un réseau.

  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,

    Ce qui rend les choses plus simples, du moins dans mon cas.
    Je fais mes modèles de document (*.dotm).
    Dans ces modèles, je mets tout ce qui est fixe, l'adresse, les logos, les informations relatives au département, la place pour la date et les différentes petites choses qui restent toujours identiques (Objet, ....)

    Le reste des données qui sont mobiles, je les insère au moment de la création du document.
    Comme ça reste du texte, c'est beaucoup plus simple et pas de mise en forme à faire.

    si c'est la position des image qui pose problème via le VBA, on peut toujours ruser.
    On peut utiliser une zone de texte avec un objet dans cette zone.
    On peut utiliser un tableau avec une cellule et placer l'objet graphique dans la cellule.
    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
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Tu as effectivement raison Heureux, je ne suis pas très à l'aise avec les modèles (.dotm), j'ai pensé contourné le problème avec les Template, mais cette solution me convient moins car elle ne peut pas transporter les macro word. je farfouille pour voir comment le faire à partir d'un modele, mais si tu as sous la main une doc (ou code à ce sujet) je suis preneur.

    merci d'avance

  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
    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 !

Discussions similaires

  1. Créer plusieurs tableau dans doc word via VBS
    Par calimeroVBS dans le forum VBScript
    Réponses: 8
    Dernier message: 25/07/2012, 11h41
  2. Créer un signet dans l'entête Word
    Par gaetan cousseau dans le forum VBA Word
    Réponses: 4
    Dernier message: 20/12/2011, 18h32
  3. [VB.NET] Créer plusieurs tableaux dans word
    Par Dj Thunder dans le forum Windows Forms
    Réponses: 1
    Dernier message: 30/06/2006, 00h04
  4. Réponses: 2
    Dernier message: 21/09/2005, 12h18
  5. Création étiquettes avec signets dans Word
    Par rohstev dans le forum VBA Word
    Réponses: 2
    Dernier message: 18/03/2005, 13h14

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