IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Déterminer un temps d'utilisation d'un fichier [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut Déterminer un temps d'utilisation d'un fichier
    Bonjour,

    Devant réaliser des QCM, j'ai décidé de les réaliser avec Excel.
    Ces QCM sont réalisés avec des boutons "Choix" regroupés par 5 dans des groupes.
    Sur une seconde feuille, j'ai les cellules liées des réponses et en fonction du choix du candidat, soit il obtient "0" ou "1". "1" étant la note pour une bonne réponse.
    une note finale sur 20 est également mise sur cette seconde feuille.

    Je désirerai à l'ouverture du document, indiquer au candidat, qu'il possède 30mn pour effectuer son test (jusque là, je sais comment faire en VBA),
    Dès que le candidat clique sur le bouton OK de cette boite de dialogue, Excel doit commençait le décompte.
    A l'issue des 30mn, Excel averti le candidat que le test est fini et lui donne sa note sur 20 (on suppose que le résultat est sur 'Feuil2!B21') et enregistre le fichier sur (C:/TEST) puis transmet ce fichier avec Outlook à un destinataire bien précis.

    Concernant l'envoi par mail, je sais faire, j'ai le code.

    J'ai besoin uniquement de connaître le code pour avertir que le test est fini, qu'il donne la note sur 20 et l'enregistre sur C:/TEST

    J'aimerai aussi que le candidat ne puisse plus rouvrir le questionnaire afin de refaire le test, mais là je crois que je rêve, meme en Vba, ça doit etre irrealisable.

    Quelqu'un pourrait-il m'aider ?

    Cordialement.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Une piste. Au lancement du test (un bouton Formulaire affecté à la macro "DepartTest"), un message est affiché prévenant que le test commence sitôt le clic sur le bouton OK, le décompte est indiqué en cellule A1 de la feuille active. Les 30 mn passées, un message informe que le test est fini et indique le résultat obtenu. Ensuite, les case à cocher
    avec des boutons "Choix"
    (je n'ai pas trop sue comment interpréter) sont cachées afin qu'il ne puisse plus y avoir de modification. Le classeur est enregistré sous.. avec le nom qu'il porte (je présume que c'est celui du candidat) puis fermé. A mettre dans un module standard et tester. Pour que ton test dure moins longtemps, tu peux réduire la valeur à l'appel de la Sub "Minuterie" sachant que 1000 représente une seconde ("GetTickCount " retourne des millisecondes) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    Declare Function GetTickCount Lib "Kernel32" () As Long
     
    Dim Finir As Boolean
     
    Sub Minuterie(Milliseconde As Long)
     
        Dim Arret As Long
     
        Arret = GetTickCount() + Milliseconde
     
        Do While GetTickCount() < Arret
     
            'décompte en A1 de la feuille active
            Range("A1").Value = Format((Arret - GetTickCount()) / 1000, "00:00:00")
            DoEvents
     
        Loop
     
    End Sub
     
    Sub Chrono()
     
        Dim S As Shape
        Dim I As Integer
     
        MsgBox "Attention, après le clic sur le bouton OK le test commence et vous avez 30 minutes pour le réaliser !"
     
        '30 minutes 1000 x 60 x 30
        Minuterie 1800000
     
        'comptage des points, ici selon ce qui est inscrit par les contrôles liés il faut adapter...
        For I = 1 To 20
     
            If Worksheets("Feuil2").Cells(I, 2).Value = True Then J = J + 1
     
        Next I
     
        'fin du test
        MsgBox "Le test est fini, vous ne pouvez plus apporter de modification !" _
               & vbCrLf & "Votre résultat est de " & J & "/20"
     
        'cache les cases à cocher
        For Each S In ActiveSheet.Shapes
            If S.FormControlType = xlCheckBox Then S.Visible = False
        Next S
     
        'enregistre sous... avec le nom du classeur qui normalement porte le nom du candidat
        ThisWorkbook.SaveAs "C:\TEST\" & ThisWorkbook.Name
     
        'et ferme le classeur
        ThisWorkbook.Close
     
    End Sub

  3. #3
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Bonjour et merci, je teste la semaine prochaine au boulot.
    Bon W.E,

    Je vous tiens au courant

  4. #4
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    J'ai voulu faire un test chez moi mais je dispose de la version 2013 en 64 bits et j'ai le msg suivant (j'ai placé le code Vba sur Feuil1) :
    Pièce jointe 189325

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'ai voulu faire un test chez moi mais je dispose de la version 2013 en 64 bits et j'ai le msg suivant (j'ai placé le code Vba sur Feuil1)
    Je ne sais pas qui à pris la décision de choisir la version 64 bits mais voici un petit lien intéressant à lire qui nous "rassure" quant à la portabilité des produits Microsoft http://arkham46.developpez.com/artic...ice/vba64bits/. Article qui t'apportera sûrement une partie de la solution.
    En tous les cas, j'ai pris la décision de rester en 32 bits et déconseille à toutes personnes qui m'en parlent de passer à la version 64 bits
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    LE P.O etait installé d'origine sur mon PC quand je l'ai acheté.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/06/2008, 11h55
  2. Réponses: 2
    Dernier message: 24/08/2007, 20h17
  3. utilisation d'un fichier log
    Par portu dans le forum Windows
    Réponses: 3
    Dernier message: 16/09/2004, 10h34
  4. [struts] utilisation de plusieurs fichiers de config
    Par Boosters dans le forum Struts 1
    Réponses: 4
    Dernier message: 25/03/2004, 10h04
  5. utiliser le même fichier dans plusieurs projets vc++6
    Par yannick_sch dans le forum MFC
    Réponses: 5
    Dernier message: 12/02/2004, 17h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo