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

Résolu
shuwby Messages postés 12 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 3 juin 2010 - 1 avril 2010 à 17:15
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

11 réponses

cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
2 avril 2010 à 15:31
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
3
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
12 avril 2010 à 14:59
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
3
shuwby Messages postés 12 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 3 juin 2010
8 avril 2010 à 10:32
Merci beaucoup pour ta réponse, je vais essayer ca!!!
0
shuwby Messages postés 12 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 3 juin 2010
12 avril 2010 à 14:32
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
shuwby Messages postés 12 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 3 juin 2010
12 avril 2010 à 15:41
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...
0
shuwby Messages postés 12 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 3 juin 2010
12 avril 2010 à 15:45
Je suis désolée c'est moi qui avait fait une erreur!!! Je regarde si ca marche mieux maintenant.

Désolée!!!
0
shuwby Messages postés 12 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 3 juin 2010
12 avril 2010 à 16:08
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...
0
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
12 avril 2010 à 17:05
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.
0
shuwby Messages postés 12 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 3 juin 2010
13 avril 2010 à 10:04
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.
0
shuwby Messages postés 12 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 3 juin 2010
13 avril 2010 à 10:20
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.
0
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
J'ai réussi!!!!!!
Merci 1000fois pour ton aide et ta disponibilité!!!!
0
Rejoignez-nous