Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/06/2008, 08h46   #1
Invité de passage
 
Inscription : juin 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 15
Points : 0
Points : 0
Par défaut Noms des champs de propriétés

Bonjour tout le monde,

je suis actuellement en stage dans une entreprise et on m'a demandé de faire des modifications sur les macros word qu'ils utilsent.

Le principe est simple : quand on ouvre un document word, on nous demande d'entrer des paramètres (le nom de l'auteur, la date ou autre).
J'ai fais des recherches pour transférer les noms entrés pour les mettre dans les champs de propriétés (Fichier->Propriétés) mais je suis confronté à un problème:
je ne sais pas quel nom mettre pour afficher les informations dans les champs responsable, société, catégorie et mots clés.
J'ai essayé manager pour responsable mais ça n'a rien donné.

Pour vous donner un exemple de ce que je cherche exactement, quand je veux remplier le champ titre, il faut que j'utilise le mot title dans le code de la maccro.

J'espère avoir été clair mais je reste à votre disposition si vous avez des points à éclaircir.

Bonne journée à tous.
Loken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 09h12   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 363
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 363
Points : 29 284
Points : 29 284
Salut,
Je vais te donner un lien vers un tuto sur l'utilisation des propriétés de document

http://heureuxoli.developpez.com/office/word/variables/

Si les utilisateurs ont un logon, on peut récupérer les données sur l'utilisateur de façon automatique.

Code :
1
2
3
4
5
Dim Utilisateur As String
 
Utilisateur = Environ("UserName")
 
MsgBox Utilisateur
__________________
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 09h40   #3
Invité de passage
 
Inscription : juin 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 15
Points : 0
Points : 0
j'avais regardé ce tuto (que je trouve très bien d'ailleurs) mais quand on avait testé, les champs société et ceux que j'ai cité dans le premier message ne se remplissaient pas. C'est pour ça que je demande parce que ça me semble bizarre.

Je suis sous Word 2000 peut-être que ça peut expliquer
Loken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2008, 01h12   #4
Membre Expert
 
Avatar de JackOuYA
 
Inscription : juin 2008
Messages : 1 036
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 1 036
Points : 1 035
Points : 1 035
Bonsoir,

pas de probléme avec le code du tuto :

Code :
1
2
3
4
5
6
7
8
 
End Sub
Sub LokenProperties()
 ActiveDocument.BuiltInDocumentProperties(wdPropertyCompany) = "Societe à Loken"
 ActiveDocument.BuiltInDocumentProperties(wdPropertyCategory) = "Catégories à Loken"
 ActiveDocument.BuiltInDocumentProperties(wdPropertyManager) = "Responsable à Loken"
 ActiveDocument.BuiltInDocumentProperties(wdPropertyKeywords) = "Mots Clefs à Loken"
End Sub


JacqueS.
JackOuYA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2008, 08h30   #5
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 363
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 363
Points : 29 284
Points : 29 284
Je viens de faire le test avec Word 97 et ça fonctionne aussi, donc je ne comprend pas la raison de cet échec sur 2000.
__________________
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2008, 10h12   #6
Invité de passage
 
Inscription : juin 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 15
Points : 0
Points : 0
j'ai peut-être fait une erreur en écrivant le code.
Je vérifierais lundi et si ça marche je mettrais que mon problème est résolu

Dans tous les cas merci beaucoup pour vos réponses
bonne journée
Loken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2008, 10h10   #7
Invité de passage
 
Inscription : juin 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 15
Points : 0
Points : 0
je viens de tester le code mais il ne marche pas.
Je vais détailler ce que je fais en expliquant (je viens de comprendre le truc) ce que je veux.

En fait à l'ouverture du document j'ai une fenêtre (macro) qui s'ouvre et me demande des informations sur le document: le nom de l'affaire, la date, etc...

Ces champs, qui sont des variables, je veux les enregistrer dans les propriétés. Pour cela, je fais ceci (je montre avec ceux qui marchent) :

Code :
1
2
3
4
WordBasic.FileSummaryInfo Title:=Affaire$
WordBasic.FileSummaryInfo Subject:=Titre_Doc$
WordBasic.FileSummaryInfo Author:=Référence_Doc$
WordBasic.FileSummaryInfo Comments:=Date_Doc$
Quand je remplis et que je vais sur propriété, les champs ont été remplis correctement.
Ensuite quand j'essaye ce code:

Code :
1
2
3
4
ActiveDocument.BuiltInDocumentProperties(wdPropertyCompany) = "Societe à Loken"
 ActiveDocument.BuiltInDocumentProperties(wdPropertyCategory) = "Catégories à Loken"
 ActiveDocument.BuiltInDocumentProperties(wdPropertyManager) = "Responsable à Loken"
 ActiveDocument.BuiltInDocumentProperties(wdPropertyKeywords) = "Mots Clefs à Loken"
ça ne donne rien et quand je fais du deboggage il ne connait pas.
Donc je l'ai mis comme ceci:

