Celuule vide dans excel avec javascript

mattzeclimber Messages postés 1 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 13 novembre 2007 - 13 nov. 2007 à 18:32
delaux Messages postés 20 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 12 février 2008 - 14 nov. 2007 à 09:46
Bonjour à tous !!

voilà, je rempli une feuille excel avec javascript. grace à cette fonction :

  var ExcelApp = new ActiveXObject("Excel.Application");
   ExcelSheet = new ActiveXObject("Excel.Sheet");
   ExcelApp.Application.Visible = true;
  
   ExcelApp.Workbooks.Open(chemin );
   ExcelApp.sheets(6).activate


   ExcelApp.Activesheet.cells(16,3)="test";

cela fonctionne parfaitement.
par contre, je dois chercher une cellule vide afin de repérer la dernière ligne non vide pour écrire dans ligne juste en dessous.
donc j'ai utilisé un while pour repérer la celluele vide, et là, ca se complique.

var compteur = 1;
var i = ExcelApp.activesheet.cells(compteur,3)




  while ( ExcelApp.activesheet.cells(compteur,3)!="" )


   {
   compteur = compteur + 1;
   i = ExcelApp.activesheet.cells(compteur,3);
   }
malheureusement, la boucle tourne sans fin, vu que ca ne repère jamais la cellule vide...

J'ai donc rajouté cette ligne de code ci dessous dans la boucle while pour connaitre la valeur des celulles sensées être vides, et ca me retourne undefined.

  alert(ExcelApp.activesheet.cells(compteur,3).value);

quelqu'un aurait-il une idée pour repérer une cellule vide dans une colonne excel ?

Merci beaucoup pour votre aide !

Matthieu

1 réponse

delaux Messages postés 20 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 12 février 2008
14 nov. 2007 à 09:46
Vu que l'on est sur un forum VB, je te fais la réponse en VBA en espérant que cela puisse t'aider :

cpt = 1
While ActiveSheet.Cells(cpt, 3) <> ""
    MsgBox ActiveSheet.Cells(cpt, 3)
    cpt = cpt + 1
Wend
i = ActiveSheet.Cells(cpt, 1)
MsgBox i

Je viens de tester ce code et il fonctionne, ca ressemble à la copie conforme de ton programme JS

Je suis septique sur l'utilité de "i = ExcelApp.activesheet.cells(compteur,3);".
En effet, tu le met à jour à chasue passage alors que si tu le mets en dehors de ta boucle, ça ne sera fait qu'une fois (quand tu sera sur ta cellule vide).

Sinon pour tester où ca plante essaie d'afficher directement une cellule vide :
alert(ExcelApp.activesheet.cells(Ligne,Colonne).value);
Si la valeur est réellement undefine fait ton test avec quelque chose comme not null (je suis pas sur en JS)

Bon courage


________________________
Thomas
0
Rejoignez-nous