3 messages in org.openoffice.fr.progSoustraire un temps
FromSent OnAttachments
Michel GrentzingerOct 18, 2007 9:45 am 
Bernard MarcellyOct 18, 2007 12:03 pm 
Michel GrentzingerOct 18, 2007 1:26 pm 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Soustraire un tempsActions...
From:Michel Grentzinger (mic.@online.fr)
Date:Oct 18, 2007 9:45:21 am
List:org.openoffice.fr.prog

Bonjour,

Le code suivant donne un comportement que je n'arrive pas à expliquer... Les macros AjouterUneMinute et AjouterUneSeconde fonctionnent sans soucis

EnleverUneSeconde fonctionne mais si je rajoute la ligne avec le print, la boite de dialogue apparaît 2 fois et entre la 1ere et 2ème apparition, 2 secondes sont enlevées avant que la valeur ne soit finallement décrémenté que d'une seconde...

EnleverUneMinute enlève bien une minute mais rajoute 1 seconde...

Je suppose que c'est avec les soustraction de temps que ça passe pas mais je ne voit pas où !

Si quelqu'un peut éclairer ma lanterne

PS : chaque macro est lancé par un bouton et agit sur une cellule contenant une heure.

Option Explicit

Sub ModifierTemps(Temps As Date) Dim oDocument As Object, oFeuille As Object, oSelectionEnCours As Object Dim oCoordonnees As Object, oCelluleEnCours As Object Dim nLigne As Integer, nColonne As Integer

oDocument = ThisComponent oFeuille = oDocument.CurrentController.ActiveSheet oSelectionEnCours = oDocument.CurrentSelection

' Vérification que seule une cellule est sélectionée If oSelectionEnCours.supportsService("com.sun.star.table.Cell") Then ' Récupération des coordonnées de la cellule oCoordonnees = oSelectionEnCours.CellAddress nColonne = oCoordonnees.Column nLigne = oCoordonnees.Row oCelluleEnCours = oFeuille.getCellByPosition(nColonne,nLigne)

'On modifie la valeur oCelluleEnCours.Value = oCelluleEnCours.Value + Temps End If

End Sub

Sub AjouterUneSeconde() Dim TempsAAjouter As Date TempsAAjouter = TimeValue("00:00:01") ModifierTemps(TempsAAjouter) End Sub

Sub AjouterUneMinute() Dim TempsAAjouter As Date TempsAAjouter = TimeValue("00:01:00") ModifierTemps(TempsAAjouter) End Sub

Sub EnleverUneMinute() Dim TempsAEnlever As Date TempsAEnlever = TimeValue("00:01:00") ModifierTemps(-TempsAEnlever) End Sub

Sub EnleverUneSeconde() Dim TempsAEnlever As Date TempsAEnlever = TimeValue("00:00:01") print -TempsAEnlever ModifierTemps(-TempsAEnlever) End Sub