Code :
1
2
3
4
WordBasic.FileSummaryInfo Manager:=Titre_Doc$
WordBasic.FileSummaryInfo Company:=Date_Doc$
WordBasic.FileSummaryInfo Category:=Référence_Doc$
WordBasic.FileSummaryInfo Keywords:=Version_Doc$
mais là encore ça ne marche pas il me met une erreur lors du debbogage.

Savez vous pourquoi ?

PS: j'ai essayé de remplir directement les propriétés à partir du code et la encore seule les 4 premières que j'ai mentionné sont remplies.
Loken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2008, 20h20   #8
Membre Expert
 
Avatar de JackOuYA
 
Inscription : juin 2008
Messages : 1 036
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 1 036
Points : 1 035
Points : 1 035
Bonsoir,

où as tu placé le code donné ? comment lance tu son exécution ?
essai de placer le code dans un module de ton document, puis lance le directement le code par F5 dans VBE.
__________________
JacqueS.

Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

Pour devenir mon ami laissez moi un message
JackOuYA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2008, 08h27   #9
Invité de passage
 
Inscription : juin 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 15
Points : 0
Points : 0
j'ai placé le code dans l'éditeur de macro intégré à word

je lance l'exécution en lançant la macro (mais même en écrivant directement dans les champs depuis le code ça ne marche pas pour les champs cités précédemment)
Loken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 22h30   #10
Membre Expert
 
Avatar de JackOuYA
 
Inscription : juin 2008
Messages : 1 036
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 1 036
Points : 1 035
Points : 1 035
Citation:
Envoyé par Loken Voir le message
personnes pour m'aider ??
faudrai faire cela dans les deux sens, dis nous, comment "lance tu ton code" .. tu le place bien dans un module de ton document...


Citation:
(mais même en écrivant directement dans les champs depuis le code ça ne marche pas pour les champs cités précédemment)
comment tu fais pour écrire directerment dans les champs?
__________________
JacqueS.

Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

Pour devenir mon ami laissez moi un message
JackOuYA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2008, 14h17   #11
Invité de passage
 
Inscription : juin 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 15
Points : 0
Points : 0
Pour écrire le code, je fais Alt+ F8 puis je choisi ma macro et enfin je fais modifier.

A partir de là, j'écris mon code.

Pour le lancer, je lance simplement la maccro et en ce qui concerne les champs fonctionnels précédemment cités, ça marche.
Pour les autres, lorsque je fais F8 (cf menu debbogage), il me met la ligne en jaune (en gros il ne connait pas).

Pour écrire directement dans les champs, j'entre la valeur du champs dans le code.

Code :
1
2
3
4
5
6
7
8
9
WordBasic.FileSummaryInfo Title:="affaire"
WordBasic.FileSummaryInfo Subject:="sujet"
WordBasic.FileSummaryInfo Author:="auteur"
WordBasic.FileSummaryInfo Comments:="commentaires"
 
WordBasic.FileSummaryInfo Manager:="manager"
WordBasic.FileSummaryInfo Company:="compagnie"
WordBasic.FileSummaryInfo Category:="catégorie"
WordBasic.FileSummaryInfo Keywords:="mots-cles"
puis quand je fais exécuter (le petit triangle qu'on utilise pour play en musique) il me surligne en jaune la ligne avec les infos manager
quand je la supprime c'est la ligne du dessous qui est soulignée et ainsi de suite jusqu'a ce que les 4 lignes ne soient plus.
Loken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2008, 20h20   #12
Membre Expert
 
Avatar de JackOuYA
 
Inscription : juin 2008
Messages : 1 036
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 1 036
Points : 1 035
Points : 1 035
Bonjour,

Et une fois que tu as choisi ta macro,où est tu situé dans ton explorateur de projet ( CTRL +R )

je Viens d'essayer à nouveau le code que j'ai posté plus haut, en l'insérant par ta méthode, et ce code fonctionne même si la macro est située dans "normal.dot", suffit de bien penser à activer le document à modifier avant le ALT-F8 ...
__________________
JacqueS.

Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

Pour devenir mon ami laissez moi un message
JackOuYA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2008, 11h06   #13
Invité de passage
 
Inscription : juin 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 15
Points : 0
Points : 0
Quand je suis dans l'éditeur de macro, la macro se trouve dans Project (modele_doc) -> Modules

Activer le document à modifier ? c'est à dire ?
Loken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2008, 21h50   #14
Membre Expert
 
Avatar de JackOuYA
 
Inscription : juin 2008
Messages : 1 036
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 1 036
Points : 1 035
Points : 1 035
Citation:
Envoyé par Loken Voir le message
Quand je suis dans l'éditeur de macro, la macro se trouve dans Project (modele_doc) -> Modules

Activer le document à modifier ? c'est à dire ?
bonsoir, le code que j'ai mis plus haut agit sur le document actif, le document actif sous word est le document au premier plan ..;
__________________
JacqueS.

Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

Pour devenir mon ami laissez moi un message
JackOuYA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 10h32   #15
Invité de passage
 
Inscription : juin 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 15
Points : 0
Points : 0
j'ai fais une recherche dans Word et j'ai trouvé quelque chose :
les BuiltInDocumentProperties sont en lecture seule ce qui veut dire qu'on peut pas les remplir or moi je veux les remplir donc ton code dans tous les cas ne me donne pas ce que je veux (il ne voulait déjà pas s'exécuter)
Loken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 18h42   #16
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 363
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 363
Points : 29 284
Points : 29 284
Je pense que l'utilisation de WordBasic n'est plus à faire.
Ces méthodes et propriétés continuent à fonctionne rpour garder une compatibilité avec les versions antérieures.

