Quizpowerpoint et vba

<gras>Bonjour,

Je souhaite faire un questionnaire (environ 100 questions) avec 4 réponses (1 bonne, 2 mauvaises et 1 je ne sais pas) sous powerpoint.
Je souhaiterais cumuler le nombre de bonne réponse, réponses mauvaises, et non répondu dans la dernière diapo "et le cumul dans un document excel (si possible)"
Je n'y connais rien en vba mais je demande qu'à apprendre.

Merci pour l'aide que vous m'apporterez.

Bon week

8 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    Votre projet m'inspire, je n'ai développé qu'une seule fois sous PP et l'idée d'apprendre un peu me plait.

    Si il n'y a pas d'urgence je peux monter le projet avec vous, vous comprendrez que je n'ai pas que ça à faire :-)

    Ceci dit, je vous recommande une petite lecture simple pour établir un vocabulaire de communication !
    Croyez moi, j'ai commencé le Basic et l'assembleur en 1982, ce texte bien que simple renferme les bases du VBA.
    http://membre.oricom.ca/lupin/Excel/Index.htm

    Démarche solutionnaire :

    7 Étapes.

    1.) Énoncé du problème

    <citation>
    Je souhaite faire un questionnaire (environ 100 questions) avec 4 réponses (1 bonne, 2 mauvaises et 1 je ne sais pas) sous powerpoint.
    Je souhaiterais cumuler le nombre de bonne réponse, réponses mauvaises, et non répondu dans la dernière diapo "et le cumul dans un document excel (si possible)"
    </citation>

    1 Questionnaire
    100 Questions
    4 Choix de Réponse
    100 Résultats {Bonne, Mauvaise, Aucune}

    Présenté sous PowerPoint
    Comptabilisé en fin de document
    Comptabilisé sous Excel

    Observations : Excel se pilote très bien de l’extérieur, exemple par le bloc-notes
    Tous les énoncés sont traitables.

    Voici quelques questions pour raffiner le devis.

    a.) Ces question, d’où viennent-elles ?
    D’un document Word ?, d’une base Access ?, saisie à la main …?
    b.) Ce questionnaire devra généré une nouvelle itération pour chaque utilisateur, alors je recommande l’utilisation du type formulaire automatisé de PowerPoint, soit un modèle [ questionnaire.pot ] , ce qui introduit la question suivante, votre but est-il de créé un questionnaire nouveau de façon périodique ou est-ce un jet unique ?
    c.) À part les liens cumulatifs entre Excel et PowerPoint, devez-vous faire cohabiter de façon simultanée l’utilisateur entre PowerPoint et Excel, ou Excel peut rester invisible à l’utilisateur ?

    donc, si vous désirez poursuivre, après réponses, les prochaines étapes sont :

    2.) La stratégie de résolution
    3.) L’encapsulation des données
    4.) L’algorithme de résolution
    5.) L’implantation
    6.) Les essais
    7.) La livraison :-)

    Cordialement

    Lupin
    1. Bonjour,

      Merci de vous interessez à mon projet.

      A) Les questions viennent de powerpoint directement.
      B) Le questionnaire est le même pour tous, et reviendra de façon périodique.
      C) L'utilisateur ne vera que powerpoint ainsi que sont total au final. Excel me servira uniquement a savoir qui a repondu quoi.

      Cordialement

      Jipedici
      1. Bonjour,

        Voilà, j'ai déjà besoin de votre aide :-)

        Dabord, un peu de lecture ( préliminaire )

        2.) Stratégie de résolution

        Deux joliciels de la suite Office, soit :

        PowerPoint ( Partie Maître )
        (VBA n’aura pas à créer le formulaire, il existe déjà, au moment de l’algorithme, il serait souhaitable de revoir la nomenclature pour bien structuré l’OOPE.

        Excel ( Partie Esclave )

        2 Options :
        a.) utiliser les objets de scripting pour piloter Excel
        b.) Charger les références des objets VBA et Excel

        Bien entendu, l’option (b) est souhaitable, mais je ne l’ai réalisé que sous Excel, mais je tenterai de transposer mon code de Excel à PowerPoint.

        Planification de l'application, une application OOPE (orientée objet/piloté par événement)

        Créer un modèle PowerPoint qui peut cumuler un questionnaire de 100 questions en cumulant les données sous PowerPoint et sous Excel. Le nombre de données étant très petit, je recommande la création d’un type personnalisé contenant toute l’information du formulaire. Philosophie cartésienne entrelacée des poupées russes. L’encapsulation des données nous fournira les propriétés de notre objet et l’algorithme les méthodes.

        3.) Encapsulation des données

        1 formulaire / 1 Questionnaire / 100 itérations / 4 choix / 1 Résultat

        Les poupées russes …

        4 Choix :
        0 = « Une bonne réponse »
        1 = « Une mauvaise reponse »
        2 = « Une autre mauvaise réponse »
        3 = « Aucune réponse »
        1 Résultat
        0 = Vrai
        1 = Faux
        2 = Inconnu

        Je pose ici le postulat suivant :
        La page 0 sera utilisé pour la (es) page(s) de présentation.
        L’itération sera traduite par les pages de 1 à 100, et l’itération 0 est la donnée vide.

        Identification des tâches

        A.1 objet de ce type devra avoir sa propre méthode d’initialisation, de lecture et d’écriture afin de protéger la(es) donnée(s).
        B.Afficher les résultats en fin de pages
        C.Cumuler les informations du formulaire
        D.Mettre fin au questionnaire

        Identification des objets

        Ici vous devez créer cette partie !!!

        Tenter de nommer tous les objets contenu sur une page PP ( une question ) !
        et de même que pour la page résumé du pointage. Il serait même souhaitable
        de normaliser les noms qui forment le diagramme TOE ( Tâches Objets Évènement ).

        J'ai commencé l'algorithme et vous reviendrez avant l'implantation, car il me faut les diagrammes TOE.

        Cordialement

        Lupin
        1. Bonjour,

          Voilà, je redépose les étapes 2, 3 et 4 car celles-ci évoluent bien entendu. Beaucoup de questions subsistent encore, mais une chose à la fois.

          2.) Stratégie de résolution

          Deux joliciels de la suite Office, soit :

          PowerPoint ( Partie Maître )
          (VBA n’aura pas à créer le formulaire, il existe déjà, au moment de l’algorithme, il serait souhaitable de revoir la nomenclature pour bien structuré l’OOPE.

          Excel ( Partie Esclave )

          2 Options :
          a.) utiliser les objets de scripting pour piloter Excel
          b.) Charger les références des objets VBA et Excel

          Bien entendu, l’option (b) est souhaitable, mais je ne l’ai réalisé que sous Excel, mais je tenterai de transposer mon code de Excel à PowerPoint.

          Planification de l'application, une application OOPE (orientée objet/piloté par événement)

          Créer un modèle PowerPoint qui peut cumuler un questionnaire de 100 questions en cumulant les données sous PowerPoint et sous Excel. Le nombre de données étant très petit, je recommande la création d’un type personnalisé contenant toute l’information du formulaire. Philosophie cartésienne entrelacée des poupées russes. L’encapsulation des données nous fournira les propriétés de notre objet et l’algorithme les méthodes.

          3.) Encapsulation des données

          1 formulaire / 1 Questionnaire / 100 itérations / 4 choix / 1 Résultat

          Les poupées russes …

          4 Choix :
          0 = « Une bonne réponse »
          1 = « Une mauvaise reponse »
          2 = « Une autre mauvaise réponse »
          3 = « Aucune réponse »
          1 réponse
          { 0 .. 3 } la bonne
          1 Résultat
          0 = Vrai
          1 = Faux
          2 = Inconnu

          Je pose ici le postulat suivant :
          La page 0 sera utilisé pour la (es) page(s) de présentation.
          L’itération sera traduite par les pages de 1 à 100, et l’itération 0 est la donnée vide.

          Identification des tâches

          A.) Un objet de ce type devra avoir sa propre méthode d’initialisation, de lecture et d’écriture afin de protéger la(es) donnée(s).
          B.) Traiter un réponse
          C.) Afficher les résultats en fin de pages
          D.) Cumuler les informations du formulaire
          E.) Mettre fin au questionnaire

          Identification des objets

          A.) Ici vous devez créer cette partie !!!

          4.) Algorithme de résolution

          Postulat #1:
          Toutes les déclarations seront précédés de 3 caractères indiquant le type de déclaration.

          Postulat #2

          Bien que le pseudo code soit fournit avec des accents de la langue française, aucun de ceux ne feront parti de code, à l’exception de l’information dynamique à l’utilisateur et l’information statique du programme ( les commentaires ).

          Les fonctions : fct
          Les routines : rts
          Les constante : cte
          Les types : tys
          Les variables : var
          etc…

          Type typQuestion
          varChoix As Integer
          varResultat As Integer
          varReponse As Integer
          End Type

          Public varBoiteQuestions(101) As typQuestion

          Fonction fctInitialisationObjet
          ‘ Fonction protégé

          Sur Erreur Continue
          Pour Chaque Itération
          ‘Initialise les données à 0
          varBoiteQuestions(varItération).varChoix = 0
          varBoiteQuestions(varItération).varResultat = 0
          varBoiteQuestions(varItération).varReponse = 0
          Fin Boucle

          Fin Fonction

          Fonction fctLecture ( varObjet_Question, varIndice ) As Boolean
          ‘ Fonction protégé

          Sur Erreur Continue
          fctLecture = Faux
          varObjet_Question.Choix = varBoiteQuestions(varIndice).varChoix
          varObjet_Question.Resultat = varBoiteQuestions(varIndice).varResultat
          fctLecture = Vrai

          Fin Fonction

          Fonction fctEcriture ( varObjet_Question,varIndice) As Boolean
          ‘ Fonction protégé

          Sur Erreur Continue
          fctÉcriture = Faux
          varBoiteQuestions(varIndice).varChoix = varObjet_Question.varChoix
          varBoiteQuestions(varIndice).varResultat = varObjet_Question.varResultat
          fctÉcriture = Vrai

          Fin Fonction

          Maintenant que l’objet principal est debout, nous allons établir l’algorithme de l’application.

          Début
            Mode Protégé
              fctInitialisation
              Mise En Place Excel En Arrière Plan ‘Avant plan en mode implantation.
                (pour permettre un enregistrement automatisé des résultats en mode utilisateur)
            Fin mode protégé
          
            GestionDesÉvènements ( Mode Utilisateur )
          
            TanQue Mode Utilisateur Activé
              Que veux l’utilisateur ?
              Choix 1
                PrésenteQuestionnaire
                  Focalise sur première question (non répondu)
                  TantQue Pas La Dernière OU QuestionEnCours <> Question0
                    Si Utilisateur joue
                      Vérifie Réponse
                      Sauvegarde du résultat
                    Sinon
                      Sélectionne Question0 pour sortir Tanque
                    Fin
                  Fin TantQue
                Fin présentation
             Choix 2
                Presente Résultats
                  Calcul Et Produits Statistiques
               Fin Résultat
            Fin TantQue
          
          Fin
          

          Voici donc le corps de l’application !

          Dans l’algorithme présenté en pseudo code, nous devons maintenant développer
          la sous partie [ fctInitialisation ].

          Fonction fctInitialisation() As Boolean
          ‘ Fonction protégé
            varObjetVBA As Variant
            varReponse As Boolean
          
            Sur Erreur Continue
            fctInitialisationObjet
            fctValidePrésenceRéférences = Faux
            Sur Erreur Continue
            Prendre Objet
            Si Erreur
              Créer Objet
              SupprimeErreur
            FinSi
            varDrapeau = Faux
            Pour Chaque Référence
              Si Référence = « Excel »
                  varDrapeau = Vrai
              Fin Si
            Fin Pour
            Si Non ( varDrapeau ) Alors
              Charge Référence
            Fin Si
            Si Non (Erreur Chargements)
              fctValidePrésenceRéférences = Vrai
            FinSi
          Fin Fonction
          


          Maintenant, développons la phase [ Mise En Place Excel En Arrière Plan ]

          Cette phase nécessite la réussite d’implantation de la phase d’initialisation,
          J’implanterai donc la première partie.

          - À Suivre .

          Cordialement

          Lupin
          1. Bonjour,

            J'ai bien réussi à charger les références d'Excel.
            J'ai toutefois rencontré un problème de taille avec le Auto_Open de PowerPoint.
            À l'aide d'un module de classe, j'ai bien réussi à activer les évènements, mais c'est
            moins évident que dans Excel.

            Il ne manque que les noms d'objets sous PowerPoint, dans le questionnaire,
            comment avez vous nommer ceux-ci ?

            Lupin
            1. Bonjour,

              Voilà, j'ai développer un modèle de base TOE de l'application OOPE.
              Tâches********************Objets*********************Évènements
              Numéroter la question....Rectangle...................Titre
              Afficher la question.....Zone de texte...............Toujours
              Afficher les réponses....Bouton d’options (4 Choix)..Sauvegarde résultats
              Question suivante !......Bouton de commande..........Suivant
              Question précédente !....Bouton de commande..........Précédent
              Début....................Bouton de commande..........Première question.
              Fin......................Bouton de commande..........Résultats
              

              ci-joint pour 10 jrs le document complet du projet en cours !
              http://membre.oricom.ca/lupin/util/ProjetQuiz.zip
              J'en suit à l'étape 4, c'est en définitive beaucoup plus long,
              mais interessant. J'en arrive à penser qu'il aurait mieux value
              de piloter PowerPoint depuis Excel plutôt qu'a l'inverse.
              Sur ce je continue le projet par intérêt :-)

              Lupin.
              1. Bonjour,

                je suis une personne très intéressé par le VBA et ses possibilités.. mais j'ai été déçu arrivé en bas de la page... il n'y a pas de suite...

                pourriez vous me dire ou je pourrais suivre le reste de votre démarche ou ce projet à fait parti des fameux 4/5 des projets a l'eau?

                merci.

                bonne soirée a vous.

                gam
                1. Bonjour,

                  J'ai complèté le projet à 95 % et la documentation à environ 50 %. Le projet fut beaucoup
                  plus long que prévue et je n'ai travaillé dessus que par période saccadé.

                  Commençant des études à temps partielle cet automne ( septembre ), il est probable que je ne
                  retravaillerai pas dessus avant un temps, à moins d'un besoin spécifique pour "jouer" ou pour
                  démontrer ce genre de faisabilité.

                  je déposerai une copie du projet à jour sous peu.

                  Lupin