shuwby
Messages postés12Date d'inscriptionjeudi 1 avril 2010StatutMembreDernière intervention 3 juin 2010
-
1 avril 2010 à 17:15
shuwby
Messages postés12Date d'inscriptionjeudi 1 avril 2010StatutMembreDerniè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...
cs_loulou69
Messages postés672Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention 2 juin 20161 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 .
cs_loulou69
Messages postés672Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention 2 juin 20161 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
shuwby
Messages postés12Date d'inscriptionjeudi 1 avril 2010StatutMembreDerniè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
Vous n’avez pas trouvé la réponse que vous recherchez ?
shuwby
Messages postés12Date d'inscriptionjeudi 1 avril 2010StatutMembreDerniè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...
shuwby
Messages postés12Date d'inscriptionjeudi 1 avril 2010StatutMembreDerniè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...
shuwby
Messages postés12Date d'inscriptionjeudi 1 avril 2010StatutMembreDerniè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.
shuwby
Messages postés12Date d'inscriptionjeudi 1 avril 2010StatutMembreDerniè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.