[Résolu] [Calc] Insérer l'heure dans la celulle active.

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: 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 !
los_tintinos
Membre lOOyal
Membre lOOyal
Messages : 42
Inscription : 13 mai 2015 22:15

[Résolu] [Calc] Insérer l'heure dans la celulle active.

Message par los_tintinos »

Bonjour à tous,
J'ai un soucis de connaissance pour créer une macro qui me serait très utile. J'essaie de me mettre à la programmation en basic histoire de ne pas toujours venir ici prendre mais aussi pouvoir donner. Mais dans l'ensemble c'est pas bien simple. Pourtant taper du code ne me fait pas peur (linuxien inside) mais j'avoue que ne trouve pas de tutoriel (ou du moins un lexique) BASIC que je trouve explicite (mais bon ceci est un autre problème)

Donc mon soucis est le suivant :
Prof d'EPS je cherche à gérer les départs et arrivées de mes élèves en course d'orientation histoire de savoir où ils sont et quand. Dans le métier on appel ça un KIFéKOI. Jusqu'ici je faisait avec mon papier et mon stylo mais comme le bahut nous a fourni un belle tablette j'aimerais faire numériquement. ;-)

Maîtrisant bien calc dans l'ensemble j'ai déjà fait un Kifékoi qui fonctionne plutôt bien. MAIS sur tablette (avec AndropenOffice) ce n'est pratique. Il faut cliquer sur la cellule, puis sur la fléche de la liste déroulante puis sur l'heure. Ca fonctionne certes mais n'est pas pratique dans la foret avec des gros doigts.

