Créer une macro sur word me permettant de récupérer des données pour renseigner [Résolu]

Messages postés
12
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
3 juin 2010
- - Dernière réponse : shuwby
Messages postés
12
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
3 juin 2010
- 13 avril 2010 à 11:11
Bonjour,

J'ai besoin de créer une marco sur word sous forme de masque de saisie grâce à laquelle les renseignements demandés serviraient à renseigner mon document word et en même temps seraient stockés dans une base de données dont je pourrais me reservir utltérieurement.

Est-ce possible et si oui est-ce que vous pourriez m'aiguiller, je suis débutante sur VBA...

Merci!
Laure
Afficher la suite 

11 réponses

Meilleure réponse
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 juin 2016
1
3
Merci
Bonjour

Si Les données sont seulement textuelles : créer un formulaire et stocker les champs saisis dans les champs CustomProperties (Fichier/Propriétés/Personnalisation) Office que tu peux renvoyer dans le documlent avec des champs d'insertions

Il existe des sites comme developpez.com qui disposent de tutoriaux et exemples à télécharger très bien expliqués .

les documents porteront eux memes toutes les informations textuelles, et l'explorateur windows pourra les afficher comme s'il s'agisssait d'une base d'information . Il sera ensuite possible d'en faire un extraction en parcourant les dossiers qui incluent ces document en écrivant une macro d'extraction en utilisant http://www.microsoft.com/downloads/details.aspx?FamilyID=9ba6fac6-520b-4a0a-878a-53ec8300c4c2&DisplayLang=en

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 217 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_loulou69
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 juin 2016
1
3
Merci
Bonjour

Je ne sais pas trop si stocker signifie modifier et stocker, donc je te donne les informations pour le tout via un formuliare de modifications pour tes données.

