Une macro VBA qui crée à partir d'un tableau Excel,
un questionnaire QCM publié en html/ASP,
avec consolidation des réponses sous Access


Le Web et les réseaux intranet sont de précieux outils pour réaliser rapidement des sondages basés sur la publication de questionnaires html.
La réalisation d'un questionnaire du genre QCM est très facile en html, l'utilisation de formulaires offrant diverses possibilités :
La balise <FORM> définit le formulaire,
Les balises de la famille <INPUT> permettent de créer des zones de saisie de texte, des boutons à choix multiples.
On peut aussi utiliser les balises <TEXTAREA> pour créer des zones de saisie plus grandes, ou les balises <SELECT> et <OPTION> pour créer des listes déroulantes.

Après avoir créé le questionnaire, reste encore à récupérer les réponses et à les exploiter.
Enfin, il est souvent nécessaire de prévoir une protection par mot de passe afin d'éviter qu'un utilisateur remplisse deux formuilaires ou bien pour permettre aux utilisateurs de modifier leurs réponses.
Et puis, la mise en forme du formulaire peut être longue et laborieuse si le nombre de questions est très grand.

L'utilisation simultanée de plusieurs logiciels et plusieurs langages permet de résoudre la plupart de ces problèmes :
- le HTML sert bien sûr à la création du formulaire,
- l'ASP permet au serveur de récupérer les données transmises par l'utilisateur
- une base Access peut être utilisée pour stocker ces données,
- le SQL peut faciliter la discussion entre ASP et la base Access,
- et enfin, on peut demander à VBA de générer les différentes pages html et ASP à partir d'un tableau Excel contenant les différentes questions du formulaire.

Le fichier Excel proposé au téléchargement contient un tableau dans lequel peuvent être saisies les questions, et une macro qui va en quelques secondes générer
- le formulaire html,
- une page ASP servant à l'identification de l'utilisateur,
- une page ASP servant au traitement du formulaire (envoi des réponses vers la base Access)
- et une page ASP servant à l'analyse des résultats du sondage (à partir de la base Access).

Le fichier Access contient deux tables :
- la Table 1 sert à recueillir les réponses aux différentes questions (une colonne par question, un enregistrement par utilisateur)
- la Table 2 sert à stocker les mots de passe (utilisés pour éviter qu'un même utilisateur saisisse deux formulaires).

En pratique, il suffit donc de
- télécharger les fichiers Excel et Access (zip) en cliquant ici.
- créer un répertoire "formulaire" sur le serveur
- y placer les deux fichiers
- saisir la liste des questions du fichier Excel (en précisant le type de question et les réponses possibles)
- indiquer dans la page "paramètres" du fichier Excel l'adresse du serveur
- renseigner la liste de mots de passe de la table 2 du fichier Access, et ajouter des colonnes à la table 2 si nécessaire
- puis de lancer la macro VBA à partir du fichier Excel.

En quelques secondes, tous les fichiers nécessaires au fonctionnement du questionnaire sont créés dans le répertoire "formulaire".
Les utilisateurs accèdent au questionnaire par le fichier formulaire/index.html.
Les résultats du sondage sont présentés dans une page html accessible via le fichier formulaire/analyse.html.

Dernier point, afin de ne pas enregistrer des textes trop longs dans la base Access, les réponses aux questions "ouvertes" (réponses dans une zone de texte) sont stockées dans des fichiers texte (un par question ouverte).

Cliquez ici pour télécharger les fichiers Excel et Access (zip 45 ko)
Attention,
- le logiciel ne peut fonctionner que sur un serveur supportant l'ASP.
- si votre questionnaire est très long, assurez-vous que le timeout du serveur est assez long (sinon, les variables de session risquent d'être perdues en route). Deux autres solutions, modifier le script pour inscrire "en dur" dans la page asp les variables (et non en variable de session) ou bien modifier momentanément le timeout avec Server.ScriptTimeout.