Mon projet c'est d'avoir un bouton "départ", puis un bouton "Arrivée". voir un seul "DEPART/ARRIVEE" L'élève clique sur la cellule qui va bien puis sur le bouton pour avoir l'heure qui s'affiche.
Mon idée serait que la macro note (ou utilise) la formule que j'utilise déjà dans la cellule active. En effet j'ai déjà trouvé une macro qui affiche l'heure dans une cellule, mais celle-ci est nommée par ces coordonnées (et de plus je n'arrive pas bien à la comprendre). Dans la mesure où mon tableau comporte une bonne 50n de cellule à remplir, je me vois mal éditer autant de fois que nécessaire cette macro (et surtout j'aimerais vraiment comprendre comment ca marche pour pouvoir refaire et aider).

Je suppose que la selection de la cellule active se fait aprés les dim avec un truc du genre

Code : Tout sélectionner

Sub AfficherTemps

Dim oDocument As Object, oSheet As Object, oCell As Object
    oDocument=ThisComponent
    oSheet=oDocument.ActiveSheet 
    oCell=oSheet.ActiveCell  'pour utiliser la cellule Active'
          'Jusque là j'ai bon ??'

Call FixTemp(oCell)  'Merci a Looping pour cette partie de code https://forum.openoffice.org/fr/forum/viewtopic.php?f=8&t=15574'
end sub

Sub FixTemp(oCell)
Dim sTemps as String
sTemps = Time
'Print "sTemps : ", sTemps, spc(1)
oCell.String = sTemps
End Sub

Voilà, j'éspére ne pas faire d'impair avec cette demande mais j'ai chercher et n'ai pas trouvé ce que je cherchais.
J'ai une erreur avec le code ci-dessus.

Merci de votre aide éventuelle.

Pour info, je tourne sous Ubuntu 16.04 Gnome Edition, LibreOffice 5.1.4.2 et AndrOpenOffice (à jour).
Seb.
La modération vous a écrit: [quote="Le bandeau rouge en haut de page"]Le balisage (à taper au clavier) doit bien sûr être correctement orthographié (première lettre en majuscule puis le reste en minuscules).[/quote]Casse balise corrigée.

Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par micmac le 25 janv. 2017 05:57, modifié 3 fois.
Raison : [Résolu] remplace [Resolu]
Systeme Utilisé : Ubuntu Gnome Edition 20.04 / Android 10
Version Bureautique : LibreOffice 6.4.7.2 / AndrOpenOffice (A jour)
los_tintinos
Membre lOOyal
Membre lOOyal
Messages : 42
Inscription : 13 mai 2015 22:15

Re: [CALC] Inserer l'heure dans la celulle active.

Message par los_tintinos »

Bonjour,

Finalement en rédigeant le message et le code associé j'ai presque réussi a faire ce que je voulais.
En fait j'ai réussi mais je voudrait encore évoluer (et surtout comprendre comment ca marche) cf fichier joints.
Voici donc la macro que j'ai réussi a faire et qui fonctionne (c'est ma première je suis fière comme un paon même si c'est peut être codé comme un porc ;-p )
Est ce que ca vous semble correct comme binz ??

Code : Tout sélectionner

Sub AfficherTemps

Dim oDocument As Object, oSheet As Object, oCell As Object
    oDocument=ThisComponent
    oCell=thiscomponent.currentSelection 

Call FixTemp(oCell) 
end sub

Sub FixTemp(oCell)
Dim sTemps as String
sTemps = Time
oCell.String = sTemps
End Sub
Ensuite là ou je voudrais encore évoluer c'est pour faire un "mass start". C'est à dire un bouton qui me lance toute les cellules d'un coup.
Dans les arguments de ocell ?

Merci a vous.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Systeme Utilisé : Ubuntu Gnome Edition 20.04 / Android 10
Version Bureautique : LibreOffice 6.4.7.2 / AndrOpenOffice (A jour)
joel275
InconditiOOnnel
InconditiOOnnel
Messages : 839
Inscription : 10 janv. 2009 08:05

Re: [CALC] Inserer l'heure dans la celulle active.

Message par joel275 »

Bonjour,

j'ai corrigé ton doc pour les heures de départ; je te laisse faire la même chose pour les heures d'arrivée.
J'ai expliqué un peu le code.....
N'oublie pas d'associer la macro que tu vas fabriquer au bouton qui va bien sinon tu auras la même erreur que sur ton doc (tu avais changé le nom de la macro sans changer l'association...)
Le doc corrigé à tester
Course_Test.ods
A plus.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
A jour de LibreOffice et de Ubuntu
los_tintinos
Membre lOOyal
Membre lOOyal
Messages : 42
Inscription : 13 mai 2015 22:15

Re: [Calc] Inserer l'heure dans la celulle active.

Message par los_tintinos »

Bonsoir,

Super merci.

J'ai compris l'essentiel du fonctionnement de la macro et jamais je n'y serais arrivé tout seul.
Par contre je ne saisie mal comment sont sélectionnés les cellule dans les macro.

Code : Tout sélectionner

	
For I = 4 to 6
	oCell = oSheet.getCellByPosition(3,I)
Sélectionne les cellules de D5 à D7 (ca j'ai compris ;-)
Or on lui indique "colonne 3;ligne 4 à 6". La case A1 est considéré comme un 0;0 et B1 serait 1;0
Est-ce ça ?

Merci.

Je joint le fichier avec la routine des arrivées.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Systeme Utilisé : Ubuntu Gnome Edition 20.04 / Android 10
Version Bureautique : LibreOffice 6.4.7.2 / AndrOpenOffice (A jour)
joel275
InconditiOOnnel
InconditiOOnnel
Messages : 839
Inscription : 10 janv. 2009 08:05

Re: [Resolu] [Calc] Inserer l'heure dans la celulle active.

Message par joel275 »

Bonjour,
los_tintinos a écrit : La case A1 est considérée comme un 0;0 et B1 serait 1;0
C'est cela même :D
Les nombres sont plus propices aux boucles que les lettres.....

Par contre, tu as remis en pièce jointe le fichier qui ne fonctionne pas :(

A plus.
A jour de LibreOffice et de Ubuntu
los_tintinos
Membre lOOyal
Membre lOOyal
Messages : 42
Inscription : 13 mai 2015 22:15

Re: [Résolu] [Calc] Insérer l'heure dans la celulle active.

Message par los_tintinos »

Bonjour,
Merci pour votre aide qui m'a bien fait avancer dans ma connaissance des macros en général et dans mon fichier en particulier.
Afin de mettre un fichier fonctionnel pour finir, je vous joint mon fichier quasi-final qui fonctionne (enfin chez moi).

Il n'est pas encore complètement finalisé pour ce qui est de l'exploitation des résultats (onglet par élève et par balise) mais le Kifékoi fonctionne très bien.

Il doit être certainement possible d'alléger le code (notamment pour les mass-start) mais ça fonctionne comme ça, donc je préfère ne pas trop y toucher.

Voilà, si cela peut en aider d'autre, servez-vous, c'est fait pour.

Seb
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Systeme Utilisé : Ubuntu Gnome Edition 20.04 / Android 10
Version Bureautique : LibreOffice 6.4.7.2 / AndrOpenOffice (A jour)