Petites précisions, les BuiltInProperties ne sont pas toutes en lecture seule.
__________________
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 23h31   #17
Rédacteur/Modérateur
 
Avatar de Sepia
 
Homme JF Jousseaume
Inscription : octobre 2007
Messages : 2 390
Détails du profil
Informations personnelles :
Nom : Homme JF Jousseaume
Âge : 48
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 2 390
Points : 3 356
Points : 3 356
Par défaut Complément sur WordBasic

Salut,

En effet, même si Microsoft fait un gros effort sur la compatibilité ascendante, il existe des instructions qui ne fonctionnent plus de la même manière qu'avant donc le WordBasic est vraiment à abandonner surtout avec [WO07] et le XML qui a ajouté un le modèle objet de gestion des fichiers qui n'a plus rien à voir avec de simples fichiers .doc comme avant.

Tiens, d'ailleurs, il me reste encore des macros à traduire de WordBasic pour ma société. Les cordonniers sont souvent les plus mal chaussés (Aie, j'ai des grosses ampoules avec ces vieilles macros )

Tréve de plaisanterie, oui il faut absolument et le plus tôt possible abandonner Wordbasic.


@+
Sepia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2008, 09h31   #18
Invité de passage
 
Inscription : juin 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 15
Points : 0
Points : 0
peut-être mais pour l'instant j'ai un boulot à faire sur les macros donc j'ai pas trop le choix faut que je reste dessus.

J'ai résolu mon problème de propriétés par une méthode de remplacement : créer ses propres propriétés. J'ai essayé de le remplir avec une variable que je demande à l'utilisateur de remplir au préalable et là ça marche nickel chrome.

maintenant j'aimerais lire cette propriété pour l'afficher dans le document. Je m'explique : lorsqu'on lance la macro, une fenêtre de saisie apparaît où l'utilisateur rentre les informations dans les différents champs. Or, lorsque le fichier est déjà rempli, les champs sont pleins et si l'utilisateur veut les modifier, il faut que les champs déjà remplis apparaissent comme rempli dans la fenêtre de saisie. Au final, les informations seront utilisées dans le document pour remplir des zones prédéfinies du fichier

Voila, j'espère avoir été suffisament clair dans mes explications pour obtenir une réponse précise. Si ce n'est pas le cas, demandez moi des précisions, te tacherais d'y répondre avec plus de précision

bonne journée
Loken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2008, 11h05   #19
Rédacteur/Modérateur
 
Avatar de Sepia
 
Homme JF Jousseaume
Inscription : octobre 2007
Messages : 2 390
Détails du profil
Informations personnelles :
Nom : Homme JF Jousseaume
Âge : 48
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 2 390
Points : 3 356
Points : 3 356
Salut,

Juste pour compléter, il faut savoir que tu peux sans problème ajouter du code VBA dans du WordBasic, puisque de toute façon, tu utilises VBA (il n'y a plus que ça dans [Wo]).

Pour remplir des boites de dialogue en WordBasic, on utilisait des DlgBox avec qui décrivait la boîte et son contenu. Est-ce que c'est ton cas ? Si oui, envoie le code ta dlgBox (et son appel), si ce n'est pas pas confidentiel. J'essayerai de me souvenir comment ça marche

@+
Sepia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2008, 11h50   #20
Invité de passage
 
Inscription : juin 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 15
Points : 0
Points : 0
Code :
1
2
3
4
5
6
7
8
9
10
11
Dim dlg As Object: Set dlg = WordBasic.CurValues.UserDialog
 
 
dlg.Affaire = Affaire$
dlg.Date_Doc = Date_Doc$
dlg.Titre_Doc = Titre_Doc$
dlg.Référence_Doc = Référence_Doc$
dlg.Type_Doc = Type_Doc$
dlg.CTD_Doc = CTD_Doc$
dlg.Version_Doc = Version_Doc$
dlg.Confidentialité = Confidentialité$
voila le code que j'utilise avec les dlgBox.

Je sais pas à quoi il sert puisque je l'ai récupéré d'une macro déjà existante pour faire le système de saisie mais peut-être que toi ça te parle.
Dans tous les cas, ce que je voudrais c'est que quand je " relance" la macro, les valeurs entrées apparaissent et que je puisse les modifier pour en mettre des nouvelles.
Loken est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h03.


 
 
 
 
Partenaires

Hébergement Web