# Dotnet > Gnral Dotnet > Dveloppement Office System > InfoPath >  Lier Excel et Infopath

## zamoht

Bonjour  tous et  toutes, 

Je travaille pour quelqu'un qui fait des valuations annuellement: Il pose des tas de questions  250 personnes sous forme de choix multiples, de notations de 1  4, et aussi de questions ouvertes.
Tout a se fait  l'oral, et lui ensuite, rcupre ses donnes, et passe une mauvaise semaine lorsqu'il doit tout rentrer dans un tableau Excel, videmment en se trompant de lignes une fois sur quatre.

Pour cela, vu que la bote possde infopath(2007), je me suis propos de l'aider  mettre en place un systme plus simple,  savoir de remplir soit en direct pendant les entretiens, soit aprs mais de manire plus reposante que ses cases d'Excel, des jolis formulaires infopath bass sur ceux qu'il utilise dj.

*Donc je cherche  faire la chose suivante:*

Pouvoir remplir des questionnaires les uns aprs les autres en cliquant  la fin sur Submit (ou envoyer, ou soumettre, ou suivant, comme vous prfrez!), et implmenter des lignes d'un tableau Excel en direct, avec les lignes et les colonnes qui vont bien.

Quelqu'un parmi vous saurait-il comment aborder le problme?

Je vous remercie de m'avoir lu jusqu'ici, 

bien cordialement,

----------


## billout rm

Bonjour,
Alors personnellement je crerai un modle de formulaire Infopath avec toutes les donnes ncessaires ( voir dans excel) en mtadonnes.

Ensuite une fois les formulaires enregistrs sur le SharePoint, il suffirait de faire Action/Ouvrir dans une feuille de donnes" sur la bibliothque.
Et je copierai tout a manuellement dans un fichier excel...

Aprs ce n'est pas du direct live...

Pour avoir du temps rel, il y a deux solutions:
 - Un eventhandler qui  chaque nouveau formulaire va rajouter une ligne dans le fichier excel.
 - Un code personnalis lors du submit du formulaire qui va crer une ligne dans le fichier excel.


A voir selon tes connaissances. En tout cas attention lors de la modification du formulaire, il faudra de mme modifier le fichier excel...

Alors que la solution propose plus haut ne ncessite pas puisque c'est un point de la situation  un moment X.


Cordialement.

----------


## zamoht

Merci beaucoup pour cette rponse rapide, 

Les structures du fichier excel, et du formulaire tant fixes, les modifications ne sont pas un problme.

Ma problmatique est vraiment de faire du temps rel. Par ailleurs, vu que ma base de donnes est trs simple (nom, prnom, caractristiques), je souhaite ne pas passer par Access. Par ailleurs, je souhaite travailler sur un seul poste de travail, et donc ne pas passer par un serveur.

En somme, je ne fais que faciliter la saisi de donnes, et pour cela, j'ai besoin d'utiliser Infopath en entre pour une grande libert de mise en forme des formulaires, et de n'avoir qu'Excel en sortie pour analyser mes rsultats.

Pourrais-je obtenir un tel rsultat avec un eventhandler?

Bien cordialement,

----------


## billout rm

Bonjour,

Alors si tu es seul  utiliser cette plate-forme, je te conseille de faire l'insertion dans ton excel dans le code de ton submit.

Si tu sais un peu coder un C# ou VB.Net, tu y arriveras sans problme.

Il est vrai que tu aurais pu te servir de Excel qui toute compte fait t'aurais prsent les donnes  la manire d'Excel...


Tu as aussi ce tuto qui peut je le penses te donner des ides:
http://weblogs.asp.net/wkriebel/arch...readsheet.aspx


Cordialement.

----------


## zamoht

> Alors si tu es seul  utiliser cette plate-forme, je te conseille de faire l'insertion dans ton excel dans le code de ton submit. 
> Si tu sais un peu coder un C# ou VB.Net, tu y arriveras sans problme.


Merci pour le conseil, mais pourrais-tu m'aiguiller d'avantage? 

Sinon, penses-tu qu ce serait plus facile de passer d'abord par access?

----------


## billout rm

Franchement le lien que je t'ai fil sur le post prcdent est super.
Tu poses un lien hypertexte sur ta page ou ou tu veux d'ailleurs, et ds que les gens cliqueront sur ce lien, ils auront les information en temps rel.

Meilleure solution avec 0 dveloppement... Profites-en, c'est rare en informatique!

