Nardo26
Nombre de messages : 2294 Age : 55 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Problème avec EXCEL_WRITE Ven 26 Nov 2010 - 10:54 | |
| Bonjour, Je souhaiterai faire un programme qui me génère automatiquement une feuille de calcul sous excel. Or je n'arrive pas à écrire une formule... je me fais jeter sur une erreur OLE lorsque pano execute la ligne suivante: EXCEL_WRITE "A25","=DEC2HEX(L1; " Comment faire ? Est-ce possible de mettre une formule dans excel via panoramic ? | |
|
jjn4
Nombre de messages : 2690 Date d'inscription : 13/09/2009
| Sujet: +++ Ven 26 Nov 2010 - 12:19 | |
| | |
|
Klaus
Nombre de messages : 12274 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec EXCEL_WRITE Ven 26 Nov 2010 - 12:56 | |
| | |
|
Nardo26
Nombre de messages : 2294 Age : 55 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Problème avec EXCEL_WRITE Dim 28 Nov 2010 - 22:00 | |
| Merci à tous les 2 ! En fait mon prob venait plus d'excel que de pano.... | |
|
Nardo26
Nombre de messages : 2294 Age : 55 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Problème avec EXCEL_WRITE Lun 29 Nov 2010 - 23:35 | |
| Non, je réitère: il y a bien un problème avec Excel_write : J'ai fait pour l'instant un petit prog de test, voila ce qui se passe : EXCEL_START, EXCEL_FILE_NEW : ok pas de problème. par contre si un peu plus loin dans le prog je fais : EXCEL_WRITE "B1","=DECHEX("+str$(test%)+")" Je me retrouve dans excel avec : #NOM? (suivant la version d'excel, la fct s'appelle DEC2HEX ou DECHEX) Si maintenant sous excel, je clique sur la cellule (dans le champs d'édition) et que je valide avec la touche 'enter' sans avoir modifié quoique ce soit, la cellule et de nouveau valide et le résultat s'affiche correctement... bizarre Note: j'ai essayé de rajouter des chr$(10),13, les 2... nada ! rien n'y fait... Pour ceux qui veulent essayer, mon bout de code: - Code:
-
' Panoramic
LABEL GetWord : DIM WordNumber%,GetWord$ LABEL Hex2Dec : DIM Hex2Dec$ LABEL Dec2Hex : DIM Dec2Hex%
dim a$,i%,x%,y%
DIM LstMap%:LstMap%=number_objects+1:DLIST LstMap% DIM Segment%(20,2)
DATA "start 00002060 end 0000238c length 812 segment DATA, initialized" DATA "start 0000773f end 00007a6b length 812 segment DATA, from" DATA "start 0000238c end 00003a5c length 5840 segment BSS" DATA "start 00004020 end 00007737 length 14103 segment TEXT" DATA "start 00007a6b end 00007fc8 length 1373 segment CNTE" DATA "start 00000000 end 00048fa6 length 298918 segment .debug" DATA "start 00008000 end 0000bf5e length 16222 segment TEXT0" DATA "start 00018000 end 0001a568 length 9576 segment TEXT1" DATA "start 00028000 end 0002a388 length 9096 segment TEXT2" DATA "start 00038000 end 00039a9c length 6812 segment TEXT3" DATA "start 00000800 end 000009fa length 506 segment .EEPROM" DATA "start 00003b00 end 00003b00 length 0 segment DATA_SAUV" DATA "start 00004000 end 00004020 length 32 segment ENTETE" DATA "start 00000ec0 end 00000ee3 length 35 segment DATA_EEPROM" DATA "start 000009fa end 000009fa length 0 segment .const" DATA "start 00007737 end 0000773f length 8 segment .init" DATA "END"
READ a$ WHILE a$<>"END" WordNumber%=8 : GetWord$=a$ : GOSUB GetWord if GetWord$<>".debug" then ITEM_ADD LstMap%,a$ READ a$ END_WHILE SORT LstMap%
' memo dans tableau Segment%() FOR i%=1 to count(LstMap%) a$=item_read$(LstMap%,i%) WordNumber%=2 : GetWord$=a$ : GOSUB GetWord Hex2Dec$=GetWord$:gosub Hex2Dec: Segment%(i%,0)=Hex2Dec% WordNumber%=4 : GetWord$=a$ : GOSUB GetWord Hex2Dec$=GetWord$:gosub Hex2Dec: Segment%(i%,1)=Hex2Dec% Segment%(0,0)=Segment%(0,0)+1 NEXT i%
EXCEL_START EXCEL_FILE_NEW 1 x%=0:y%=1 FOR i%=1 to Segment%(0,0)-1 EXCEL_WRITE chr$(asc("B")+x%)+str$(y%),"=DECHEX("+str$(Segment%(i%,0))+")" EXCEL_WRITE chr$(asc("C")+x%)+str$(y%),"=DECHEX("+str$(Segment%(i%,1))+")" y%=y%+1 if Segment%(i%+1,0)<>Segment%(i%,1) x%=x%+3:y%=1 end_if NEXT i%
END
GetWord: if Variable("GetWord_i%")<>1 DIM GetWord_i% end_if GetWord$=TRIM$(GetWord$) GetWord_i%= instr(GetWord$," ") while GetWord_i%<>0 GetWord$=left$(GetWord$,GetWord_i%)+ mid$(GetWord$,GetWord_i%+2,1000) GetWord_i%= instr(GetWord$," ") end_while while WordNumber%<>0 GetWord_i%=instr(GetWord$," ") WordNumber%=WordNumber%-1 if WordNumber%<>0 GetWord$=mid$(GetWord$,GetWord_i%+1,1000) GetWord_i%=1 end_if end_while GetWord_i%=instr(GetWord$," ") if GetWord_i%<>0 GetWord$=left$(GetWord$,GetWord_i%) end_if GetWord$=TRIM$(GetWord$) return
Dec2Hex: if variable("DecHex$")<>1 DIM Dec2Hex$ end_if Dec2Hex$="" while Dec2Hex% > 0 if frac(Dec2Hex%/16)=0 Dec2Hex$="0"+Dec2Hex$ else Dec2Hex$= mid$("0123456789ABCDEF",(Dec2Hex% - (int(Dec2Hex%/16)*16))+1,1)+Dec2Hex$ end_if Dec2Hex% = int(Dec2Hex%/16) end_while if Dec2Hex$="" then Dec2Hex$="00" if (even(len(Dec2Hex$))=0) then Dec2Hex$="0"+Dec2Hex$ return
Hex2Dec: if variable("Hex2Dec_i%")<>1 DIM Hex2Dec_i%, Hex2Dec% end_if Hex2Dec% = 0 : Hex2Dec$=UPPER$(Hex2Dec$) FOR Hex2Dec_i% = 1 TO LEN(Hex2Dec$) Hex2Dec% = Hex2Dec%*16 + INSTR("0123456789ABCDEF", MID$(Hex2Dec$, Hex2Dec_i%, 1))-1 NEXT Hex2Dec_i% return | |
|
Klaus
Nombre de messages : 12274 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec EXCEL_WRITE Mar 30 Nov 2010 - 2:31 | |
| Si j'utilise Excel 2007, et si je modifie les lignes 55 et 56 comme suit: - Code:
-
EXCEL_WRITE chr$(asc("B")+x%)+str$(y%),"=DEC2HEX("+str$(Segment%(i%,0))+")" EXCEL_WRITE chr$(asc("C")+x%)+str$(y%),"=DEC2HEX("+str$(Segment%(i%,1))+")"
ça marche sans problème. Il y a une difficulté pour Excel de reconnaître les noms de fonctions issues de versions différentes. Elles sont traduites automatiquement si l'on clique dans la zone "formule", puis on valide par return ou par un clic dans une autre cellule. Mais en envoyant DEC2HEX, ça marche. Le probème n'est pas lié à EXCEL_WRITE de Panoramic. J'utilise pour les tests la version 0.9.20 officielle du 29/11/2010. Avec DECHEX, j'ai le même problème, mais avec DEC2HEX, tout est ok. | |
|
Nardo26
Nombre de messages : 2294 Age : 55 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Problème avec EXCEL_WRITE Mar 30 Nov 2010 - 10:45 | |
| Bonjour Klaus, En fait dans la version que j'ai sur mon portable d'Excel reconnait la fonction DECHEX. C'est pour cette raison que dans mon source j'utilise cette syntaxe. Le résultat c'est que cela ne fonctionne pas tant que je n'ai pas cliqué sur le champs d'édition de chaque cellule écrite avec EXCEL_WRITE et que je n'ai pas revalidé son contenu (sans avoir rien changer du tout)... Au boulot j'ai une autre version d'Excel 2000 qui elle reconnait la fonction DEC2HEX, J'ai modifié le source panoramic en conséquent et j'ai refait le test : j'ai le même problème... Ce n'est pas liée en particulier avec DECHEX / DEC2HEX car si tu fais cet essai, tu as exactement le même problème : - Code:
-
EXCEL_START EXCEL_FILE_NEW 1 EXCEL_WRITE "A1","12" EXCEL_WRITE "A2","3" EXCEL_WRITE "A3","=A1+A2" EXCEL_WRITE "A4","=SOMME(A1:A2)" La cellule A3 fonctionne très bien mais la cellule A4 t'affiche un beau "#NOM?" si tu sélectionne cette cellule et que tu appuis sur la touche return/Enter, le contenu de A4 est reconnu par excel et le résultat de SOMME() apparait... [Edit]Je viens de faire l'essai en sauvegardant la feuille Excel et de refaire une réouverture du fichier, même topo: la cellule A4 n'est pas interprétée par Excel lors du chargement. [/Edit] [Edit2] On voit qu'il y a une différence (à gauche : après validation de la cellule) [/Edit2] | |
|
Contenu sponsorisé
| Sujet: Re: Problème avec EXCEL_WRITE | |
| |
|