Activer et masquer une feuille après un décompte

Bonjour à tous,

Je crée ce topic en espérant que quelqu'un aura le temps et la bonté de m'aider s'il vous plait.

Description du problème :

Je suis débutant en VBA et j'aimerais - pour m'exercer - créer un test Excel avec un temps imparti sur chaque feuille pour répondre au test. Le problème étant que je suis bloqué au début de la programmation car j'ai un message d'erreur lorsque le décompte des 10 secondes passe : "Impossible d'executer la macro [... chemin de la macro & du fichier ...]. Il est possible qu'elle ne soit pas enregistrée dans ce classeur ou que toutes les macros soient désactivées"

Description du programme :

  • A chaque fois que 10 secondes passent, la feuille active doit se masquer et être protégée (bien-sûr les autres feuilles sont masquées à ce moment-là)
  • Ensuite cela active la feuille suivante (dans l'ordre) puis ainsi de suite jusqu'à arriver sur la dernière feuille où on indique son mail pour que le fichier soit envoyer à cette adresse (je crois que c'est possible ?)

Voici le début de code du programme en question :

Sub Tempsimparti()

End Sub

Bonsoir ElGeeko,

Il vaudrait mieux garder l'ensemble des feuilles.

Par contre cacher la colonne ou les colonnes de réponses et de questions. Exemple:

Dans la feuille Test1, la colonne E reçoit les réponses et la colonne F présente les questions sur la même ligne.

En cellule A1 est inscrit le nom de la feuille de test suivante, soit Test2. Et ainsi de suite...jusqu'à la feuille finale (Test9 par ex:)

Il sera toujours possible de revenir sur les feuilles précédentes mais impossible de se positionner sur les colonnes cachées.

Enfin la dernière feuille de test aura dans sa cellule A1 le nom de la feuille Résultat. Sur celle-ci il peut y avoir des stats sur le nombre de réponses fait sur chaque feuille et le temps passé.

Sub MaskCol()
ActiveSheet.Columns("E:F").Hidden = True
Nom=Range("A1")
Sheets(Nom).select
End sub

Note aussi que ta macro est activé pour un décompte de 10 secondes. C'est assez rapide. Ensuite ne pas l'appeler MasqueFeuil1.

Car elle ne doit pas seulement gérer le passage de la feuille 1 à la feuille 2.

Bons tests, bonne continuation.

Bonjour X Cellus ,

Tout d'abord merci beaucoup à vous d'avoir pris le temps de répondre !

J'ai testé votre méthode, malheureusement je rencontre toujours les même problèmes :

  • le message d'erreur (j'ai joint la capture d'écran (ne pas faire attention au trait noir))
  • et le décompte de 10 secondes n'est plus pris en compte, la feuille 2 "Test2" s'active instantanément.

Edit : concernant les colonnes masquées, existe-t-il un moyen de les verrouiller (au cas où un petit malin voudrait les afficher) ?

capture capture code vba

Bonjour ElGeeko,

Regarde la dernière ligne de la macro temps imparti.

Tu as Worksheet("test2"). Activate

Donc normal que tu y vas directement.

Supprime cette ligne.

Application. Ontime n'est pas un temporisateur pour la macro en cours d'exécution. C'est un lancement à retardement pour une autre macro.

Par exemple si tu régles l'alarme de ton portable pour un réveil à 7 heures le matin. Donc Effet Temporisateur.

Tu peut surfer sur Excel-Pratique juste après même tard dans la nuit. Et jusqu'à 6h59mn59s avant que ton alarme se déclanche.

En plus il vaut mieux pour une dizaine de secondes utiliser Timer (voir aide Excel) plutôt que Ontime.

Je vais te donner un exemple dans la journée.

Bonsoir ElGeeko,

En retour un fichier exemple pour ton besoin. Voir notes un fois le test n° 1 passé (simple). Surtout en 10 secondes.

Par contre ce délai peut être variable selon le nombre de questions sur les feuilles de tests.

Voir aussi les différentes macros sur la feuille Test1, le module 1.

Bons tests, bonne continuation.

7testelgeeko.xlsm (92.10 Ko)

Bonsoir,

Merci beaucoup pour votre aide, pour le moment cela marche très bien !

Je vais essayer de personnaliser encore plus ce fichier "Test" en ajoutant du code pour m'entraîner.

Merci encore pour avoir pris le temps de m'aider !

Rechercher des sujets similaires à "activer masquer feuille decompte"