Ayant un peu de temps ces jours-ci, et surtout profitant de l'absence de
JPS qui écume certainement les foires aux vins, je reviens sur une
question de Misange qui me serait également utile.
Le but est de mettre à jour une base de données MySQL sur un serveur WEB
depuis Excel, si possible en une seule macro.
Il faut:
enregistrer le fichier en CSV,
le transférer sur le serveur WEB,
que le serveur exécute un script PHP pour modifier la base de données.
Le fichier CSV peut certainement être expédié via VBA-Winsock; je n'ai
jamais fait mais ça doit être réalisable.
Ensuite, il faudrait simuler le chargement d'une page WEB contenant le
script PHP nécessaire à la mise à jour de la base de données (le script
PHP, je sais faire)
Ma question est:
avec VBA-Winsock, comment simuler le chargement de la page WEB c'est à
dire faire en sorte que le serveur WEB reçoive une requête HTTP et ne
l'affiche nul part ; le but étant d'exécuter le script contenu dans la
page WEB?
Accessoirement, si quelqu'un a le code VBA-Winsock-FTP, ça me simplifira
la vie !
C'est encore plus simple dans ce cas chez moi puisque ce que je génère avec mon classeur excel c'est un fichier .sql qui comporte déjà ce genre de choses :
Normal puisque c'est du SQL mais il faut impérativement exécuter ces instructions sur le serveur WEB donc impossible depuis VBA. Ou alors, si le serveur WEB tourne sous Windows, installer un cheval de Troie sur le serveur pour exécuter un script VBS mais je doute que ton hebergeur apprecie cette technique !
ce que je vois mal c'est comment lancer depuis excel le fichier php contenant les instructions nécessaires...
C'est là que le navigateur intervient en chargeant une page contenant le script ad hoc qui va exécuter le SQL.
C'est encore plus simple dans ce cas chez moi puisque ce que je génère
avec mon classeur excel c'est un fichier .sql qui comporte déjà ce genre
de choses :
Normal puisque c'est du SQL mais il faut impérativement exécuter ces
instructions sur le serveur WEB donc impossible depuis VBA.
Ou alors, si le serveur WEB tourne sous Windows, installer un cheval de
Troie sur le serveur pour exécuter un script VBS mais je doute que ton
hebergeur apprecie cette technique !
ce que je vois mal c'est comment lancer depuis excel le fichier php
contenant les instructions nécessaires...
C'est là que le navigateur intervient en chargeant une page contenant le
script ad hoc qui va exécuter le SQL.
C'est encore plus simple dans ce cas chez moi puisque ce que je génère avec mon classeur excel c'est un fichier .sql qui comporte déjà ce genre de choses :
Normal puisque c'est du SQL mais il faut impérativement exécuter ces instructions sur le serveur WEB donc impossible depuis VBA. Ou alors, si le serveur WEB tourne sous Windows, installer un cheval de Troie sur le serveur pour exécuter un script VBS mais je doute que ton hebergeur apprecie cette technique !
ce que je vois mal c'est comment lancer depuis excel le fichier php contenant les instructions nécessaires...
C'est là que le navigateur intervient en chargeant une page contenant le script ad hoc qui va exécuter le SQL.
Misange
Alors comme je sens totalement dépassée, très paresseusement, je vais attendre que tu me fasse un résumé de ce qui faut faire. Je lis des trucs à droite à gauche mais je crois que je perds mon temps, mon neurone ne connecte pas là où il faut je le crains. Ca méritera surement une page d'explication sur excelabo !
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Christian Herbé wrote:
C'est encore plus simple dans ce cas chez moi puisque ce que je génère avec mon classeur excel c'est un fichier .sql qui comporte déjà ce genre de choses :
Normal puisque c'est du SQL mais il faut impérativement exécuter ces instructions sur le serveur WEB donc impossible depuis VBA. Ou alors, si le serveur WEB tourne sous Windows, installer un cheval de Troie sur le serveur pour exécuter un script VBS mais je doute que ton hebergeur apprecie cette technique !
ce que je vois mal c'est comment lancer depuis excel le fichier php contenant les instructions nécessaires...
C'est là que le navigateur intervient en chargeant une page contenant le script ad hoc qui va exécuter le SQL.
Alors comme je sens totalement dépassée, très paresseusement, je vais
attendre que tu me fasse un résumé de ce qui faut faire. Je lis des
trucs à droite à gauche mais je crois que je perds mon temps, mon
neurone ne connecte pas là où il faut je le crains.
Ca méritera surement une page d'explication sur excelabo !
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
Christian Herbé wrote:
C'est encore plus simple dans ce cas chez moi puisque ce que je génère
avec mon classeur excel c'est un fichier .sql qui comporte déjà ce
genre de choses :
Normal puisque c'est du SQL mais il faut impérativement exécuter ces
instructions sur le serveur WEB donc impossible depuis VBA.
Ou alors, si le serveur WEB tourne sous Windows, installer un cheval de
Troie sur le serveur pour exécuter un script VBS mais je doute que ton
hebergeur apprecie cette technique !
ce que je vois mal c'est comment lancer depuis excel le fichier php
contenant les instructions nécessaires...
C'est là que le navigateur intervient en chargeant une page contenant le
script ad hoc qui va exécuter le SQL.
Alors comme je sens totalement dépassée, très paresseusement, je vais attendre que tu me fasse un résumé de ce qui faut faire. Je lis des trucs à droite à gauche mais je crois que je perds mon temps, mon neurone ne connecte pas là où il faut je le crains. Ca méritera surement une page d'explication sur excelabo !
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Christian Herbé wrote:
C'est encore plus simple dans ce cas chez moi puisque ce que je génère avec mon classeur excel c'est un fichier .sql qui comporte déjà ce genre de choses :
Normal puisque c'est du SQL mais il faut impérativement exécuter ces instructions sur le serveur WEB donc impossible depuis VBA. Ou alors, si le serveur WEB tourne sous Windows, installer un cheval de Troie sur le serveur pour exécuter un script VBS mais je doute que ton hebergeur apprecie cette technique !
ce que je vois mal c'est comment lancer depuis excel le fichier php contenant les instructions nécessaires...
C'est là que le navigateur intervient en chargeant une page contenant le script ad hoc qui va exécuter le SQL.
Christian Herbé
Je n'ai pas vraiment oublié car la première liste était pour des clients FTP.
Oups, tu as raison je suis totalement HS !
Je n'ai pas vraiment oublié car la première liste était pour des clients
FTP.
Je n'ai pas vraiment oublié car la première liste était pour des clients FTP.
Oups, tu as raison je suis totalement HS !
Christian Herbé
Ah mais je vous fait confiance ! je suis bien sure qu'il y en a un qui trouvera comment parfaire ce bidule ;-) ;-) ;-) Je lache aussi le PC pour le moment, le jardin m'appelle.
Maintenant, il fait nuit donc le jardin ...
Voilà où on en est (merci à Popi et M. Pierron):
Ta macro sauvegarde la feuille *.CSV elle exécute ensuite le code nécessaire au transfert FTP (voir plus haut) puis la macro ouvre la page web contenant le script PHP:
Dim IE As Object Set IE = CreateObject("internetexplorer.application") IE.Navigate ("http://www.ton_site.fr") 'IE.Visible = True Do While IE.readystate <> 4 Loop IE.Quit
Et voilà, reste à assembler tout ça et à tester. Rappelle-moi si nécessaire pour le script PHP
Ah mais je vous fait confiance ! je suis bien sure qu'il y en a un qui
trouvera comment parfaire ce bidule ;-) ;-) ;-)
Je lache aussi le PC pour le moment, le jardin m'appelle.
Maintenant, il fait nuit donc le jardin ...
Voilà où on en est (merci à Popi et M. Pierron):
Ta macro sauvegarde la feuille *.CSV
elle exécute ensuite le code nécessaire au transfert FTP
(voir plus haut)
puis la macro ouvre la page web contenant le script PHP:
Dim IE As Object
Set IE = CreateObject("internetexplorer.application")
IE.Navigate ("http://www.ton_site.fr")
'IE.Visible = True
Do While IE.readystate <> 4
Loop
IE.Quit
Et voilà, reste à assembler tout ça et à tester.
Rappelle-moi si nécessaire pour le script PHP
Ah mais je vous fait confiance ! je suis bien sure qu'il y en a un qui trouvera comment parfaire ce bidule ;-) ;-) ;-) Je lache aussi le PC pour le moment, le jardin m'appelle.
Maintenant, il fait nuit donc le jardin ...
Voilà où on en est (merci à Popi et M. Pierron):
Ta macro sauvegarde la feuille *.CSV elle exécute ensuite le code nécessaire au transfert FTP (voir plus haut) puis la macro ouvre la page web contenant le script PHP:
Dim IE As Object Set IE = CreateObject("internetexplorer.application") IE.Navigate ("http://www.ton_site.fr") 'IE.Visible = True Do While IE.readystate <> 4 Loop IE.Quit
Et voilà, reste à assembler tout ça et à tester. Rappelle-moi si nécessaire pour le script PHP
popi
Salut Misange,
Alors comme je sens totalement dépassée, très paresseusement, je vais attendre que tu me fasse un résumé de ce qui faut faire. Je lis des trucs à droite à gauche mais je crois que je perds mon temps, mon neurone ne connecte pas là où il faut je le crains.
voilà, après tests çà fonctionne (chez moi)
Sub alimente_mysql() Shell "ftp -i -n -v -s:toto.txt" ' Christian HERBÉ Application.Wait (Now + TimeValue("0:00:10"))
Dim IE As Object Set IE = CreateObject("internetexplorer.application") IE.Navigate ("http://www.popivog.com/mpfe/New.php") IE.Visible = True 'ou False
Do While IE.readystate <> 4 ' Michel PIERRON Loop IE.Quit
MsgBox "Mise à jour terminée !"
End Sub ____________________________________________
Le fichier toto.txt : ' Christian HERBÉ
open ftp.popivog.com user ton_user ton_mot_de_passe lcd D:Program FilesEasyPHPwwwuplod + requete 'chemin local cd www/mpfe/test/ 'chemin sur le serveur put fichier.sql 'nom local du fichier à uploader by _____________________________________________ Le fichier New.php : 'Christian HERBÉ + popi
$fichier=fopen("test/fichier.sql","r+"); 'chemin sur le serveur while(!feof($fichier)) { mysql_query(fgets($fichier,128)); } fclose($fichier); echo "Traitement terminé";
?> _____________________________________________ Le fichier .sql :
INSERT INTO `vaches` VALUES ("14", "olivier", "bernard") INSERT INTO `vaches` VALUES ("15", "olivier1", "bernard1") INSERT INTO `vaches` VALUES ("16", "olivier2", "bernard2") INSERT INTO `vaches` VALUES ("17", "olivier3", "bernard3") INSERT INTO `vaches` VALUES ("18", "olivier4", "bernard4") UPDATE `vaches` SET `nom` = 'didier2' WHERE `num` = '16' AND `nom` 'olivier2' AND `prenom` = 'bernard2' LIMIT 1 _____________________________________________
Je résume ;-)
Une fois ton fichier .sql généré, la macro "alimente_mysql" upload le fichier, Ouvre Internet Explorer et lance le script php "New.php" qui lui va lire le fichier .sql ligne par ligne et va exécuter chaque requête une après l'autre, Le tout se ferme et te salue !!
Je vais manger et je reviens voir si c'est clair ;-)
@+ popi
Salut Misange,
Alors comme je sens totalement dépassée, très paresseusement, je vais
attendre que tu me fasse un résumé de ce qui faut faire. Je lis des
trucs à droite à gauche mais je crois que je perds mon temps, mon
neurone ne connecte pas là où il faut je le crains.
voilà, après tests çà fonctionne (chez moi)
Sub alimente_mysql()
Shell "ftp -i -n -v -s:toto.txt" ' Christian HERBÉ
Application.Wait (Now + TimeValue("0:00:10"))
Dim IE As Object
Set IE = CreateObject("internetexplorer.application")
IE.Navigate ("http://www.popivog.com/mpfe/New.php")
IE.Visible = True 'ou False
Do While IE.readystate <> 4 ' Michel PIERRON
Loop
IE.Quit
MsgBox "Mise à jour terminée !"
End Sub
____________________________________________
Le fichier toto.txt : ' Christian HERBÉ
open ftp.popivog.com
user ton_user
ton_mot_de_passe
lcd D:Program FilesEasyPHPwwwuplod + requete 'chemin local
cd www/mpfe/test/ 'chemin sur le serveur
put fichier.sql 'nom local du fichier à uploader
by
_____________________________________________
Le fichier New.php : 'Christian HERBÉ + popi
$fichier=fopen("test/fichier.sql","r+"); 'chemin sur le serveur
while(!feof($fichier))
{
mysql_query(fgets($fichier,128));
}
fclose($fichier);
echo "Traitement terminé";
?>
_____________________________________________
Le fichier .sql :
INSERT INTO `vaches` VALUES ("14", "olivier", "bernard")
INSERT INTO `vaches` VALUES ("15", "olivier1", "bernard1")
INSERT INTO `vaches` VALUES ("16", "olivier2", "bernard2")
INSERT INTO `vaches` VALUES ("17", "olivier3", "bernard3")
INSERT INTO `vaches` VALUES ("18", "olivier4", "bernard4")
UPDATE `vaches` SET `nom` = 'didier2' WHERE `num` = '16' AND `nom` 'olivier2' AND `prenom` = 'bernard2' LIMIT 1
_____________________________________________
Je résume ;-)
Une fois ton fichier .sql généré, la macro "alimente_mysql" upload le
fichier,
Ouvre Internet Explorer et lance le script php "New.php" qui lui
va lire le fichier .sql ligne par ligne et va exécuter chaque requête
une après l'autre,
Le tout se ferme et te salue !!
Je vais manger et je reviens voir si c'est clair ;-)
Alors comme je sens totalement dépassée, très paresseusement, je vais attendre que tu me fasse un résumé de ce qui faut faire. Je lis des trucs à droite à gauche mais je crois que je perds mon temps, mon neurone ne connecte pas là où il faut je le crains.
voilà, après tests çà fonctionne (chez moi)
Sub alimente_mysql() Shell "ftp -i -n -v -s:toto.txt" ' Christian HERBÉ Application.Wait (Now + TimeValue("0:00:10"))
Dim IE As Object Set IE = CreateObject("internetexplorer.application") IE.Navigate ("http://www.popivog.com/mpfe/New.php") IE.Visible = True 'ou False
Do While IE.readystate <> 4 ' Michel PIERRON Loop IE.Quit
MsgBox "Mise à jour terminée !"
End Sub ____________________________________________
Le fichier toto.txt : ' Christian HERBÉ
open ftp.popivog.com user ton_user ton_mot_de_passe lcd D:Program FilesEasyPHPwwwuplod + requete 'chemin local cd www/mpfe/test/ 'chemin sur le serveur put fichier.sql 'nom local du fichier à uploader by _____________________________________________ Le fichier New.php : 'Christian HERBÉ + popi
$fichier=fopen("test/fichier.sql","r+"); 'chemin sur le serveur while(!feof($fichier)) { mysql_query(fgets($fichier,128)); } fclose($fichier); echo "Traitement terminé";
?> _____________________________________________ Le fichier .sql :
INSERT INTO `vaches` VALUES ("14", "olivier", "bernard") INSERT INTO `vaches` VALUES ("15", "olivier1", "bernard1") INSERT INTO `vaches` VALUES ("16", "olivier2", "bernard2") INSERT INTO `vaches` VALUES ("17", "olivier3", "bernard3") INSERT INTO `vaches` VALUES ("18", "olivier4", "bernard4") UPDATE `vaches` SET `nom` = 'didier2' WHERE `num` = '16' AND `nom` 'olivier2' AND `prenom` = 'bernard2' LIMIT 1 _____________________________________________
Je résume ;-)
Une fois ton fichier .sql généré, la macro "alimente_mysql" upload le fichier, Ouvre Internet Explorer et lance le script php "New.php" qui lui va lire le fichier .sql ligne par ligne et va exécuter chaque requête une après l'autre, Le tout se ferme et te salue !!
Je vais manger et je reviens voir si c'est clair ;-)
@+ popi
Christian Herbé
voilà, après tests çà fonctionne (chez moi)
J'aurais fait le script php différemment mais pourquoi pas? A nous 4 (Flo, Michel Popi et moi), on a fait beaucoup mieux que XLmagique et j'avoue en tirer quelques satisfactions !
Je vais reprendre tout ça avec un exemple simple et Flo le publiera ?
voilà, après tests çà fonctionne (chez moi)
J'aurais fait le script php différemment mais pourquoi pas?
A nous 4 (Flo, Michel Popi et moi), on a fait beaucoup mieux que
XLmagique et j'avoue en tirer quelques satisfactions !
Je vais reprendre tout ça avec un exemple simple et Flo le publiera ?
J'aurais fait le script php différemment mais pourquoi pas? A nous 4 (Flo, Michel Popi et moi), on a fait beaucoup mieux que XLmagique et j'avoue en tirer quelques satisfactions !
Je vais reprendre tout ça avec un exemple simple et Flo le publiera ?
popi
Salut Christian,
J'aurais fait le script php différemment mais pourquoi pas? Fais péter ! je suis toujours preneur ;-)
A nous 4 (Flo, Michel Popi et moi), on a fait beaucoup mieux que XLmagique et j'avoue en tirer quelques satisfactions ! Flatteur !
Je vais reprendre tout ça avec un exemple simple et Flo le publiera ? çà veut dire que mon exemple n'était pas simple alors ? ;-(
@+ ;-)
Salut Christian,
J'aurais fait le script php différemment mais pourquoi pas?
Fais péter ! je suis toujours preneur ;-)
A nous 4 (Flo, Michel Popi et moi), on a fait beaucoup mieux que
XLmagique et j'avoue en tirer quelques satisfactions !
Flatteur !
Je vais reprendre tout ça avec un exemple simple et Flo le publiera ?
çà veut dire que mon exemple n'était pas simple alors ? ;-(
J'aurais fait le script php différemment mais pourquoi pas? Fais péter ! je suis toujours preneur ;-)
A nous 4 (Flo, Michel Popi et moi), on a fait beaucoup mieux que XLmagique et j'avoue en tirer quelques satisfactions ! Flatteur !
Je vais reprendre tout ça avec un exemple simple et Flo le publiera ? çà veut dire que mon exemple n'était pas simple alors ? ;-(
@+ ;-)
Christian Herbé
Je vais reprendre tout ça avec un exemple simple et Flo le publiera ?
çà veut dire que mon exemple n'était pas simple alors ? ;-(
Ce sera l'exemple du fichier de données qui sera simpliste. Le code ne devrait pas beaucoup varier.
Tant que je te tiens, je bosse sur une application PHP de gestion de congés (je suis sûr que ça va intéresser Flo). Les salariés ouvrent une page web celle-ci contient un script qui intérroge une BDD puis affiche un formulaire avec la situation (solde) des congés et une grille pour faire une demande par type (RTT, Congés annuels, déplacements ...). A terme je compte y adjoindre un graphique de GANTT pour visualiser les présences par semaine ou par mois. Quand l'utilisateur valide sa demande,un autre script PHP vérifie la cohérence, met la BBD à jour et affiche un formulaire de demande remplie où le chef n'a plus qu'à signer.
Actuellement, ça marche pour les agents à plein temps. L'utilisateur entre la date et l'heure de départ et de retour par 1/2 journée. Le script gère les jours chômés. En revanche, je galère pour les temps partiels. A chaque demande, il faudra vérifier comment l'agent travaille et il y a beaucoup de cas de figure. (absence par 1/2 journée à tester à chaque fois et pour chaque jour sur 2 semaines au moins: cas des personne qui travaillent une semaine 2 jours, une semaine 3 Etc) C'est cette gestion des cas différents qui me pose Pb.
Je vais reprendre tout ça avec un exemple simple et Flo le publiera ?
çà veut dire que mon exemple n'était pas simple alors ? ;-(
Ce sera l'exemple du fichier de données qui sera simpliste.
Le code ne devrait pas beaucoup varier.
Tant que je te tiens, je bosse sur une application PHP de gestion de
congés (je suis sûr que ça va intéresser Flo).
Les salariés ouvrent une page web
celle-ci contient un script qui intérroge une BDD puis affiche un
formulaire avec la situation (solde) des congés et une grille pour faire
une demande par type (RTT, Congés annuels, déplacements ...).
A terme je compte y adjoindre un graphique de GANTT pour visualiser les
présences par semaine ou par mois.
Quand l'utilisateur valide sa demande,un autre script PHP vérifie la
cohérence, met la BBD à jour et affiche un formulaire de demande remplie
où le chef n'a plus qu'à signer.
Actuellement, ça marche pour les agents à plein temps. L'utilisateur
entre la date et l'heure de départ et de retour par 1/2 journée. Le
script gère les jours chômés.
En revanche, je galère pour les temps partiels. A chaque demande, il
faudra vérifier comment l'agent travaille et il y a beaucoup de cas de
figure. (absence par 1/2 journée à tester à chaque fois et pour chaque
jour sur 2 semaines au moins: cas des personne qui travaillent une
semaine 2 jours, une semaine 3 Etc)
C'est cette gestion des cas différents qui me pose Pb.
Je vais reprendre tout ça avec un exemple simple et Flo le publiera ?
çà veut dire que mon exemple n'était pas simple alors ? ;-(
Ce sera l'exemple du fichier de données qui sera simpliste. Le code ne devrait pas beaucoup varier.
Tant que je te tiens, je bosse sur une application PHP de gestion de congés (je suis sûr que ça va intéresser Flo). Les salariés ouvrent une page web celle-ci contient un script qui intérroge une BDD puis affiche un formulaire avec la situation (solde) des congés et une grille pour faire une demande par type (RTT, Congés annuels, déplacements ...). A terme je compte y adjoindre un graphique de GANTT pour visualiser les présences par semaine ou par mois. Quand l'utilisateur valide sa demande,un autre script PHP vérifie la cohérence, met la BBD à jour et affiche un formulaire de demande remplie où le chef n'a plus qu'à signer.
Actuellement, ça marche pour les agents à plein temps. L'utilisateur entre la date et l'heure de départ et de retour par 1/2 journée. Le script gère les jours chômés. En revanche, je galère pour les temps partiels. A chaque demande, il faudra vérifier comment l'agent travaille et il y a beaucoup de cas de figure. (absence par 1/2 journée à tester à chaque fois et pour chaque jour sur 2 semaines au moins: cas des personne qui travaillent une semaine 2 jours, une semaine 3 Etc) C'est cette gestion des cas différents qui me pose Pb.
j
"Misange" a écrit dans le message de news: #
Ah que ce mail me va droit au coeur ! j'en causais justement hier soir à mais je crois que j'ai même pas réussi à lui faire comprendre ce que je cherche à faire. !
ah la bougresse, elle m'avait pourtant dit qu'elle ne VOULAIT pas transférer son truc sql an FTP évidemment si c'est Christian et popi qui proposent elle ne dit pas non... (même en ftp !)
"Misange" <misange@devinez-ou.net> a écrit dans le message de news:
#8XQWNytDHA.3224@tk2msftngp13.phx.gbl...
Ah que ce mail me va droit au coeur ! j'en causais justement hier soir à
J@C mais je crois que j'ai même pas réussi à lui faire comprendre ce que
je cherche à faire. !
ah la bougresse, elle m'avait pourtant dit qu'elle ne VOULAIT pas transférer
son truc sql an FTP
évidemment si c'est Christian et popi qui proposent elle ne dit pas non...
(même en ftp !)
Ah que ce mail me va droit au coeur ! j'en causais justement hier soir à mais je crois que j'ai même pas réussi à lui faire comprendre ce que je cherche à faire. !
ah la bougresse, elle m'avait pourtant dit qu'elle ne VOULAIT pas transférer son truc sql an FTP évidemment si c'est Christian et popi qui proposent elle ne dit pas non... (même en ftp !)
popi
Salut Christian,
Tant que je te tiens, je bosse sur une application PHP de gestion de congés... Volontiers mais il vaut mieux continuer en bal privé car je ne voudrais pas
friser le HS... ;-)
@+ popi
Salut Christian,
Tant que je te tiens, je bosse sur une application PHP de gestion de
congés...
Volontiers mais il vaut mieux continuer en bal privé car je ne voudrais pas
Tant que je te tiens, je bosse sur une application PHP de gestion de congés... Volontiers mais il vaut mieux continuer en bal privé car je ne voudrais pas