[Opgelost]Kan je de eindtijd vastleggen

Bespreek het rekenblad
Gert-Jan
Berichten: 47
Lid geworden op: wo mei 13, 2015 9:44 am

[Opgelost]Kan je de eindtijd vastleggen

Bericht door Gert-Jan »

L.S.

In een toernooi worden verschillende ronden gespeeld.
Het is de bedoeling om de tijd wanneer iemand klaar is vast te leggen.
Met NU() kan de tijd in een formule automatisch genoteerd worden.
Maar doordat dit een actieve functie is, worden de gegevens automatisch ververst.

Een vaste tijd kan ingevoerd worden via [Ctrl]+[Shift]+:
Dan staat de tijd vast.
Het liefste zou ik willen, dat bij het invoeren van een score de eindtijd van de ronde
automatisch wordt ingevoerd en niet wijzigt.

Kan dit?
Laatst gewijzigd door eremmel op zo jan 14, 2018 3:03 pm, 2 keer totaal gewijzigd.
Reden: [Opgelost] toegevoegd aan onderwerp
Libre Office 5.4.3.2; OpenOffice 4.1.2 op Windows 10 home
eremmel
Berichten: 670
Lid geworden op: di sep 01, 2009 10:11 am
Locatie: Barneveld, Nederland

Re: Kan je de eindtijd vastleggen

Bericht door eremmel »

Ja dit kan.
W11 21H2 (build 22000), LO 7.4.1.2(x64)
Het is Microsoft marketing die laat geloven dat computers geschikt zijn voor niet technici
eremmel
Berichten: 670
Lid geworden op: di sep 01, 2009 10:11 am
Locatie: Barneveld, Nederland

Re: Kan je de eindtijd vastleggen

Bericht door eremmel »

Ik denk dat ik al weet wat je volgende vraag is: "Hoe moet dat dan?" Je kunt het volgende doen:
1. je moet itererende berekeningen aanzetten: menu: Extra -> Opties -> OpenOffice Calc -> Berekenen -> aanvinken Iteraties.
2. Je gaat een formule maken die maar 1x kan wijzigen:

Stel dat je de score in D2 invult en in E2 komt de eindtijd te staan dan moet je in E2 als formule invullen:

Code: Selecteer alles

=ALS(ISGETAL(E2);E2;ALS(ISLEEG(D2);"";NU()))
De werking is als volgt: Als er al tijd in E2 staat, dan neem je die over, anders als er nog niets in D2 staat dan neem je als waarde een lege string anders neem je de huidige tijd.

Een iets complexere variant is deze

Code: Selecteer alles

=ALS(EN(ISGETAL(E2);NIET(ISLEEG(D2)));E2;ALS(ISLEEG(D2);"";NU()))
Als je nu weer D2 leeg maakt (Backspace), dan verdwijnt de tijd weer, deze variant is gebruikersvriendelijker, maar kan ook weer gegevens verlies op leveren.

Als je dit door hebt kun je veel leuke dingen doen met Calc.
W11 21H2 (build 22000), LO 7.4.1.2(x64)
Het is Microsoft marketing die laat geloven dat computers geschikt zijn voor niet technici
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Kan je de eindtijd vastleggen

Bericht door RPG »

Bij Libreoffice is het mogelijk om een macro op te nemen. Dat werkt niet bij Apache Office. Ik moest wel de rem statements verwijderen. Het lijkt mij dat je de macro aan een knop kunt binden.
Development/DispatchCommands - The Document Foundation Wiki bevat veel dispatch mogelijkheden.

Code: Selecteer alles

sub huidigetijd2
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:InsertCurrentDate", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:InsertCurrentTime", "", 0, Array())


end sub
Villeroy op het Engelse forum propageert altijd het volgende. Je moet waarschijnlijk now wel veranderen in nu

Code: Selecteer alles

=now() [without Enter]
F9 [calculate]
Enter [confirm calculated result]
Enter [enter calculated value]

Reduce the key strokes further:
Insert>Names>Define...
Name: N (a very short name)
Refers to: NOW() (a named formula)
Buttons [Add], [OK]

Now you can type
=n F9 Enter Enter
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
Gert-Jan
Berichten: 47
Lid geworden op: wo mei 13, 2015 9:44 am

Re: Kan je de eindtijd vastleggen

Bericht door Gert-Jan »

Een iets complexere variant is deze

Code: Selecteer alles Uitklappen
=ALS(EN(ISGETAL(E2);NIET(ISLEEG(D2)));E2;ALS(ISLEEG(D2);"";NU()))


Als je nu weer D2 leeg maakt (Backspace), dan verdwijnt de tijd weer, deze variant is gebruikersvriendelijker, maar kan ook weer gegevens verlies op leveren.
Deze formule doet exact wat ik bedoel. De tijd wordt 'onthouden' en verkeerd ingevoerde scores, kunnen gemakkelijk aangepast worden.
Ik begrijp nog niet waarom de tijd onthouden wordt, maar dat ga ik uitzoeken.

Bedankt Eric.
Libre Office 5.4.3.2; OpenOffice 4.1.2 op Windows 10 home
Plaats reactie