Faire Un formulaire Form1 avec 2 Textbox :txtNomSoucripteur et txtAdresseSouscripteur
+ 1 bouton OK pour valider les saisies
+ eventuellement (facultatif) 1 bouton pour associer le formulaire à une action utilisateur "Outils/ Personnaliser/ Onglet "Commandes"/ Liste "Catégories": choisir Macros / A droite "sélectionner la macro d'appel du formulaire" et la glisser dans une barre d'outil (éventuellément à créer ou à ajouter à une barre d'outil existante)

soit macro1 la macro d'appel et form1 le foumaire de saisie

Public Sub Macro1()
Form1.Show 1
End Sub

Dans le formulaire Form1

'' sur l'événement load :
Sub Form_Load()
txtNomSouscripteur.Text = LireChampTxt("NomSoucripteur")
txtAdresseSouscripteur.Text = LireChampTxt("AdresseSouscripteur")
End Sub

'' Sur la validation d'un bouton OK
Sub cmdOK_Click
Call StockerChampTxt(txtNomSouscripteur, "AdresseSouscripteur")
Call StockerChampTxt(txtNomSouscripteur, "AdresseSouscripteur")
End Sub

Sub Form_Unload()
ActiveDocument.Fields.Update 'mise à jour des champs d'insertion
End Sub

Sub LireChampTxt(txtBox as TextBox, Custom As String
Me.txtTitre = .CustomDocumentProperties(Custom).Value
End Sub

Sub StockerChampTxt(txtBox As TextBox, Custom As String)
If Len(txtBox.Text) = 0 Then
ActiveDocument.CustomDocumentProperties(Custom).Value = " "
Else
ActiveDocument.CustomDocumentProperties(Custom).Value = txtBox.Text
End If
End Sub

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 217 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_loulou69
Messages postés
12
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
3 juin 2010
0
Merci
Merci beaucoup pour ta réponse, je vais essayer ca!!!
Commenter la réponse de shuwby
Messages postés
12
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
3 juin 2010
0
Merci
Bonjour,

Je suis désolée mais je n'y arrive vraiment pas...

J'ai bien créé mon formulaire.
Ensuite j'ai créé des champs CustomProperties "NomSoucripteur" et "AdresseSouscripteur" qui correspondent à deux champs de mon formulaire.
Puis, j'ai fait les champs d'insertion dans le document Word pour ces deux données.

Malheureusement, je ne trouve pas le code à écrire dans VBA pour réussir à stocker les champs saisis sur mon formulaire dans les champs CustomProperties.

J'ai cherché les tutoriels dont tu m'as parlé dans l'espoir de ne pas te déranger à nouveau, mais je n'ai rien trouvé.

Merci beaucoup pour ton aide,

Laure
Commenter la réponse de shuwby
Messages postés
12
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
3 juin 2010
0
Merci
J'ai encore un petit souci...
Après avoir recopier ton écriture, j'ai un message d'erreur
"erreur de compilation :
Type d'argument ByRef incompatible"

sur ce passage :

Sub cmdOK_Click
Call StockerChampTxt(txtNomSouscripteur, "AdresseSouscripteur")
Call StockerChampTxt(txtNomSouscripteur, "AdresseSouscripteur")
End Sub

Ca concerne le premier "txtNomSouscripteur"

Je ne vois pas où j'ai pu faire d'erreur en recopiant, j'ai bien vérifié.

Merci beaucoup pour tes réponses, je dois faire tout ca dans le cadre d'un stage et j'avoue etre assez perdue... J'ai seulement fait une petite formation sur VBA il y a 1an 1/2...
Commenter la réponse de shuwby
Messages postés
12
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
3 juin 2010
0
Merci
Je suis désolée c'est moi qui avait fait une erreur!!! Je regarde si ca marche mieux maintenant.

Désolée!!!
Commenter la réponse de shuwby
Messages postés
12
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
3 juin 2010
0
Merci
Bon alors après rectification de mes erreurs... ca ne marche toujours pas.

Je peux ouvrir et remplir le formulaire mais quand j'appuie sur OK rien ne se passe. Le formulaire ne disparait meme pas.

Pour répondre à ta question pour que tu comprennes mieux ce que je fais :
Ma société a créé un contrat type, et je dois créer des formulaires qui permettent de remplacer les plages types (Nom, adresse, numéro du contrat...)par les informations du client, sans que les commerciaux aient à relire tout le contrat pour chercher les plages à modifier.

Donc pour le moment j'ai créé des champs CustomProperties, et j'ai inséré des champs "propriétéDoc" vers les champs mes champs CustomProperties dans mon document word type.

Donc par stocker je voulais dire que j'aimerai que ce qu'on écrit sur le formulaire, vienne remplacer les champs dans le document : je suppose que ca veut dire que les champs CustomProperties doivent prendre comme valeur ce qui est écrit dans le formulaire.

J'ai fait ca pour suivre ton instruction :
"Si Les données sont seulement textuelles : créer un formulaire et stocker les champs saisis dans les champs CustomProperties (Fichier/Propriétés/Personnalisation) Office que tu peux renvoyer dans le documlent avec des champs d'insertions "


J'espère que c'est assez clair... comme mon esprit n'est pas très clair... j'imagine que ca n'aide pas...
Commenter la réponse de shuwby
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 juin 2016
1
0
Merci
C'est moi qui ait des difficultés avec la notion de formulaire

Lorsque dans un modele de document Word (.Dot) on a des propriétés personnalisées elles se retrouvent ensuite dans chacun des documents (.doc).

Pour chaque document pour que ces propriétés aient des valeurs différentes il faut bien les modifier?

Excuses j'étais parti et demain je serais pas forcément très disponible, mais je surveillerai depuis un autre poste je ne recevrai pas les mails.
Commenter la réponse de cs_loulou69
Messages postés
12
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
3 juin 2010
0
Merci
Je n'avais pas transformé mon dossier en .dot, je pensais qu'il fallait que j'écrive les macros sur mon contrat normal (donc en .doc) et qu'ensuite il suffisait d'ouvrir le document, de remplir le formulaire et d'enregistrer sous un autre nom...
Je n'y connais vraiment pas grand chose, désolée.

Je viens de transformer mon document en .dot et malheureusement ca ne marche toujours pas. J'ai toujours le même problème : quand je clique sur OK rien ne se passe.
Commenter la réponse de shuwby
Messages postés
12
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
3 juin 2010
0
Merci
En fait je viens de voir que ca marche presque!!!
Ca change bien la valeur dans CustomProperties, par contre c'est juste le champ d'insertion qui ne se met pas à jour. Si je clique droit sur le champ dans le document, et que je vais sur "modification du champs" et que je clique à nouveau sur la propriété, alors la ca change le corps du texte par ce que j'ai inscrit dans le formulaire.
Commenter la réponse de shuwby
Messages postés
12
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
3 juin 2010
0
Merci
J'ai réussi!!!!!!
Merci 1000fois pour ton aide et ta disponibilité!!!!
Commenter la réponse de shuwby