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 Discussion :

Nom de fichier automatique dans Publisher.


Sujet :

VBA

  1. #1
    Candidat au Club
    Homme Profil pro
    E&I Technician
    Inscrit en
    Janvier 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : E&I Technician
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2014
    Messages : 1
    Points : 3
    Points
    3
    Par défaut Nom de fichier automatique dans Publisher.
    Bonjour à tous,

    Je poste mon premier message ici après de nombreuses recherches qui restent sans réponses... D'habitude je trouve toujours ce dont j'ai besoin mais là non :/ Désolé (J'espère être au bon endroit pour ce post).
    Je précise que je n'ai jamais fais de vba de ma vie donc ça peut vous paraître simple mais pour moi ça ne l'est pas, même si la logique est là je n'arrive pas à écrire le code (Et surtout savoir si je suis sur la bonne voie).

    Donc le problème :
    J'ai plusieurs documents Publisher, dans chaque document j'aimerai en pieds de page le nom du fichier, mais aussi que ce titre en bas de page change automatique si on change le nom du fichier. Tout simplement car ces fichiers sont modifiés au fil du temps, et nous changeons dans le nom la date et le numéro de révision, pour être certain que ce soit le bon fichier dans lequel nous travaillons il est idéal que le nom en pieds de page change automatiquement à chaque changement du nom de fichier.

    Donc j'ai écris ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Document_Open()
      Dim shShape As Shape
      Dim strPubFile As String
      strPubFile = Application.ActiveDocument.Name
      Set shShape = ActiveDocument.Pages(1).Shapes.AddTextbox(1, 200, 820, 200, 20)
      shShape.TextFrame.TextRange.Text = strPubFile
    End Sub
    Mais le problème, c'est qu'à chaque ouverture il n'écrase pas l'ancien nom mais créé un nouveau et superpose... Dans la logique, l'idéal serait de soit supprimer à chaque ouverture le Shape existant et créé le nouveau, soit comparer si le nom du fichier est le même que le nom en pieds de page, si oui ne rien faire, si non supprimer et remplacer. Chaque fois que j'essaie de supprimer, j'ai un problème, j'écris ceci :

    ActiveDocument.Pages(1).Shapes.Delete

    Mais ça ne semble pas être la bonne syntaxe (ou la bonne méthode). Je précise que j'ai plusieurs Shape sur la page, donc l'idéal serait de cibler seulement celui avec le nom (le nommer peut-être ?).

    Merci d'avance à ceux qui se penchent sur mon problème ! Si ma méthode n'est pas la bonne à la base, n'hésitez pas à me corriger.
    Bonne journée.

  2. #2
    Membre averti Avatar de arosec
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Points : 324
    Points
    324
    Par défaut
    Bonjour,

    Ci joint un exemple:
    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
     
    Private Sub Document_Open()
    Dim p As Page
    Dim shShape As Shape
     
      'On parcours toutes les page du fichier
      For Each p In ThisDocument.Pages
        'On parcours toutes les formes du fichier
        For Each shShape In p.Shapes
          'Si la forme contient "shNomFichier_", on la supprime
          If InStr(shShape.Name, "shNomFichier_") > 0 Then shShape.Delete
        Next shShape
     
        'On crée le bas de page
        Set shShape = p.Shapes.AddTextbox(1, 200, 820, 200, 20)
        shShape.Name = "shNomFichier_" & p.PageID
        shShape.TextFrame.TextRange.Text = Application.ActiveDocument.Name
        Set shShape = Nothing
     
      Next p
     
    End Sub
    Cdlt,
    Les ordinateurs sont inutiles. Ils ne savent que donner des réponses.
    Pablo Picasso

Discussions similaires

  1. inserer un nom de fichier automatiquement dans un fichier
    Par cobra85 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 16/04/2009, 11h02
  2. Nom du fichier loader dans un clip
    Par charliejo dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 03/01/2007, 17h32
  3. Réponses: 5
    Dernier message: 08/05/2006, 00h39
  4. Réponses: 3
    Dernier message: 25/01/2006, 17h54
  5. importer les noms de fichiers html dans une table access
    Par abane badis dans le forum Access
    Réponses: 3
    Dernier message: 14/11/2005, 17h25

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