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 :

Insérer Pied de page par vba sur dernière page uniquement [Toutes versions]


Sujet :

VBA Word

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Points : 253
    Points
    253
    Par défaut Insérer Pied de page par vba sur dernière page uniquement
    Bonjour le forum,

    J'ai conscience que ma demande est assez particulière mais je me lance.
    Réalisant de nombreuses fiches sous Word 2003, je cherche à automatiser le pied de page.
    Mes fiches (Mise en page, pliage selon livre, 4 feuillest par livret), je peux écrire un nombre de page (4 par feuille A4 pliées) variables.
    Est-il possible par Vba d'obtenir automatiquement un pied de page uniquement sur la dernière page, reprenant le titre de la fiche (toujours la première ligne) sous la forme suivante :
    FB 56 Le titre.
    "FB" (le pied de page commencerait toujours par FB)
    "56" (dernier numéro dans le dossier + 1)
    "Le titre" (Titre de la fiche)
    en vous remerciant.
    Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.

  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,

    Essaie ce code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub AjouterPiedDePageDernierePage()
    Selection.GoTo What:=wdGoToPage, which:=wdGoToLast
    Selection.InsertBreak Type:=wdSectionBreakNextPage
    ActiveDocument.Sections(ActiveDocument.Sections.Count).Footers(wdHeaderFooterPrimary).LinkToPrevious = False
     
    ActiveDocument.Sections(ActiveDocument.Sections.Count).Footers(wdHeaderFooterPrimary).Range.Text = _
        "FB " & " 00 " & ActiveDocument.Paragraphs(1).Range.Text
    End Sub
    Pour le numéro de la fiche, j'ai mis 00, ne sachant pas comment le numéro doit être récupéré.
    Si il faut rechercher le numéro précédent, si on doit compter le nombre de fiches présentes dans un répertoire donné ?
    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
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Points : 253
    Points
    253
    Par défaut
    Bonjour Heureux-oli,
    Je te remercie de te pencher sur ma demande et te prie de bien vouloir m'expliquer la marche à suivre car je suis nul en vba
    Cordialement.
    Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.

  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,

    Deux lien pour de la lecture
    http://heureuxoli.developpez.com/office/word/vba-all/
    http://heureuxoli.developpez.com/office/word/vba-word/

    Pour utiliser ce code, il faut ouvrir le VBE (Visual Basic Editor).
    Dans le module ThisDocument, il faut coller ce code.

    Ensuite, on peut lancer ce code de plusieurs façons.
    Soit en utilisant la touche F5 lorsque le curseur de la souris se trouve dans le code.
    Soit en utilisant un bouton dans une des barres d'outils de Word ou encore par le menu Outils Macro et on peut alors choisir la macro que l'on souhaite utiliser.
    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
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Points : 253
    Points
    253
    Par défaut
    Bonjour Heureux-oli,
    Je te remercie de m'avoir répondu et te prie de m'excuser de répondre si tardivement.

    Je suis arrivé à mettre le code en place, en ce qui concerne le numéro, il suit le nombre de documents réalisés situé dans E:\FB 18
    c'est à dire que, si j'ai 18 fiches, il me faut le n° suivant soit 19

    En espérant que j'ai été suffisamment clair et si c'est réalisable, ce serait super.

    Merci pour le temps et les solutions que tu me donnes.
    Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Points : 253
    Points
    253
    Par défaut
    Rectification :
    Au lieu de :
    E:\FB 18
    lire :
    E:\Fiche Bibliophile 18

    Ce que je souhaite en pied de page est bien :
    FB (Abréviation)
    18 (nombre de fiche dans le dossier Fiche Bibliophile )
    x (Le Titre de la Fiche)

    Sachant que j'ai une fiche vierge que j'utilise pour remplir mes fiches définitives, il s'agit donc bien, en ce qui concerne le numéro, du nombre de fiches dans le dossier et non du nombre +1

    Pour pousser le bouchon un peu plus loin, car tu m'as mis en appétit, le code peut-il s'exécuter automatiquement (sans bouton) dès l'enregistrement de la fiche vierge ?
    Cordialement, en te remerciant et te souhaitant un bon Week-end.
    Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par vieuxmonsieur Voir le message
    Rectification :
    Pour pousser le bouchon un peu plus loin, car tu m'as mis en appétit, le code peut-il s'exécuter automatiquement (sans bouton) dès l'enregistrement de la fiche vierge ?
    Cordialement, en te remerciant et te souhaitant un bon Week-end.
    de la même façon Fichier Enregistrer sous :
    FB 18 Le Titre
    Avex mes plus humbles excuses.
    Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.

  8. #8
    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,

    Pour le code, si s'est sur base d'un modèle de document, on peut toujours envisager de le mettre sur un évènement de ce document comme New().
    Cela se produit lorsque l'on crée un nouveau document basé sur ce modèle.

    Violà le code modifié

    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
    Sub Document_New()
    Dim oFSO As Object
    Dim oFol As Object
    Dim inti As Integer
     
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFol = oFSO.GetFolder("c:\temp")
    inti = oFol.Files.Count
     
    Selection.GoTo What:=wdGoToPage, which:=wdGoToLast
    Selection.InsertBreak Type:=wdSectionBreakNextPage
    ActiveDocument.Sections(ActiveDocument.Sections.Count).Footers(wdHeaderFooterPrimary).LinkToPrevious = False
     
    ActiveDocument.Sections(ActiveDocument.Sections.Count).Footers(wdHeaderFooterPrimary).Range.Text = _
        "FB " & inti & " " & ActiveDocument.Paragraphs(1).Range.Text
    Set oFSO = Nothing
    Set oFol = Nothing
     
    End Sub
    Ce code doit être inséré dans le module ThisDocument du modèle que tu utilises.

    Pour la création de modèle :
    http://heureuxoli.developpez.com/off...d/creermodele/

    Pour ce qui est du retard, tu n'as pas à t'excuser, quelques heures c'est du tout bon, certains membres reviennent 4 ou 5 mois après avoir posé leur question.
    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 !

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Points : 253
    Points
    253
    Par défaut
    Bonjour Heureux-oli,
    Vraiment je te félicite et te remercie pour ta réponse qui me ravit.
    Ce n'est pas la première fois que tu m'aides et sûrement pas la dernière non plus.
    Je te souhaite, ainsi qu'à tout ce forum un excellent Week-end.
    Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.

  10. #10
    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
    Merci,

    A toi aussi.
    En plus, le soleil brille !
    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 !

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par Heureux-oli Voir le message
    Ensuite, on peut lancer ce code de plusieurs façons.
    Soit en utilisant la touche F5 lorsque le curseur de la souris se trouve dans le code.
    Je crois que tu as voulu dire la touche F8

    Tout est OK un grand merci à toi Heureux-oli.
    Au plaisir.
    Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.

  12. #12
    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,

    Non, c'est F5.
    La touche F8 provoque une exécution pas à pas de la procédure.
    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 !

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

Discussions similaires

  1. [AC-2003] Pilotage pdfcreator par vba : imprimer 2 pages sur 1 seule
    Par pier.antoine dans le forum VBA Access
    Réponses: 1
    Dernier message: 22/02/2012, 14h03
  2. transformer liste d'1 colonne sur x pages => plusieurs colonnes sur UNE page
    Par liste excel dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/05/2011, 11h13
  3. Pied de facture sur dernière page
    Par Décibel dans le forum IHM
    Réponses: 24
    Dernier message: 20/04/2011, 16h12
  4. Sous-total par page et total sur dernière page
    Par _cece dans le forum iReport
    Réponses: 3
    Dernier message: 24/02/2010, 15h17
  5. Gérer Pied de page sur dernière page du document
    Par sandarno45 dans le forum BIRT
    Réponses: 0
    Dernier message: 16/06/2008, 18h30

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