[Résolu][Calc]Compte a rebours, fermeture, enregistrement
Modérateur : Vilains modOOs
Règles du forum
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
- Membre lOOyal
- Messages : 30
- Inscription : 13 nov. 2012 01:18
[Résolu][Calc]Compte a rebours, fermeture, enregistrement
Bonjour à tous,
Dans le cadre de mes fonctions dans un service ressources humaines, je voudrai réaliser un test sur tableur afin de vérifier les compétences des candidats. Je souhaite créer une dizaine d’exercices qui doivent être réalisé par les candidats.
Grâce aux différents forums, j’ai réussi à refaire une macro qui passe de feuille en feuille et donc de questions en questions (Cf : fichier ci-joint).
Désormais je souhaiterai affiché un compte à rebours pour avertir les candidats du temps qui leurs reste pour réaliser le test (test de 10 minutes). De plus, je souhaiterai que le compte à rebours se déclenche lorsque le candidat appuis sur le bouton « Démarrer le test» de la feuille 1.
J’ai trouvé un exemple de compte à rebours sur excel mais je n’arrive pas a réutiliser sur calc.
Et dernier chose que je n’arrive pas a faire il faudrait que le fichier s’enregistre automatiquement et se ferme au bout des 10 minutes pour laisser le même temps à chaque candidat.
Je ne sais pas si l’ensemble de ces actions sont possibles, mais je vous remercie par avance pour votre aide
Dans le cadre de mes fonctions dans un service ressources humaines, je voudrai réaliser un test sur tableur afin de vérifier les compétences des candidats. Je souhaite créer une dizaine d’exercices qui doivent être réalisé par les candidats.
Grâce aux différents forums, j’ai réussi à refaire une macro qui passe de feuille en feuille et donc de questions en questions (Cf : fichier ci-joint).
Désormais je souhaiterai affiché un compte à rebours pour avertir les candidats du temps qui leurs reste pour réaliser le test (test de 10 minutes). De plus, je souhaiterai que le compte à rebours se déclenche lorsque le candidat appuis sur le bouton « Démarrer le test» de la feuille 1.
J’ai trouvé un exemple de compte à rebours sur excel mais je n’arrive pas a réutiliser sur calc.
Et dernier chose que je n’arrive pas a faire il faudrait que le fichier s’enregistre automatiquement et se ferme au bout des 10 minutes pour laisser le même temps à chaque candidat.
Je ne sais pas si l’ensemble de ces actions sont possibles, mais je vous remercie par avance pour votre aide
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par micmac le 06 nov. 2017 09:22, modifié 5 fois.
Raison : Déverouillage du sujet et suppression de la balise [Résolu] suite à demande de ll’intéressé pour complément de question+Balisage
Raison : Déverouillage du sujet et suppression de la balise [Résolu] suite à demande de ll’intéressé pour complément de question+Balisage
Libre office 5.0 sous Windows 10 - Obligation de version - (manque de maintenance informatique de mon employeur).
-
- MOOdérateur
- Messages : 182
- Inscription : 22 févr. 2016 23:49
Re: Compte a rebours, fermeture, enregistrement via un bouto
Bonjour et bienvenue,
Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide. C'est indiqué dans le cadre rouge en haut de la page.
Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche. Avez-vous remarqué comment étaient les autres questions postées ?
Lisez ce fil pour savoir quelle balise utiliser : http://user.services.openoffice.org/fr/ ... html#27295
N'oubliez pas que le terme "Macro" ou "OpenOffice" ne doit pas être employé car il est implicite. Essayer de synthétiser au mieux ce que vous cherchez à faire.
Un titre accrocheur vous permettra d'une part d'être aidé plus rapidement et d'autre part, d'enrichir notre base de connaissances.
Nous l'avons fait pour vous cette fois-ci mais lors de votre prochaine question, nous vous remercions de le faire vous-même sous peine de voir votre sujet verrouillé.
Merci de votre collaboration.
Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide. C'est indiqué dans le cadre rouge en haut de la page.
Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche. Avez-vous remarqué comment étaient les autres questions postées ?
Lisez ce fil pour savoir quelle balise utiliser : http://user.services.openoffice.org/fr/ ... html#27295
N'oubliez pas que le terme "Macro" ou "OpenOffice" ne doit pas être employé car il est implicite. Essayer de synthétiser au mieux ce que vous cherchez à faire.
Un titre accrocheur vous permettra d'une part d'être aidé plus rapidement et d'autre part, d'enrichir notre base de connaissances.
Nous l'avons fait pour vous cette fois-ci mais lors de votre prochaine question, nous vous remercions de le faire vous-même sous peine de voir votre sujet verrouillé.
Merci de votre collaboration.
-
- GourOOu
- Messages : 5622
- Inscription : 25 nov. 2011 18:07
- Localisation : Guyane
Re: [Calc]Compte a rebours, fermeture, enregistrement
Bonjour
A testerA+
A tester
Code : Tout sélectionner
Global NumFeuille as Integer
Global heureFin
Global Decompte
Sub Chrono
Dim oDoc as Object, Heure, Calcul
oDoc = thisComponent
heureFin = DateAdd("n",10,Time)
Do While time < heurefin
Heure = time
Calcul = TimeValue(str(heurefin)) - TimeValue(str(time))
Decompte = trim(Str(Hour(Calcul))) & ":" & trim(Str(Minute(Calcul))) & ":" & trim(Str(Second(Calcul)))
If NumFeuille > 0 Then
oDoc.Sheets(numFeuille).getCellRangeByName("A1").String = Decompte
oDoc.Sheets(numFeuille - 1).getCellRangeByName("A1").String = ""
End If
Loop
oDoc.Sheets(0).isVisible = True
oDoc.CurrentController.ActiveSheet.isVisible = False
oDoc.Store
oDoc.Close(True)
End Sub
Sub AffichageFeuille
Dim oDoc as Object, maFeuille as Object
oDoc = thisComponent
maFeuille = oDoc.CurrentController.ActiveSheet
If numFeuille = 0 Then heureFin = DateAdd("n",10,Time)
If numFeuille = 10 Then
NumFeuille = 0
oDoc.Sheets(numFeuille).isVisible = True
maFeuille.isVisible = False
HeureFin = time
Else
NumFeuille = numFeuille + 1
oDoc.Sheets(numFeuille).isVisible = True
maFeuille.isVisible = False
End If
End Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
-
- PassiOOnné
- Messages : 626
- Inscription : 09 août 2017 22:15
Re: [Calc]Compte a rebours, fermeture, enregistrement
hello,
attention Piaf ta routine Chrono qui se lance à l'ouverture du document est une "grignoteuse" de cpu : Comme on peut le voir soffice utilise 25% de temps cpu et c'est parce que j'ai un processeur QuadCore. Avec un processeur monocore cela pourrait atteindre 100 %.
Tout cela à cause de la boucle Do While qui ne laisse pas respirer le cpu.
Une utilisation d'un timer ou de multithread (en python) serait sans doute moins "cpuvore".
Ami calmant, J.P
attention Piaf ta routine Chrono qui se lance à l'ouverture du document est une "grignoteuse" de cpu : Comme on peut le voir soffice utilise 25% de temps cpu et c'est parce que j'ai un processeur QuadCore. Avec un processeur monocore cela pourrait atteindre 100 %.
Tout cela à cause de la boucle Do While qui ne laisse pas respirer le cpu.
Une utilisation d'un timer ou de multithread (en python) serait sans doute moins "cpuvore".
Ami calmant, J.P
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
-
- GourOOu
- Messages : 5622
- Inscription : 25 nov. 2011 18:07
- Localisation : Guyane
Re: [Calc]Compte a rebours, fermeture, enregistrement
Bonjour
Une autre approche beaucoup moins gourmande à tester à partir d'un modèle de document.A+
Effectivement grignoteuse est un euphémismeJurassic Pork a écrit :attention Piaf ta routine Chrono qui se lance à l'ouverture du document est une "grignoteuse" de cpu
Une autre approche beaucoup moins gourmande à tester à partir d'un modèle de document.
Code : Tout sélectionner
Global NumFeuille as Integer
Global mns as Integer, secs as Integer, x as Integer
Sub Temps
Dim oDoc as Object, maFeuille as Object, maPage as Object, ctrl as Object
Dim sDate As String, i as Integer, n as Integer, Adresse as String
oDoc = thisComponent
For x = secs To 0 step -1
secs = x
Wait 1000
sDate = TimeSerial(0,mns,secs)
If NumFeuille > 0 Then
oDoc.Sheets(numFeuille).getCellRangeByName("A1").String = sdate
End If
Next x
If mns = 0 And secs = 0 Then
For i = 0 To oDoc.Sheets.Count - 1
maFeuille = oDoc.Sheets(i)
maFeuille.isVisible = True
maPage = maFeuille.DrawPage
For n = 0 To maPage.Count - 1
ctrl = maPage(n)
If ctrl.supportsService("com.sun.star.drawing.ControlShape") Then
If ctrl.Control.ServiceName = "stardiv.one.form.component.CommandButton" Then
maPage.remove(ctrl)
Exit For
End If
End If
Next n
Next i
oDoc.BasicLibraries.removeLibrary("Standard")
Adresse = convertToURL(CurDir & GetPathSeparator() & oDoc.Sheets(0).getCellRangeByName("A1").String)
oDoc.storeAsURL(Adresse, Array())
oDoc.Close(True)
Stop
End If
secs = 59
mns = mns - 1
temps
End Sub
Sub AffichageFeuille
Dim oDoc as Object, maFeuille as Object
oDoc = thisComponent
maFeuille = oDoc.CurrentController.ActiveSheet
Select Case numFeuille
Case 0
If oDoc.Sheets(numFeuille).getCellRangeByName("A1").String = "" Then
MsgBox("Vous devez sélectionner votre nom avant de pouvoir commencer le test")
oDoc.CurrentController.Select(oDoc.Sheets(numFeuille).getCellRangeByName("A1"))
Exit Sub
Else
NumFeuille = numFeuille + 1
oDoc.Sheets(numFeuille).isVisible = True
maFeuille.isVisible = False
mns = 9 : secs = 59
temps
End If
Case 10
NumFeuille = 0
oDoc.Sheets(numFeuille).isVisible = True
maFeuille.isVisible = False
mns = 0 : secs = 2 : x = 2
Case Else
NumFeuille = numFeuille + 1
oDoc.Sheets(numFeuille).isVisible = True
maFeuille.isVisible = False
End select
End Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
-
- Membre lOOyal
- Messages : 30
- Inscription : 13 nov. 2012 01:18
Re: [Calc]Compte a rebours, fermeture, enregistrement
Super votre réactivité !!! Merci d’avoir amélioré le fichier c’est beaucoup plus rapide.
Cependant, si je peux me permettre encore de demander encore quelques améliorations svp :
- Lorsque j’ouvre le fichier, il s’ouvresans nom et le candidat devra l’enregistrer de lui-même.
Or je souhaiterais préalablement nommer et enregistrer le fichier sur un espace commun pour qu’il s’ouvre avec le même nom et au même emplacement.
- Le fait d’inscrire au préalable son nom est une très bonne idée. De plus, j’aimerais que la saisie soit libre et ne dépende pas d’un menu déroulant. Cependant, lorsque j’ai finis le test, ça me renvoi à la première feuille et ça m’indique un message d’erreur à la fin sur le bouton fin du test, disant que le nom n’existe pas.
- Dernière chose j’ai essayé de rajouter des feuilles pour faires 20 questions, mais du coup les boutons ne fonctionne que sur les 10 premières questions, que faut-il changer?
Bonne soirée et merci encore,
C’est la deuxième fois que tu me sauve la vie professionnellement Piaf.
MERCI
Cependant, si je peux me permettre encore de demander encore quelques améliorations svp :
- Lorsque j’ouvre le fichier, il s’ouvresans nom et le candidat devra l’enregistrer de lui-même.
Or je souhaiterais préalablement nommer et enregistrer le fichier sur un espace commun pour qu’il s’ouvre avec le même nom et au même emplacement.
- Le fait d’inscrire au préalable son nom est une très bonne idée. De plus, j’aimerais que la saisie soit libre et ne dépende pas d’un menu déroulant. Cependant, lorsque j’ai finis le test, ça me renvoi à la première feuille et ça m’indique un message d’erreur à la fin sur le bouton fin du test, disant que le nom n’existe pas.
- Dernière chose j’ai essayé de rajouter des feuilles pour faires 20 questions, mais du coup les boutons ne fonctionne que sur les 10 premières questions, que faut-il changer?
Bonne soirée et merci encore,
C’est la deuxième fois que tu me sauve la vie professionnellement Piaf.
MERCI
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre office 5.0 sous Windows 10 - Obligation de version - (manque de maintenance informatique de mon employeur).
-
- GourOOu
- Messages : 5622
- Inscription : 25 nov. 2011 18:07
- Localisation : Guyane
Re: [Calc]Compte a rebours, fermeture, enregistrement
Bonsoir
Après pour l'emplacement, il faut remplacer CurDir par le chemin de l'emplacement voulu.
Pour l'erreur je ne reproduis pas donc ... donne exactement le message d'erreur envoyé.
Tu avais une feuille 22 et une 23 dans ton fichier, je les ai supprimé. Le bouton devrait fonctionner jusqu'à la question 20.
A tester, mais comme il ne s'agit plus d'un modèle, fais les tests sur des copies.
A la fin du test, avant l'enregistrement, les feuilles sont affichées, les boutons de commande et le code supprimés,
A+
Non à priori l'enregistrement est automatique avec le nom du candidat.Nouzon a écrit :il s’ouvre sans nom et le candidat devra l’enregistrer de lui-même
Après pour l'emplacement, il faut remplacer CurDir par le chemin de l'emplacement voulu.
J'ai supprimé la liste de validitéNouzon a écrit :De plus, j’aimerais que la saisie soit libre et ne dépende pas d’un menu déroulant
Pour l'erreur je ne reproduis pas donc ... donne exactement le message d'erreur envoyé.
Tu avais une feuille 22 et une 23 dans ton fichier, je les ai supprimé. Le bouton devrait fonctionner jusqu'à la question 20.
A tester, mais comme il ne s'agit plus d'un modèle, fais les tests sur des copies.
A la fin du test, avant l'enregistrement, les feuilles sont affichées, les boutons de commande et le code supprimés,
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
-
- Membre lOOyal
- Messages : 30
- Inscription : 13 nov. 2012 01:18
Re: [Calc]Compte a rebours, fermeture, enregistrement
Impeccable y a redire c'est parfait !
Encore merci et bonne journée
Encore merci et bonne journée
Libre office 5.0 sous Windows 10 - Obligation de version - (manque de maintenance informatique de mon employeur).
-
- Membre lOOyal
- Messages : 30
- Inscription : 13 nov. 2012 01:18
Re: [Résolu][Calc]Compte a rebours, fermeture, enregistremen
Bonjour à tous,
Je reviens vers vous, car j’ai ajouté une feuille supplémentaire afin de calculer les résultats au test.
Lorsque j’ai ajouté la feuille « Résultats » en tant que dernière feuille le fichier ne s’arrête plus en cliquant sur le bouton « Fin du test ».
Du coup, j’ai mis la feuille en première position, seule hic en cliquant sur le bouton « Fin du test », le fichier se fermer sur le résultat, or, je ne souhaite pas que le résultat soit vu par les candidats.
J’ai réussi en changeant la macro a ce niveau en modifiant par case 1:
Seulement maintenant j’ai quelques petits soucis que j ‘aimerai effacer.
Lorsque l’on clique sur le bouton « Fin du test » le test revient sur la feuille « Démarrer », je souhaiterai que le test reste sur la dernière feuille a la fermeture et sans afficher les autres feuilles.
Car sur certain PC, mais pas toujours certaine feuille ne s’affiche automatiquement.
De plus, lorsque je vais dans Format => feuille => afficher, le « afficher » reste grisé et il est compliqué d’aller sur la feuille « Résultats » pour faire une impression.
J’ai réussi en me servant d’afficher la feuille précédente.
Enfin, juste avant de commencer son épreuve le candidat doit remplir son nom, nom marital et son penon qui s’inscrit via une simple formules dans la feuille « Résultats »
Lorsque le test se termine au bout des 10 minutes ou en cliquant sur le bouton « Fin du test », il n’y a que le nom qui reste dans la feuille « Résultats », le prénom et nom marital ne s’affiche plus.
Merci par avance pour le temps que vous me consacrer et particulièrement à Piaf.
Je reviens vers vous, car j’ai ajouté une feuille supplémentaire afin de calculer les résultats au test.
Lorsque j’ai ajouté la feuille « Résultats » en tant que dernière feuille le fichier ne s’arrête plus en cliquant sur le bouton « Fin du test ».
Du coup, j’ai mis la feuille en première position, seule hic en cliquant sur le bouton « Fin du test », le fichier se fermer sur le résultat, or, je ne souhaite pas que le résultat soit vu par les candidats.
J’ai réussi en changeant la macro a ce niveau en modifiant par case 1:
La modération vous a écrit: mise du code entre balise "code" merci de le faire par vous même
Code : Tout sélectionner
Sub AffichageFeuille
Dim oDoc as Object, maFeuille as Object
oDoc = thisComponent
maFeuille = oDoc.CurrentController.ActiveSheet
Select Case numFeuille
Case 1
If oDoc.Sheets(numFeuille).getCellRangeByName("C17").String = "" Then
MsgBox("Vous devez taper votre nom et prénom avant de pouvoir commencer le test")
oDoc.CurrentController.Select(oDoc.Sheets(numFeuille).getCellRangeByName("C17"))
Exit Sub
Seulement maintenant j’ai quelques petits soucis que j ‘aimerai effacer.
Lorsque l’on clique sur le bouton « Fin du test » le test revient sur la feuille « Démarrer », je souhaiterai que le test reste sur la dernière feuille a la fermeture et sans afficher les autres feuilles.
Car sur certain PC, mais pas toujours certaine feuille ne s’affiche automatiquement.
De plus, lorsque je vais dans Format => feuille => afficher, le « afficher » reste grisé et il est compliqué d’aller sur la feuille « Résultats » pour faire une impression.
J’ai réussi en me servant d’afficher la feuille précédente.
Enfin, juste avant de commencer son épreuve le candidat doit remplir son nom, nom marital et son penon qui s’inscrit via une simple formules dans la feuille « Résultats »
Lorsque le test se termine au bout des 10 minutes ou en cliquant sur le bouton « Fin du test », il n’y a que le nom qui reste dans la feuille « Résultats », le prénom et nom marital ne s’affiche plus.
Merci par avance pour le temps que vous me consacrer et particulièrement à Piaf.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Phantéd le 07 nov. 2017 15:05, modifié 1 fois.
Raison : code entre balise
Raison : code entre balise
Libre office 5.0 sous Windows 10 - Obligation de version - (manque de maintenance informatique de mon employeur).
-
- MOOdérateur
- Messages : 50
- Inscription : 09 oct. 2017 14:05
Re: [Résolu][Calc]Compte a rebours, fermeture, enregistremen
Bonjour.
Résolu le 23 Août 2017.
Nous nous devons de verrouiller ce fil de discussion.
Autre question = autre fil.
Merci de votre collaboration.
Résolu le 23 Août 2017.
Nous nous devons de verrouiller ce fil de discussion.
Autre question = autre fil.
Merci de votre collaboration.