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

Word Discussion :

utilisation d'une partie du nom du document [WD-2007]


Sujet :

Word

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2012
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 66
    Points : 34
    Points
    34
    Par défaut utilisation d'une partie du nom du document
    Bonjour,
    je suis en train de créer un modèle word pour mon entreprise.
    les fichier son intitulé comme ça :
    "numéro du dossier"-"numéro du document""indice_"nom du document
    ça donne 123123-456A_rapport type

    je souhaite utiliser ces donnés automatiquement dans la page d'identification du document. mais je voudrais utiliser des champ mais je n'arrive pas à extraire infos !

    exemple :
    numéro de dossier : [champ reprenant les 6 premiers caractère du FILNAME]
    numéro du document : [champ reprenant les 3 caractère correspondant]
    Indice : [champ reprenant les 3 caractère correspondant]

    merci de vos coup de mains !

  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,

    Sans passer par du VBA, ce ne sera pas possible.
    Avec les champs, il n'est pas possible d'utiliser des fonctions 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 !

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2012
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 66
    Points : 34
    Points
    34
    Par défaut
    Bonjour,
    merci de ta réponse bien que ça ne m’arrange pas !

    je suis arrivé à faire ça sur une feuille excel ! mais quand je l'insert ça marche plus.

    pour du VBA, j'ai un peu peur que ça ne marche pas top, le fichier sera utilisé par une centaine de personne et plus il est simple mieux c'est. mais bon je vais essayé quand même.

  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,

    Les formules Excel permettent de traiter des chaînes de caractères.
    Ce qui n'est pas le cas en Word.
    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
    Août 2012
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 66
    Points : 34
    Points
    34
    Par défaut
    Salut,
    après essais plusieurs en VBA j'arrive pas a grand chose.
    t'aurais une idée pour résoudre mon problème ?
    merci !

  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,

    Oui, mias il fautdrait des informations plus précises.

    On peut tenter un split, on peut envisager un extraction dans la chaîne, Left, Right et Mid.
    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
    Août 2012
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 66
    Points : 34
    Points
    34
    Par défaut
    je sais pas trop, ce que je veux c'est le plus simple possible, il faut que la mise à jour soit automatique, que ça soit compatible avec les versions de word.

  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,

    C'est le formatage le plus correct possible du nom du document.
    Quelques exemples seraient les bien venus.
    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 expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Il faut formater le nom du fichier selon les autres éléments.
    Pour récupérer une partie d'une chaine de caractères, il est possible d'utiliser la fonction mid et pour le résultat d'un champ, il faut utiliser la propriété .result.text.
    Voici par exemple ce que cela donne pour les 6 premiers caractères du nom et le résultat du premier champ.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mid(ActiveDocument.Name,1,6) & "-" & activedocument.Fields(1).Result.Text
    Je te laisse adapter cet exemple à ton cas.
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  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
    Salut,

    Effectivement, je pense qu'une chose serait à préciser.
    C'est pour donner un nom au document ou pour au départ du nom d'un document remplir certaines valeurs du document ?
    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
    Nouveau membre du Club
    Inscrit en
    Août 2012
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 66
    Points : 34
    Points
    34
    Par défaut
    salut,

    j'arrive à insérer la parti du nom comme je veux, avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub macro()
    Selection.TypeText Text:=Mid(ActiveDocument.Name, 3, 6)
    End Sub
    mais cela insert un texte, je ne vois pas de possibilité de mise à jour et puis il faut faire une manip pour l’insérer.
    ce que je veux c'est la même utilité que le champ nom du fichier mais avec juste les parties de nom.

    t'entend quoi par "au départ du nom d'un document remplir certaines valeurs du document".

  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,

    Donc, on part bien du nom du document pour insérer certaines parties de ce nom dans le document.

    Permet d'insérer du texte mais en dur dans le document et à chaque utilisation, le texte est ajouté.

    Pour avoir une mise à jour, il faut passer par des contrôles.
    On peut utiliser des contrôles de formulaire, des champs basés sur certaines propriétés du document, ...
    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 !

  13. #13
    Nouveau membre du Club
    Inscrit en
    Août 2012
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 66
    Points : 34
    Points
    34
    Par défaut
    Oui, oui on part bien du nom du document.
    Je veux exactement comme le champ "nom du fichier" mais en affichant que certains caractères.
    Sous Excel ou autocad je suis parvenu à mes fins mais pas sous Word.

    En faite, les personnes vont créer un document en chargeant un modèle, le rédiger et l’enregistrer tout d’abor avec un nom quelconque.
    Ensuite, une fois le document terminé ou que la personne a décidé que celui-ci serait transmit au client, il déclara ce document pour lui donné un numéro chrono propre à chaque document, pour l'instant, les personnes rempliront un tableau tous simple, plus tard il y aura probablement un logiciel exprès pour.
    Une fois le numéro défini, ils renommeront le fichier et à ce moment là, il ne faut pas qu'ils aient d'autres manipes à faire, si non, ils vont oublier et surtout râler !
    Je pars du nom du fichier pour 2 raisons :
    - de cette façon le nom du fichier est toujours en correspondance avec ce qui est marqué dans le document.
    - de plus, il est plus intuitif de renommer le fichier afin que les champs ou références se mets à jour plutôt que l'inverse

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

    on peut partir sur le principe des champs de formulaire.

    Trois champs texte DOS; DOC; IND

    Sur l'évènement Document_Close()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ActiveDocument.FormFields("DOS").Result  = Left(ActiveDocument.Name,6)
    ActiveDocument.FormFields("DOC").Result  = Mid(ActiveDocument.Name,7,3)
    ActiveDocument.FormFields("DOC").Result  = Mid(ActiveDocument.Name,11,3)
    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 !

  15. #15
    Nouveau membre du Club
    Inscrit en
    Août 2012
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 66
    Points : 34
    Points
    34
    Par défaut
    salut,
    ça me semble pas mal, mais je n'arrive à rien, faut dire que je suis une quiche avec word et en plus j'ai pas le temps de me plonger sur les différentes méthodologies des VBA, si tu veux bien me donner un coup de mains plus précis ça serai super gentil, si non merci quand même pour les réponses.

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

    J'ai tout donné.

    Alt F11 pour le VBE.

    LE code complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub Document_Close()
    ActiveDocument.FormFields("DOS").Result  = Left(ActiveDocument.Name,6)
    ActiveDocument.FormFields("DOC").Result  = Mid(ActiveDocument.Name,7,3)
    ActiveDocument.FormFields("IND").Result  = Mid(ActiveDocument.Name,11,3)End Sub
    Trois champs de formulaire, DOS, DOc et IND

    A la fermeture du document, les champs vont se remplir.
    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 !

  17. #17
    Nouveau membre du Club
    Inscrit en
    Août 2012
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 66
    Points : 34
    Points
    34
    Par défaut
    champ de formulaire ?
    j'arrive à insérer plein de champ mais pas des DOS, DOC, IND.
    du coup je me retrouve avec une erreur 5941

  18. #18
    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 le nom qu'il faut donner aux différents champs de formulaire.

    http://heureuxoli.developpez.com/off...mulaires/#L2-C

    Dans les captures d'écran, c'est Texte1, Texte2.
    Il suffit de changer le nom.
    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 !

  19. #19
    Nouveau membre du Club
    Inscrit en
    Août 2012
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 66
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    Merci de tes infos, je n'avais pas fait le rapprochement avec les champs texte !

    La macro marche bien mais il faut que l'exécute manuellement.

    Y a-t-il un moyen de l'exécuter automatiquement à la fermeture et à l'impression ?

    Lorsque l'on supprime un intitulé et que l'on exécute la macro, un message apparait et propose un débogage.

    Y a-t-il moyen de remplacer ce message par un autre type :

    "Attention les informations suivantes n'ont pas été mises à jour car la macro ne trouve pas les champs correspondants :

    - Indice

    - numéro d'affaire

    - numéro chrono

    Voulez-vous désactiver la mise à jour automatique :

    Oui – non"

    Dans le cas de oui peut-on carrément faire supprimer tous les macros ?

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

    Ça commence à faire beaucoup de question en une fois.

    Pour activer un code lors de l'impression, il faut utiliser les évènements Application.

    Pour les messages d'erreur, il faut soit les ignorer, soit les traiter.

    Par contre, modifier le code en fonction des erreur n'est pas la solution à mettre en oeuvre, elle est assez risquée.
    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.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/08/2014, 23h31
  2. Réponses: 4
    Dernier message: 27/09/2007, 15h05
  3. Réponses: 2
    Dernier message: 18/01/2007, 21h05
  4. Recherche de doublons sur une partie du nom
    Par ch851 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/11/2006, 21h08
  5. [VBA-A]passer en paramètre une partie du nom de tables?
    Par pheno82 dans le forum VBA Access
    Réponses: 4
    Dernier message: 21/03/2006, 11h26

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