Formater une colonne Excel

Signaler
Messages postés
35
Date d'inscription
dimanche 5 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour,

j'ai un petit souci.
J'ai fait une fonction javascript qui rempli une page Excel, jusque là pas de problème.
Le fait est que quand je veux entrer des dates, qui sont entrées comme string 'jj/mm/aaaa', Excel me change le mois et le jour.
J'aimerais formater cette colonne date au bon format avec ma fonction javascript.
Existe-t-il des propriétés ou méthodes qui peuvent faire cela en sachant que j'utilise l'objet ActiveX?

Merci d'avance.

Jakata

7 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
Bonjour,
Excel me change le mois et le jour.

pas sûr ça : n'est-ca pas parce que
qu'on envoie jj/mm/aaaa et qu'excel
fait 2 divisions ( jj/mm puis résultat/aaaa )
il ne faudrait pas envoyer 'jj/mm/aaaa ou
définir la cellule comme recevant du texte ?
un tout petit extrait du code ?
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
35
Date d'inscription
dimanche 5 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009

je voulais dire par 'il ma change le mois et le jour' qu'il me les inverse.
voici mon en gros mon code (code que j'ai trouvé sur ce site )

ExcelApp =
new ActiveXObject("Excel.Application");


fso =
new ActiveXObject("Scripting.FileSystemObject");




strFile = "C:\";


strFile += strName;


strFile += ".xls";





if (fso.FileExists(strFile))
//file exist


{


bExist =
true;


ExcelBook = ExcelApp.Workbooks.Open(strFile);


}



else


{


bExist =
false;


ExcelBook = ExcelApp.Workbooks.Add();


}
//end if


ExcelApp.Cells.Clear;
//clear all cells of the worksheet


iTempRow = aExcell.length;



for(iRow=1; iRow<iTempRow; iRow++)


{


iTempCols = aExcell[iRow].length;



for(jCol=1; jCol<iTempCols; jCol++)


ExcelBook.ActiveSheet.Cells(iRow, jCol).Value = aExcell[iRow][jCol];
//"***This is column " + jCol + ", row " + iRow;


}
//end for



if(bExist)


ExcelBook.Save();



else


ExcelBook.SaveAs(strFile);




ExcelBook.Close();


ExcelApp.Quit();


ExcelBook =
null;


ExcelApp =
null;


fso =
null;

Jakata
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
transforme en date au format américain
si on envoie espacejj/mm/aaaa ou 'jj/mm/aaaa
c'est bon
si on envoie jj/mm/aaaa ou "jj/mm/aaaa
ça affiche mm/jj/aaaa
je ne connais pas assez excel pour savoir pourquoi.
mais d'autres personnes plus compétentes que moi
( et il y en a beaucoup ici ) vont répondrent.
ou poser la question à celui qui à écrit le script ?
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
35
Date d'inscription
dimanche 5 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009

Jakata
Messages postés
35
Date d'inscription
dimanche 5 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009

Merci.
Je vais essayer ça.

Jakata
Messages postés
35
Date d'inscription
dimanche 5 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009

ça fonctionne super !!!!
merci BEAUCOUP

Jakata
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
Oui, mais ce n'est guère satisfaisant...
si on saisit jj/mm/aaaa avec Excel c'est correct.
Il doit bien exister une solution pour que, si
c'est un programme qui envoie la zone, cela
fonctionne aussi. Je n'ai pas la réponse.
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~