Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[ole ] dates excel...

2 réponses
Avatar
Romuald.besset
bonjour,

la classe cexcel:sLireValeur permet de lire les valeurs des cellules...
mais comment faire pour les dates ?

en effet, il s'agit d'un format d'affichage pour des entiers qui ne
correspondent à rien en wd (pas même base de calcul)

++ R&B

2 réponses

Avatar
Romuald.besset
Romuald.besset wrote:

bonjour,

la classe cexcel:sLireValeur permet de lire les valeurs des cellules...
mais comment faire pour les dates ?

en effet, il s'agit d'un format d'affichage pour des entiers qui ne
correspondent à rien en wd (pas même base de calcul)

++ R&B



pour la postérité (Merci drCharly),
merci aussi de confirmer.

PROCEDURE CExcel::sLireDate(sCellule)
// Renvoie le contenu de la cellule qui est une date (entier affiché en
date)
// sCellule est la cellule désirée

// prise en compte que les entiers dates d'excel démarrent au 01/01/1900
n est un entier = DateVersEntier("19000101")
ncalc est un entier
QUAND EXCEPTION DANS
ncalc = :m_xExcel>>Range(sCellule)>>Value
ncalc = ncalc + n - 2
// (-2 en raison du 01011900 de vb et du 01011800 de wd)
RENVOYER EntierVersDate(ncalc)
FAIRE
:msgerreur("Impossible de lire la valeur.",ExceptionInfo())
RENVOYER ""
FIN


++ R&B
Avatar
ricouille
Le lundi 26 Avril 2004 à 13:12 par Romuald.besset :
bonjour,

la classe cexcel:sLireValeur permet de lire les valeurs des cellules...
mais comment faire pour les dates ?

en effet, il s'agit d'un format d'affichage pour des entiers qui ne
correspondent à rien en wd (pas même base de calcul)

++ R&B


déterrage:

sous windev 19 pour les dates d'un vieux fichier excel

PROCEDURE date_excel(sCellule)

// prise en compte que les entiers dates d'excel démarrent au 01/01/1900
n est un entier = DateVersEntier("19000101")
SI sCellule<>"" ALORS
ncalc est un entier
ncalc = sCellule
ncalc = ncalc + n - 2
// (-2 en raison du 01011900 de vb et du 01011800 de wd)
RENVOYER EntierVersDate(ncalc)
SINON
RENVOYER ""
FIN