

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
29 messages in org.openoffice.fr.progRe: [prog] Chronomètre| From | Sent On | Attachments |
|---|---|---|
| Michel Grentzinger | Oct 9, 2007 7:53 am | |
| Laurent Godard | Oct 9, 2007 8:25 am | |
| Bernard Marcelly | Oct 9, 2007 10:02 am | |
| Laurent Godard | Oct 9, 2007 10:11 am | |
| Michel Grentzinger | Oct 9, 2007 10:58 am | |
| Anthony Benoist | Oct 9, 2007 4:15 pm | |
| Serge LE LOUARNE | Oct 10, 2007 12:43 am | |
| Anthony Benoist | Oct 10, 2007 1:06 am | |
| Serge LE LOUARNE | Oct 10, 2007 1:18 am | |
| Bernard Marcelly | Oct 10, 2007 6:03 am | |
| Anthony Benoist | Oct 10, 2007 6:28 am | |
| Michel Grentzinger | Oct 10, 2007 11:38 am | |
| Anthony Benoist | Oct 10, 2007 12:47 pm | |
| Laurent Godard | Oct 10, 2007 1:30 pm | |
| Anthony Benoist | Oct 10, 2007 3:07 pm | |
| Bernard Marcelly | Oct 11, 2007 5:17 am | |
| Michel Grentzinger | Oct 11, 2007 5:40 am | |
| Bernard Marcelly | Oct 11, 2007 6:02 am | |
| Francois Gatto | Oct 11, 2007 10:22 am | |
| Anthony Benoist | Oct 11, 2007 10:26 am | |
| Anthony Benoist | Oct 11, 2007 10:37 am | |
| Michel Grentzinger | Oct 11, 2007 11:01 am | |
| Bernard Marcelly | Oct 11, 2007 11:37 am | |
| Hervé Grac | Oct 11, 2007 11:54 am | |
| Michel Grentzinger | Oct 11, 2007 1:26 pm | |
| christianwtd | Oct 13, 2007 8:11 am | |
| Bernard Marcelly | Oct 13, 2007 12:49 pm | |
| Bernard Marcelly | Oct 13, 2007 1:04 pm | |
| christianwtd | Oct 14, 2007 1:56 am |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | Re: [prog] Chronomètre | Actions... |
|---|---|---|
| From: | Bernard Marcelly (marc...@club-internet.fr) | |
| Date: | Oct 13, 2007 12:49:48 pm | |
| List: | org.openoffice.fr.prog | |
Message de christianwtd date 2007-10-13 17:12 :
En revanche j'ai jeté un œil dans le code macro d'Antony Benoist. Je trouve que OOoBasic se comporte curieusement :
Sur une instruction : oFeuille.getCellByPosition(1, i).string = Time() affiche l'heure. Normal, sauf l'affichage, qui affiche le fameux apostrophe devant l'heure. Mais si je fais : oFeuille.getCellByPosition(1, i).Value = Time me retourne 16, si par exemple il est 16:21:43 Une modif comme : oFeuille.getCellByPosition(1, i).Value = Now et avec un bon formatage cellule retourne bien : 16:21:43
Est-ce bien normal ?
C'est explicable. Comme souvent, c'est un problème de type de données et de conversion de types. Une cellule de tableur non vide contient: - soit une valeur numérique Double - soit une chaîne de caractères Une formule dans une cellule fournit soit un Double soit une chaîne de caractères.
Quand tu fais: oFeuille.getCellByPosition(1, i).String = xxxx tu demandes à Basic de mettre dans la propriété .String une chaîne de caractères. Dans ton cas tu lui transmets Time() qui renvoie une chaîne de caractères au format HH:MM:SS. Ensuite calc récupère cette chaîne de caractères et doit y ajouter une apostrophe pour la présenter sous forme de chaîne. Si Calc ne mettait pas cette apostrophe on aurait une valeur de nombre. J'enfonce le clou : la cellule contient maintenant une chaîne de caractères, puisque c'est ce que tu as demandé, en utilisant la propriété .String. De même : oFeuille.getCellByPosition(1, i).String = 1234 mettra dans la cellule une chaîne de caractères 1234 et pas le nombre.
Quand tu fais: oFeuille.getCellByPosition(1, i).Value = xxxx tu demandes à Basic de mettre dans la cellule un nombre de type Double. Dans ton cas tu lui transmets Time() qui renvoie une chaîne de caractères au format HH:MM:SS. Alors Basic fait ce qu'il peut. Il analyse la chaîne de caractères et trouve un nombre délimité par le premier deux-points. Et il convertit en Double la valeur d'heure, sans aller plus loin.
Si tu avais fait: oFeuille.getCellByPosition(1, i).Value = CDbl(Time) alors tu précisais à Basic d'utiliser la routine de conversion explicite vers un Double. Cette routine est plus intelligente que la conversion implicite (c'est pour cela qu'elle existe), et reconnaît une heure. On obtient alors une valeur de type Double qui est la représentation interne de l'heure. Calc affichera un nombre avec décimales avec le format de cellule standard, ou affichera l'heure avec un format d'heure: c'est la représentation externe.
Quand tu fais: oFeuille.getCellByPosition(1, i).Value = Now la fonction Now() renvoie, elle, une valeur de type Date. Ensuite Basic convertit le type Date en type Double (c'est facile) et on se retrouve dans le cas précédent.
Bonne soirée Bernard