Si tu ne veux vraiment pas utiliser cette mthode et que tu travailles avec le client lourd (sans InfoPath form services), je te conseilles la version Access. Infopath 2007 se pluggue trs bien avec Access 2007.
Aprs  toi de voir si tu es plus  l'aise  insrer dans Access ou si tu prfres faire un bout de code qui t'insres directement sur Excel.
Mais bon gnralement, on garde tjs une trace dans la base de donnes au cas ou le fichier partag disparaisse mystrieusement...

Cordialement.

----------


## zamoht

Merci, je vais tenter la version programmation, 
par ailleurs, je me suis dj lanc dans la programmation Access, mais systmatiquement, je me tape un problme d'envoi des donnes du formulaire.
Je crois avoir suivi tous les tutos de la Terre, mais peut-tre qu'il y a une chose lementaire que je fais mal au niveau de la BDD.

Des ides?

----------


## billout rm

Bonjour,
Ben  priori si tu as tout suivi, je ne vais pas pouvoir t'adier plus.
Attention toute fois  mettre le niveau de scurit  autorisation totale.

Tu as une copie d'cran de ton erreur sinon?

Cordialement.

----------


## zamoht

Avant de t'envoyer les captures, pourrais-tu me dire comment on met les autorisations sur total?

----------


## billout rm

Bonjour,

Aller dans Outils/Option du formulaire.
Puis dans l'onglet "Scurit", cocher Autorisation Totale...

Cordialement.

----------


## zamoht

Bonjour, 

et pardon pour cette prcdente question stupide, mais  tre embourb dans les problmes, on passe  ct des choses simples. 

Donc en effet, une fois la manip faite, a marche: notre formulaire est connect  la base de donn.

Cependant, mettons que j'ai une BDD simple genre (Id,Champ1),
Je mets tous les champs, puis j'essaie mon formulaire, et l, il rcupre des donnes de la base et les affiche, au lieu comme je le souhaiterais de rajouter des donnes dans la base. 

Comment faire?

----------


## billout rm

Bonjour,

Et pourtant en cliquant sur le bouton submit, il devrait insrer une nouvelle ligne...

Il faudrait voir un tuto de fonctionnement avec SQL Server.
Le principe de fonctionnement est le mme sur Access.
Il doit juste s'agir de la mauvaise requte qui est effectie.

Cordialement.

----------


## zamoht

Oui en effet, ma requte tait mauvaise, parce que la bonne commande n'est pas enregistrer (cela appelle les donnes de la base), mais envoyer (c'est bte, mais c'est comme a).

Donc aprs avoir t au bord du gouffre, j'ai fait un grand pas en avant!

En revanche, j'ai un dernier problme, de taille celui-ci, c'est que lorsque je manipule mon formulaire en mode "aperu", tout va bien , il alimente ma BDD, c'est cool.

En revanche, lorsque j'enregistre, et quitte pour ouvrir un formulaire vierge, je me tape systmatiquement le mme message d'erreur: 

"Infopath ne peut pas crer un nouveau formulaire vierge.
Infopath ne peut pas ouvrir ce formulaire. Pour rsoudre ce problme, contactez votre administrateur systme."

C'est grave docteur?

----------


## billout rm

Alors comme a  distance, c'est pas facile comme question, je sches un peu... Gnralement il y a un paquet de cause qui peuvent amener au rsultat suivant.

Tout d'abord, publier le formulaire (au lieu de l'enregistrer) et vrifier en double-cliquant sur le formulaire fraichement publi si le mme problme apparait...

Ensuite, si cela ne marche pas, faire une copie du template existant puis supprimer la connexion de donnes  la base.
Enregistrer puis essayer d'ouvrir le formulaire...

Dj cela donnera deux bonne indiquations sur le pourquoi du comment!

Cordialement.

----------


## zamoht

En effet, 

Le publier, dans un autre dossier est la solution qui marche pour ma part, 
donc le problme, en gros, est rsolu.

Sauf si je m'attelle au code pour la publication vers Excel.

Ca je ne sais pas encore faire, d'autant que c'est du VSTA.

Bref, merci beaucoup.

----------


## billout rm

Pour a, je penses que ce n'est pas la peine de rinventer la roue...

Soit tu fais un export de ta base en excel  chaque fois que tu insres ou update un formulaire (a voir en fonction de ton nombre de ligne),
Soit tu peux utiliser les 100aines de code qui sont disponibles sur la toile pour insrer dans un fichier excel directement.

Bonne chance.
Cordialement.

----------

