PB SUR XLSDONNEE SUR UN FORMAT DE CELLULE TRES SPECIAL
Stagiaire WDF
Inscrit:
11/03/2008 15:40
De France
Post(s): 5
J'utilise les différentes fonctions pour récupérer le contenu de fichiers afin de les remettre en forme dans un format standard, et je rencontre une difficulté sur un champ qui m'est retourné

result= xlsTypeColonne(id,nColonne,Faux),
- id est l'identifiant de fichier,
- nColonne est la colonne qui m'intéresse,

Dans mon cas ma cellule "31-mars-08 12:02:58", la valeur retourné est 31.
- en utilisant ChaineVersDate(chaine), j'obtiens 20080331,
- en utilisant ChaineVersDurée(chaine,dureeCentieme) j'obtiens le résultat 31000320080 ce qui est en fait la date

Par contre avec cette cellule "01-avr-08 02:46:09" qui est au même format
- en utilisant ChaineVersDate(chaine), j'obtiens -08 av01,
- en utilisant ChaineVersDurée-chaine j'obtiens le résultat 1020006090

Est-il possible avec WINDEV de FORMATER une cellule, ou le résultat.

MERCI...

Contribution le : 24/04/2008 11:55
Créer un fichier PDF de la contribution Imprimer


Re: PB SUR XLSDONNEE SUR UN FORMAT DE CELLULE TRES SPECIAL
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

La gestion des dates est un peu différente entre Excel et WinDev
Pour cela il vous faudra reformater vos données pour pouvoir les exploiter:
//Cette fonction va renvoyer une date au format DateHeure
PROCEDURE proConvertirDateDeExcel(pDate est une chaine)
dDateHeure est une DateHeure
sHeure est une chaine
sDate est une chaine
nJour est un entier
nAnnee est un entier

sHeure = Droite(pDate,8)
sHeure = Remplace(sHeure, ":", "")
dDateHeure..PartieHeure = sHeure[[ A 6]]

sDate = ExtraitChaine( pDate, 1, " " )
nJour = ExtraitChaine( sDate, 1, "-" )
nAnnee = ExtraitChaine( sDate, 3, "-" )

Selon ExtraitChaine( sDate, 2 "-" )
  Cas "janv" : nMois = 1
  Cas "févr" : nMois = 2
  Cas "mars" : nMois = 3
  Cas "avr" : nMois = 4
  Cas "mai" : nMois = 5
  Cas "juin" : nMois = 6
  Cas "juil" : nMois = 7
  Cas "août" : nMois = 8
  Cas "sept" : nMois = 9
  Cas "oct" : nMois = 10
  Cas "nov" : nMois = 11
  Cas "déc" : nMois = 12
Fin
dDateHeure..Annee = nAnnee
dDateHeure..Mois = nMois
dDateHeure..Mois = nMois
dDateJour = nJour

Renvoyer dDateHeure 


Code saisie à la volée pouvant comporter des erreurs

Contribution le : 25/04/2008 12:25
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: PB SUR XLSDONNEE SUR UN FORMAT DE CELLULE TRES SPECIAL
Stagiaire WDF
Inscrit:
11/03/2008 15:40
De France
Post(s): 5
Merci, pour cette réponse. Il y avait quelques erreurs en effet.
Mais cette fonction ne fonctionne pas sur une cellule avec le contenu "22/08/2007 11:01:41".

A+

Contribution le : 25/04/2008 13:33
Créer un fichier PDF de la contribution Imprimer


Re: PB SUR XLSDONNEE SUR UN FORMAT DE CELLULE TRES SPECIAL
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

En modifiant quelque peu la fonction et avec tests effectués

voici le code de la fonction qui fonctionne avec les deux formats de dates différents fournis
PROCEDURE proConvertirDateDeExcel( pDate est une chaîne, pSeparateurDate est une chaîne = "/" )
dDateHeure est une DateHeure
sHeure est une chaîne
sDate est une chaîne
nJour est un entier
nAnnee est un entier
nMois est un entier

sHeure = Droite(pDate,8)
sHeure = Remplace(sHeure, ":", "")
dDateHeure..PartieHeure = sHeure[[ A 6]]

sDate = ExtraitChaîne( pDate, 1, " " )
nJour = ExtraitChaîne( sDate, 1, pSeparateurDate )
nAnnee = ExtraitChaîne( sDate, 3, pSeparateurDate )
SI nAnnee > 50 ALORS nAnnee += 1900 SINON nAnnee += 2000
nMois = ExtraitChaîne( sDate,2, pSeparateurDate )
SI nMois = 0
	SELON ExtraitChaîne( sDate, 2, pSeparateurDate )
		CAS "janv" : nMois = 1
		CAS "févr" : nMois = 2
		CAS "mars" : nMois = 3
		CAS "avr" : nMois = 4
		CAS "mai" : nMois = 5
		CAS "juin" : nMois = 6
		CAS "juil" : nMois = 7
		CAS "août" : nMois = 8
		CAS "sept" : nMois = 9
		CAS "oct" : nMois = 10
		CAS "nov" : nMois = 11
		CAS "déc" : nMois = 12
	FIN
FIN		
dDateHeure..Année = nAnnee
dDateHeure..Mois = nMois
dDateHeure..Mois = nMois
dDateHeure..Jour = nJour

RENVOYER dDateHeure 

proConvertirDateDeExcel("31-mars-08 12:02:58","-")
Renvoi "20080331120258"
proConvertirDateDeExcel("22/08/2007 11:01:41)
Renvoi "20070822110141"

Contribution le : 28/04/2008 11:40
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: PB SUR XLSDONNEE SUR UN FORMAT DE CELLULE TRES SPECIAL
Stagiaire WDF
Inscrit:
11/03/2008 15:40
De France
Post(s): 5
Le code fourni fonctionne bien, avec le format de cellule précisé. Cependant le problème vient plutôt au niveau de la chaîne retourné par excel.
En effet le contenu de la cellule fournie est comme précisé mais la châine retournée est "31/03/2008".

Je crois que je vais renoncer malgré votre aide. Car en fait il faudrait pouvoir formater une colonne à un format spécifique, et je crois que cela n'est pas possible.

Contribution le : 28/04/2008 15:48
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2