Bonjour,
je travaille en WebDev v17. Dans mon écrit je fais clairement la distinction entre Windev et Webdev !

J'ai un bouton serveur dont l'objectif est d'exporter vers Excel le contenu d'une zone répétée. Voici le code du bouton :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Fichier est une chaîne = fRepDonnées() + "\" + DateSys() + HeureSys() + ".xls"
ZoneRépétéeVersExcel(ZR_Ana,Fichier)
FichierAffiche(Fichier, "application/vnd.ms-excel")
fSupprime(Fichier)
Ce code fonctionne parfaitement : il exporte le contenu de la ZR dans un fichier xls sans mise en forme et le propose en téléchargement à l'utilisateur. Si ce dernier le télécharge, alors le xls est ouvert localement sur son ordinateur.

Le fichier est créé avec un onglet nommé "A" que je souhaite renommer. C'est là que ça grinche :-/

entre ZoneRépétéeVersExcel et FichierAffiche j'ai donc ajouté le code ci dessous :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
xl est un objet OLE "Excel.Application"
xl>>Visible = OLEFaux
xl>>workbooks>>Open(Fichier) // ouvre le classeur 
xl>>ActiveSheet>>Name="NouveauNom"
xl>>activeworkbook>>close(OLEFaux) 
xl>>Quit()
à l'exécution Webdev me renvoie l'insulte :
Appel WL :
Traitement de 'Clic de BTN_Excel (serveur)' (PAGE_Analyse.BTN_Excel), ligne 10, thread 0
Que s'est-il passé ?
Vous avez appelé la méthode Automation 'Open'.
En tentant d'invoquer la méthode <Open> ou de lire la propriété <Open>, l'objet Automation/ActiveX a renvoyé l'erreur suivante :
'Erreur 800A03EC : Microsoft Office Excel ne peut accéder au fichier « C:\Mes Sites\PRA\Exe\2014111311110991.xls ». Plusieurs raisons possibles :
• Le nom du fichier ou le chemin n'existe pas.
• Ce fichier est actuellement utilisé par un autre programme.
• Le classeur que vous essayez d'enregistrer porte le même nom qu'un classeur actuellement ouvert.'

J'ai l'impression que ZoneRépétéeVersExcel tient le fichier et m'interdit de le modifier !?

J'ai essayé de faire différemment en important puis adaptant la classe CExcel de l'exemple Windev "WD Pilotage de Excel" dans mon appli webdev.
entre ZoneRépétéeVersExcel et FichierAffiche j'ai donc placé le code ci dessous :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Excel est un objet dynamique CExcel
Excel = allouer un CExcel(Faux) // j'ai d'abord essayé avec Vrai puis j'ai dû mettre Faux parce qu'en webdev la fonction "objetactif" n'existe pas :(
Excel.RenommerFeuille("NouveauNom", "a")
Mais rien ne se passe, l'onglet n'est pas renommé.

Au final j'apprécie le service rendu par ZoneRépétéeVersExcel, mais je n'arrive pas à prendre la main sur le fichier généré avant de le proposer en téléchargement à l'utilisateur.
Comment faire en Webdev (sachant que ce qui marche en Windev ne marche pas à l'identique Webdev) ??

merci à ceux qui prendront du temps pour me répondre.
Cordialement, JCL