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 !
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 !
Merci.
--
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Bonsoir,
Appréciation erronée : jps vient de passer ;-)))
Bonsoir
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 !
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 !
Merci.
--
-- Cordialement,
Michel Gaboly http://www.gaboly.com
sabatier
le lorrain est jaloux, m'sieurs dames...et puis un maire ne devrait pas avoir de temps, pour lui s'entend... passez-moi sarko... jps
Christian Herbé a écrit:
Bonsoir
Ayant un peu de temps ces jours-ci, et surtout profitant de l'absence de JPS qui écume certainement les foires aux vins,
le lorrain est jaloux, m'sieurs dames...et puis un maire ne devrait pas
avoir de temps, pour lui s'entend...
passez-moi sarko...
jps
Christian Herbé a écrit:
Bonsoir
Ayant un peu de temps ces jours-ci, et surtout profitant de l'absence de
JPS qui écume certainement les foires aux vins,
et tel le furet, il repassera par là... bonne nuit les félons... jps
Michel Gaboly a écrit:
Bonsoir,
Appréciation erronée : jps vient de passer ;-)))
Misange
Christian Herbé wrote:
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.
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. ! Pourtant je suis sure qu'il pourrait avoir de bonnes idées en la matière. En tous cas, je suis toujours très très intéressée.
En ce qui me concerne voici la situation que je cherche à résoudre : j'ai sur mon PC un classeur excel comportant par exemple la liste des classeurs proposés en téléchargement sur excelabo. Quand quelqu'un comme Michel Holderitz me propose un classeur (je dis ça parce que je me rends compte que justement j'ai oublié de mettre celui qu'il m'a proposé en ligne hier... ), j'ouvre mon classeur excel et je lance un userform "nouveau classeur" qui me permet de renseigner les différentes rubriques nécessaires. Par une subtile macro liée à un bouton d'un bleu du plus bel effet à mon gout, je génère à partir de ce classeur une feuille "nouveau.sql" contenant les instructions pour insérer ces données dans la base mysql qui est hébergée chez online. Ensuite et c'est à partir de là que je voudrais automatiser les choses, j'ouvre mon fureteur préféré, j'ouvre la page php-myadmin d'excelabo qui n'est jamais qu'une interface web avec ma base mysql, je sélectionne l'emplacement de mon fichier nouveau.sql sur mon disque dur et je lui demande d'exécuter la requête. Les nouveaux enregistrements sont alors ajoutés à la base existante. Ce qui serait vraiment mais vraiment génial ce serait de pouvoir lancer toutes ces opérations depuis un bouton placé dans mon classeur excel.
Toutes idées, surtout géniales très bienvenues :-) Et je suis ravie de voir que je ne suis pas la seule à être intéressée :-) --
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Christian Herbé wrote:
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.
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. ! Pourtant je suis sure qu'il pourrait avoir de
bonnes idées en la matière. En tous cas, je suis toujours très très
intéressée.
En ce qui me concerne voici la situation que je cherche à résoudre :
j'ai sur mon PC un classeur excel comportant par exemple la liste des
classeurs proposés en téléchargement sur excelabo.
Quand quelqu'un comme Michel Holderitz me propose un classeur (je dis ça
parce que je me rends compte que justement j'ai oublié de mettre celui
qu'il m'a proposé en ligne hier... ), j'ouvre mon classeur excel et je
lance un userform "nouveau classeur" qui me permet de renseigner les
différentes rubriques nécessaires.
Par une subtile macro liée à un bouton d'un bleu du plus bel effet à mon
gout, je génère à partir de ce classeur une feuille "nouveau.sql"
contenant les instructions pour insérer ces données dans la base mysql
qui est hébergée chez online.
Ensuite et c'est à partir de là que je voudrais automatiser les choses,
j'ouvre mon fureteur préféré, j'ouvre la page php-myadmin d'excelabo qui
n'est jamais qu'une interface web avec ma base mysql, je sélectionne
l'emplacement de mon fichier nouveau.sql sur mon disque dur et je lui
demande d'exécuter la requête. Les nouveaux enregistrements sont alors
ajoutés à la base existante.
Ce qui serait vraiment mais vraiment génial ce serait de pouvoir lancer
toutes ces opérations depuis un bouton placé dans mon classeur excel.
Toutes idées, surtout géniales très bienvenues :-)
Et je suis ravie de voir que je ne suis pas la seule à être intéressée :-)
--
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
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.
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. ! Pourtant je suis sure qu'il pourrait avoir de bonnes idées en la matière. En tous cas, je suis toujours très très intéressée.
En ce qui me concerne voici la situation que je cherche à résoudre : j'ai sur mon PC un classeur excel comportant par exemple la liste des classeurs proposés en téléchargement sur excelabo. Quand quelqu'un comme Michel Holderitz me propose un classeur (je dis ça parce que je me rends compte que justement j'ai oublié de mettre celui qu'il m'a proposé en ligne hier... ), j'ouvre mon classeur excel et je lance un userform "nouveau classeur" qui me permet de renseigner les différentes rubriques nécessaires. Par une subtile macro liée à un bouton d'un bleu du plus bel effet à mon gout, je génère à partir de ce classeur une feuille "nouveau.sql" contenant les instructions pour insérer ces données dans la base mysql qui est hébergée chez online. Ensuite et c'est à partir de là que je voudrais automatiser les choses, j'ouvre mon fureteur préféré, j'ouvre la page php-myadmin d'excelabo qui n'est jamais qu'une interface web avec ma base mysql, je sélectionne l'emplacement de mon fichier nouveau.sql sur mon disque dur et je lui demande d'exécuter la requête. Les nouveaux enregistrements sont alors ajoutés à la base existante. Ce qui serait vraiment mais vraiment génial ce serait de pouvoir lancer toutes ces opérations depuis un bouton placé dans mon classeur excel.
Toutes idées, surtout géniales très bienvenues :-) Et je suis ravie de voir que je ne suis pas la seule à être intéressée :-) --
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Christian Herbé
Ah que ce mail me va droit au coeur !
qu'est-ce que tu crois; je garde en mémoire les demandes quand je pense qu'une solution est possible tout en n'ayant pas la réponse sous le coude. Je pense également à ta question sur les solutions graphiques à trouver.
Ce qui serait vraiment mais vraiment génial ce serait de pouvoir lancer toutes ces opérations depuis un bouton placé dans mon classeur excel.
Je ne vois pas vraiment d'autre moyen que l'usage de Winsock mais je viens de me rendre compte qu'il n'est pas dispo en VBA. Il faut registrer l'activeX à l'aide de VB. Je reflechis tout en écrivant ce qui me fait penser à une autre piste à l'aide des commandes shell: FTP depuis DOS puis exécuter le navigateur soit en shell en mode réduit avec l'adresse de la page web en option, soit le piloter avec des commandes send ... mais ce n'est pas très propre. A vérifier !
Ah que ce mail me va droit au coeur !
qu'est-ce que tu crois; je garde en mémoire les demandes quand je pense
qu'une solution est possible tout en n'ayant pas la réponse sous le coude.
Je pense également à ta question sur les solutions graphiques à trouver.
Ce qui serait vraiment mais vraiment génial ce serait de pouvoir lancer
toutes ces opérations depuis un bouton placé dans mon classeur excel.
Je ne vois pas vraiment d'autre moyen que l'usage de Winsock mais je
viens de me rendre compte qu'il n'est pas dispo en VBA. Il faut
registrer l'activeX à l'aide de VB.
Je reflechis tout en écrivant ce qui me fait penser à une autre piste à
l'aide des commandes shell:
FTP depuis DOS puis exécuter le navigateur soit en shell en mode réduit
avec l'adresse de la page web en option,
soit le piloter avec des commandes send ... mais ce n'est pas très
propre. A vérifier !
qu'est-ce que tu crois; je garde en mémoire les demandes quand je pense qu'une solution est possible tout en n'ayant pas la réponse sous le coude. Je pense également à ta question sur les solutions graphiques à trouver.
Ce qui serait vraiment mais vraiment génial ce serait de pouvoir lancer toutes ces opérations depuis un bouton placé dans mon classeur excel.
Je ne vois pas vraiment d'autre moyen que l'usage de Winsock mais je viens de me rendre compte qu'il n'est pas dispo en VBA. Il faut registrer l'activeX à l'aide de VB. Je reflechis tout en écrivant ce qui me fait penser à une autre piste à l'aide des commandes shell: FTP depuis DOS puis exécuter le navigateur soit en shell en mode réduit avec l'adresse de la page web en option, soit le piloter avec des commandes send ... mais ce n'est pas très propre. A vérifier !
Misange
Christian Herbé wrote:
qu'est-ce que tu crois; je garde en mémoire les demandes quand je pense qu'une solution est possible tout en n'ayant pas la réponse sous le coude. ;-)
FTP depuis DOS puis exécuter le navigateur soit en shell en mode réduit avec l'adresse de la page web en option, soit le piloter avec des commandes send ... mais ce n'est pas très propre. A vérifier !
perso je n'utilise pas de ftp... Je n'ai pas accès par ftp en tous cas au répertoire dans lequel est situé ma base mysql sur online. Je peux y accéder par php depuis le navigateur mais pas autrement.
--
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Christian Herbé wrote:
qu'est-ce que tu crois; je garde en mémoire les demandes quand je pense
qu'une solution est possible tout en n'ayant pas la réponse sous le coude.
;-)
FTP depuis DOS puis exécuter le navigateur soit en shell en mode réduit
avec l'adresse de la page web en option,
soit le piloter avec des commandes send ... mais ce n'est pas très
propre. A vérifier !
perso je n'utilise pas de ftp... Je n'ai pas accès par ftp en tous cas
au répertoire dans lequel est situé ma base mysql sur online. Je peux y
accéder par php depuis le navigateur mais pas autrement.
--
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
qu'est-ce que tu crois; je garde en mémoire les demandes quand je pense qu'une solution est possible tout en n'ayant pas la réponse sous le coude. ;-)
FTP depuis DOS puis exécuter le navigateur soit en shell en mode réduit avec l'adresse de la page web en option, soit le piloter avec des commandes send ... mais ce n'est pas très propre. A vérifier !
perso je n'utilise pas de ftp... Je n'ai pas accès par ftp en tous cas au répertoire dans lequel est situé ma base mysql sur online. Je peux y accéder par php depuis le navigateur mais pas autrement.
--
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Christian Herbé
perso je n'utilise pas de ftp... Je peux y accéder par php depuis le navigateur mais pas autrement.
Tu es sure ? Je viens de faire un test sur free: il faut créer le fichier toto.txt contenant les commandes FTP:
open ftpperso.free.fr user mon_login mon_mot_de_passe lcd c:sous_dossier_sur_la_machine_locale cd sous_dossier_sur_le_serveur put essai.txt by
Depuis la fenêtre DOS , ou depuis VBA par shell: ftp -i -n -v -s:toto.txt
ET CA MARCHE !
perso je n'utilise pas de ftp... Je peux y
accéder par php depuis le navigateur mais pas autrement.
Tu es sure ?
Je viens de faire un test sur free:
il faut créer le fichier toto.txt contenant les commandes FTP:
open ftpperso.free.fr
user mon_login
mon_mot_de_passe
lcd c:sous_dossier_sur_la_machine_locale
cd sous_dossier_sur_le_serveur
put essai.txt
by
Depuis la fenêtre DOS , ou depuis VBA par shell:
ftp -i -n -v -s:toto.txt
perso je n'utilise pas de ftp... Je peux y accéder par php depuis le navigateur mais pas autrement.
Tu es sure ? Je viens de faire un test sur free: il faut créer le fichier toto.txt contenant les commandes FTP:
open ftpperso.free.fr user mon_login mon_mot_de_passe lcd c:sous_dossier_sur_la_machine_locale cd sous_dossier_sur_le_serveur put essai.txt by
Depuis la fenêtre DOS , ou depuis VBA par shell: ftp -i -n -v -s:toto.txt
ET CA MARCHE !
Misange
Christian Herbé wrote:
perso je n'utilise pas de ftp... Je peux y accéder par php depuis le navigateur mais pas autrement.
Tu es sure ? Je viens de faire un test sur free: il faut créer le fichier toto.txt contenant les commandes FTP:
open ftpperso.free.fr user mon_login mon_mot_de_passe lcd c:sous_dossier_sur_la_machine_locale cd sous_dossier_sur_le_serveur put essai.txt by
Depuis la fenêtre DOS , ou depuis VBA par shell: ftp -i -n -v -s:toto.txt
ET CA MARCHE !
Mettre un fichier dans le dossier principal oui, ca je veux bien, mais
le dossier mysql n'est pas accessible par FTP. Avec FTP expert par ex je vois dans online un dossier www et un dossier mysql mais si je clique sur ce dernier, il ne s'ouvre pas... Par ailleurs, même s'il s'ouvrait, le pb n'est pas de déposer un fichier sur le serveur mais bien de faire ingurgiter à la base mysql les infos qu'il contient non ? Crois tu que ce soit plus facile de faire cela si le fichier est sur le serveur ? Si oui tu as déjà fait la première étape... Reste la suite. Perso je ne suis pas du tout convaincue qu'il y a ait besoin de mettre le fichier sur le serveur. Aujourd'hui en tous cas,ce n'est pas de cette façon que je procède. Oui je sais la critique est facile et l'art... tout un art :-) Tous mes encouragements t'accompagnent, comme dit Peter, j'ai atteint les limites de mon incompétence maximale (et donc je devrais être chef)
--
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Christian Herbé wrote:
perso je n'utilise pas de ftp... Je peux y accéder par php depuis le
navigateur mais pas autrement.
Tu es sure ?
Je viens de faire un test sur free:
il faut créer le fichier toto.txt contenant les commandes FTP:
open ftpperso.free.fr
user mon_login
mon_mot_de_passe
lcd c:sous_dossier_sur_la_machine_locale
cd sous_dossier_sur_le_serveur
put essai.txt
by
Depuis la fenêtre DOS , ou depuis VBA par shell:
ftp -i -n -v -s:toto.txt
ET CA MARCHE !
Mettre un fichier dans le dossier principal oui, ca je veux bien, mais
le dossier mysql n'est pas accessible par FTP. Avec FTP expert par ex je
vois dans online un dossier www et un dossier mysql mais si je clique
sur ce dernier, il ne s'ouvre pas...
Par ailleurs, même s'il s'ouvrait, le pb n'est pas de déposer un fichier
sur le serveur mais bien de faire ingurgiter à la base mysql les infos
qu'il contient non ?
Crois tu que ce soit plus facile de faire cela si le fichier est sur le
serveur ? Si oui tu as déjà fait la première étape... Reste la suite.
Perso je ne suis pas du tout convaincue qu'il y a ait besoin de mettre
le fichier sur le serveur. Aujourd'hui en tous cas,ce n'est pas de cette
façon que je procède. Oui je sais la critique est facile et l'art...
tout un art :-) Tous mes encouragements t'accompagnent, comme dit Peter,
j'ai atteint les limites de mon incompétence maximale (et donc je
devrais être chef)
--
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
perso je n'utilise pas de ftp... Je peux y accéder par php depuis le navigateur mais pas autrement.
Tu es sure ? Je viens de faire un test sur free: il faut créer le fichier toto.txt contenant les commandes FTP:
open ftpperso.free.fr user mon_login mon_mot_de_passe lcd c:sous_dossier_sur_la_machine_locale cd sous_dossier_sur_le_serveur put essai.txt by
Depuis la fenêtre DOS , ou depuis VBA par shell: ftp -i -n -v -s:toto.txt
ET CA MARCHE !
Mettre un fichier dans le dossier principal oui, ca je veux bien, mais
le dossier mysql n'est pas accessible par FTP. Avec FTP expert par ex je vois dans online un dossier www et un dossier mysql mais si je clique sur ce dernier, il ne s'ouvre pas... Par ailleurs, même s'il s'ouvrait, le pb n'est pas de déposer un fichier sur le serveur mais bien de faire ingurgiter à la base mysql les infos qu'il contient non ? Crois tu que ce soit plus facile de faire cela si le fichier est sur le serveur ? Si oui tu as déjà fait la première étape... Reste la suite. Perso je ne suis pas du tout convaincue qu'il y a ait besoin de mettre le fichier sur le serveur. Aujourd'hui en tous cas,ce n'est pas de cette façon que je procède. Oui je sais la critique est facile et l'art... tout un art :-) Tous mes encouragements t'accompagnent, comme dit Peter, j'ai atteint les limites de mon incompétence maximale (et donc je devrais être chef)
--
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
popi
Salut Misange et Christian,
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.
Vba permet d'ouvrir une url avec IE (par ex), page web donc, codée en php qui upload le fichier et qui le traite pour une mise à jour d'une table, çà le ferait ?
@+ popi
Salut Misange et Christian,
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.
Vba permet d'ouvrir une url avec IE (par ex), page web donc, codée en php
qui upload le fichier et qui le traite pour une mise à jour d'une table, çà
le ferait ?
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.
Vba permet d'ouvrir une url avec IE (par ex), page web donc, codée en php qui upload le fichier et qui le traite pour une mise à jour d'une table, çà le ferait ?