[VBA] lien avec du PHP pour commander Excel

lien avec du PHP pour commander Excel [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 23-06-2005 à 10:26:11    

Bonjour a tous, j'aurai besoin de votre aide.
 
Je cherche depuis pas mal de temps un moyen de commander Excel pour réaliser des graphiques.
Point de départ :  
J'ai un fichier .csv de base avec plein de donnée. un utilisateur rentre différentes informations grace a des listes déroulantes. A partir de la, je recupere ces infos et je filtre mon fichier csv. De plus, l'utilisateur indique ce qu'il veut voir en champs de page, champs de donnée etc...
 
pour commander Excel ce que jense faire, c'est grace a VBA, filtrer le fichier et commander Excel pour mettre les données au bon emplacement.
Tout doit se faire de maniere automatique.
 
Qu est ce que vous en pensez ? Merci par avance de votre aide.

Reply

Marsh Posté le 23-06-2005 à 10:26:11   

Reply

Marsh Posté le 23-06-2005 à 10:37:21    

Possible facilement si t'as un serveur sous windows, grâce à ton ami COM

Reply

Marsh Posté le 23-06-2005 à 11:10:14    

Merci FlorentG de ton aide.
 
C'est sur COM c vraiment bien!!!!!! le probleme c'est que je n'arive pas a le faire fonctionner et je sais pas pourquoi??? :cry:  
 
Ce serait bien pourtant  :fou:  
 
Rien que ca par exemple ca fonctionne pas :
 
<html>
<body>
 
   <h2>Test d'Excel avec PHP</h2>
         
<?  
 
//démarage de word
$word = new COM("word.application" ) or die("Impossible d'ouvrir Word" );
 
 
//Activation
$word->Visible = 1;
 
//ouverture d'un document vide
$word->Documents->add();
 
//Ecriture dans le document
$word->Selection->TypeText("Ceci est un test" );
$word->Documents[1]->SaveAs("Fichier_inutile.doc" );
 
//Fermeture de word
$word->Quit();
 
//Libération de l'objet
$word->Release();
$word = null;
 
?>
     
</body>
</html>
 
Si quelq'un peut m'aider !
Tu connais un peu FlorentG le COM ?

Reply

Marsh Posté le 23-06-2005 à 11:11:10    

C'est exactement comme en VBA :) Mais en PHP :D Sinon c'est quoi qui foire ?

Reply

Marsh Posté le 23-06-2005 à 11:14:51    

oui je sais a peu pres comment ca marche.
 
ce qui foire c'est que j'ai un message d'erreur   apache.exe - Application error
Et ca me dit la mémoire could not be "read"

Reply

Marsh Posté le 23-06-2005 à 11:17:03    

T'es en PHP5 ?


Message édité par FlorentG le 23-06-2005 à 11:17:09
Reply

Marsh Posté le 23-06-2005 à 11:23:34    

Non j'ai la version 4  
 
Il n'y a qu'avec la version 5 que ca marche ?

Reply

Marsh Posté le 23-06-2005 à 11:24:15    

On va dire qu'avec la 5, ça a été beaucoup amélioré

Reply

Marsh Posté le 23-06-2005 à 11:25:55    

ok d'accord merci je vais me renseigner
 
Sinon le bout de code que j'ai mis plus haut te semble correct ?
 

Reply

Marsh Posté le 23-06-2005 à 11:26:28    

Ca à l'air, ouais :jap:

Reply

Marsh Posté le 23-06-2005 à 11:26:28   

Reply

Marsh Posté le 23-06-2005 à 11:29:26    

ok merci beaucoup!
 
ca m'as beaucoup aider je vais donc me renseigner pour faire fonctionner PHP5 j'espere que ca vient de la.
Sinon je peux utiliser les header mais ca a l'air plus chiant a manier.   :jap: "L'objet COM " :jap:   me parait vraiment le meilleur moyen de réaliser des commandes d'Excel!!

Reply

Marsh Posté le 23-06-2005 à 11:30:45    

Oui, c'est le mieux... Si t'as un serveur Windows évidemment :D

Reply

Marsh Posté le 23-06-2005 à 11:35:02    

oui bien sur  :)  
 
En fait vraiment ce que je dois réaliser c'est d'apres des formulaires je récupere les réponses avec du php, ensuite en fonction de ca je filtre un fichier csv avec les bonnes données. En fonction de ca Excel me cré directement un graphique en mettant les bons trucs dans champs de page , champs de ligne etc...
 
Donc c 'est pour ca que pour le moment je ne vois vraiment que COM pour faire ca.
Ou encore VBA mais bon je connais pas.

Reply

Marsh Posté le 28-06-2005 à 17:15:51    

Peut on faire le lien entre php et vba.
Ainsi php réalise ce qu'il a a faire et une fois fini vba prend le relais, met toutes les données du fichier cré par PHP dans excel puis réalise le graphique corespondant.
 
Cela évite de passer par l'objet COM pas trop fiable et générant souvent des erreurs.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed