Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mise à jour d'un classeur distant

9 réponses
Avatar
GérardJean
Bonjour,

Je désire via VBA charger une classeur Excel distant, présent sur un site
http, le modifier puis le sauvegarder sur le même site.

Le chargement avec l'instruction workbooks.open (""http://nom du site/nom du
classeur.xls") marche bien, par contre la sauvegarde ne s'effectue pas.

Je remercie celles et ceux qui pourraient me solutionner ce pb.

Cdt

9 réponses

Avatar
MichDenis
Quand tu as enregistré ton classeur pour la première fois, dans la fenêtre
"enregistrer sous" lorsque tu as choisi le type de fichier : HTML, tu dois
avoir coché l'option suivante : "ajouté l'interactivité"





"GérardJean" a écrit dans le message de news:

Bonjour,

Je désire via VBA charger une classeur Excel distant, présent sur un site
http, le modifier puis le sauvegarder sur le même site.

Le chargement avec l'instruction workbooks.open (""http://nom du site/nom du
classeur.xls") marche bien, par contre la sauvegarde ne s'effectue pas.

Je remercie celles et ceux qui pourraient me solutionner ce pb.

Cdt
Avatar
GérardJean
Merci pour ta réponse, mais je souhaite que le fichier à sauvegarder reste un
fichier excel (type xls) et le faire en VBA (automatisme souhaité).


Quand tu as enregistré ton classeur pour la première fois, dans la fenêtre
"enregistrer sous" lorsque tu as choisi le type de fichier : HTML, tu dois
avoir coché l'option suivante : "ajouté l'interactivité"





"GérardJean" a écrit dans le message de news:

Bonjour,

Je désire via VBA charger une classeur Excel distant, présent sur un site
http, le modifier puis le sauvegarder sur le même site.

Le chargement avec l'instruction workbooks.open (""http://nom du site/nom du
classeur.xls") marche bien, par contre la sauvegarde ne s'effectue pas.

Je remercie celles et ceux qui pourraient me solutionner ce pb.

Cdt






Avatar
Misange
bonjour
dans ce cas tu dois ajouter un transfert par FTP sur l'hébergeur. C'est
tout à fait faisable en VBA.

tu trouveras un exemple à télécharger ici
http://www.excelabo.net/moteurs/compteclic.php?nom½f-transfertftp

et des explications (à adapter, sur ce tuto il s'agit de trnsférer un
fichier php mais le principe reste le même

http://www.excelabo.net/php/excelphp.php#ftp


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Merci pour ta réponse, mais je souhaite que le fichier à sauvegarder reste un
fichier excel (type xls) et le faire en VBA (automatisme souhaité).


Quand tu as enregistré ton classeur pour la première fois, dans la fenêtre
"enregistrer sous" lorsque tu as choisi le type de fichier : HTML, tu dois
avoir coché l'option suivante : "ajouté l'interactivité"





"GérardJean" a écrit dans le message de news:

Bonjour,

Je désire via VBA charger une classeur Excel distant, présent sur un site
http, le modifier puis le sauvegarder sur le même site.

Le chargement avec l'instruction workbooks.open (""http://nom du site/nom du
classeur.xls") marche bien, par contre la sauvegarde ne s'effectue pas.

Je remercie celles et ceux qui pourraient me solutionner ce pb.

Cdt








Avatar
GérardJean
Bonjour,

merci pour ta réponse, le lien FTP fonctionne parfaitement bien



bonjour
dans ce cas tu dois ajouter un transfert par FTP sur l'hébergeur. C'est
tout à fait faisable en VBA.

tu trouveras un exemple à télécharger ici
http://www.excelabo.net/moteurs/compteclic.php?nom½f-transfertftp

et des explications (à adapter, sur ce tuto il s'agit de trnsférer un
fichier php mais le principe reste le même

http://www.excelabo.net/php/excelphp.php#ftp


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Merci pour ta réponse, mais je souhaite que le fichier à sauvegarder reste un
fichier excel (type xls) et le faire en VBA (automatisme souhaité).


Quand tu as enregistré ton classeur pour la première fois, dans la fenêtre
"enregistrer sous" lorsque tu as choisi le type de fichier : HTML, tu dois
avoir coché l'option suivante : "ajouté l'interactivité"





"GérardJean" a écrit dans le message de news:

Bonjour,

Je désire via VBA charger une classeur Excel distant, présent sur un site
http, le modifier puis le sauvegarder sur le même site.

Le chargement avec l'instruction workbooks.open (""http://nom du site/nom du
classeur.xls") marche bien, par contre la sauvegarde ne s'effectue pas.

Je remercie celles et ceux qui pourraient me solutionner ce pb.

Cdt











Avatar
Misange
merci du retour ;-)
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour,

merci pour ta réponse, le lien FTP fonctionne parfaitement bien



bonjour
dans ce cas tu dois ajouter un transfert par FTP sur l'hébergeur. C'est
tout à fait faisable en VBA.

tu trouveras un exemple à télécharger ici
http://www.excelabo.net/moteurs/compteclic.php?nom½f-transfertftp

et des explications (à adapter, sur ce tuto il s'agit de trnsférer un
fichier php mais le principe reste le même

http://www.excelabo.net/php/excelphp.php#ftp


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Merci pour ta réponse, mais je souhaite que le fichier à sauvegarder reste un
fichier excel (type xls) et le faire en VBA (automatisme souhaité).


Quand tu as enregistré ton classeur pour la première fois, dans la fenêtre
"enregistrer sous" lorsque tu as choisi le type de fichier : HTML, tu dois
avoir coché l'option suivante : "ajouté l'interactivité"





"GérardJean" a écrit dans le message de news:

Bonjour,

Je désire via VBA charger une classeur Excel distant, présent sur un site
http, le modifier puis le sauvegarder sur le même site.

Le chargement avec l'instruction workbooks.open (""http://nom du site/nom du
classeur.xls") marche bien, par contre la sauvegarde ne s'effectue pas.

Je remercie celles et ceux qui pourraient me solutionner ce pb.

Cdt












Avatar
lemath
Bonjour à vous,
j'ai été heureux d'arriver sur le forum et de découvrir cette discussion car
j'ai le même problème et je cherche la même solution ! J'ai bien pris
connaissance du message de Misange et de la commande FTP Mais je n'ai pas
tout pigé. Serait-il possible d'avoir un exemple pour fichier .xls
Est-ce que la commande FTP intégré ds du code VBA au sein d'un fichier .XLS
que l'on a ouvert via une page html puis que l'on a modifié puisse être
sauvegardé à distance sur le serveur en cliquant simplement sur un bouton
activeX qui exécutera le code VBA contenant la commande FTP ?

Merci d'avance pour votre réponse
Lemath


"GérardJean" a écrit dans le message
de news:
Bonjour,

merci pour ta réponse, le lien FTP fonctionne parfaitement bien



bonjour
dans ce cas tu dois ajouter un transfert par FTP sur l'hébergeur. C'est
tout à fait faisable en VBA.

tu trouveras un exemple à télécharger ici
http://www.excelabo.net/moteurs/compteclic.php?nom½f-transfertftp

et des explications (à adapter, sur ce tuto il s'agit de trnsférer un
fichier php mais le principe reste le même

http://www.excelabo.net/php/excelphp.php#ftp


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Merci pour ta réponse, mais je souhaite que le fichier à sauvegarder
reste un
fichier excel (type xls) et le faire en VBA (automatisme souhaité).


Quand tu as enregistré ton classeur pour la première fois, dans la
fenêtre
"enregistrer sous" lorsque tu as choisi le type de fichier : HTML, tu
dois
avoir coché l'option suivante : "ajouté l'interactivité"





"GérardJean" a écrit dans le
message de news:

Bonjour,

Je désire via VBA charger une classeur Excel distant, présent sur un
site
http, le modifier puis le sauvegarder sur le même site.

Le chargement avec l'instruction workbooks.open (""http://nom du
site/nom du
classeur.xls") marche bien, par contre la sauvegarde ne s'effectue
pas.

Je remercie celles et ceux qui pourraient me solutionner ce pb.

Cdt













Avatar
Misange
Bonjour,

Attention, tu ne peux pas transférer le classeur contenant le code du
transfert...
Il faut donc prévoir soit de générer une copie du classeur et c'est
cette copie que tu uploades sur le site, soit avoir deux classeurs
associés, un qui contient les données l'autre qui fait les transferts.
Au choix !

Il faut tout d'abord :
1- Disposer d'un serveur FTP avec un répertoire sur lesquels tu as mis
les droits en ECRITURE (Chmodw7)
2- Connaître l'adresse FTP du serveur, le login et le mot de passe pour
s'y connecter

Rentre ces données sur une feuille de ton classeur nommée ici FTP (adapte !)
en A10, l'adresse FTP du serveur. Par exemple : ftpperso.free.fr
en A11 ton login FTP (voir avec votre hébergeur)
en A12 ton mot de passe (FTP pas email !)
en A13, l'adresse exacte du dossier,y compris les slash /, dans lequel
ton fichier doit être transféré. Cela donne quelque chose de la forme
/upload/ (si ton dossier s'appelle upload), mais suivant l'hébergeur
cela peut être beaucoup plus compliqué !
/domains/votresite.extension/public_html/dossier/sous-sossier/



Sub ExportFtp() ', Christian Herbé, Michel Pierron, Flo Cabon
'transfère un fichier (ici un classeur nommé transfert2.xls)
'du répertoire local vers le répertoire adhoc du serveur ftp (upload)
Dim InternetOK
Dim FtpOK
Dim FtpServeur
Dim FtpLogin
Dim FtpPass
Dim DossierLocal
Dim DossierDistant
Dim Result
Dim Internet_OK
Dim FTP_OK
Dim Select_DossierDistant
Dim Resultat
Dim res

DossierLocal = ThisWorkbook.Path & ""
DossierDistant = Range("ftp!A13").Value
FtpServeur = Range("ftp!A10").Value
FtpLogin = Range("ftp!A11").Value
FtpPass = Range("ftp!A12").Value

'Vérifier la connection à internet
InternetOK = InternetOpen("PutFtpFile", 1, "", "", 0)
If InternetOK = 0 Then
MsgBox "connection internet impossible"
Exit Sub
End If
Const INTERNET_FLAG_PASSIVE = &H8000000
'Vérifier l'accès ftp
FtpOK = InternetConnect(InternetOK, FtpServeur, 21, FtpLogin, FtpPass,
1, INTERNET_FLAG_PASSIVE, 0)
If FtpOK = 0 Then
MsgBox "connection FTP impossible"
Exit Sub
End If


'vérifier le dossier distant
Select_DossierDistant = FtpSetCurrentDirectory(FtpOK, DossierDistant)
If Select_DossierDistant = 0 Then
MsgBox "impossible de trouver le répertoire distant "
Exit Sub
End If


Resultat = ""
'adresses du ou des fichiers à transférer
FichierLocal = DossierLocal & "transfert2.xls"
FichierDistant = "transfert2.xls"

'transférer les fichiers
Const FTP_TRANSFER_TYPE_BINARY = &H2
'mode passif proxy
'transfert du fichier sql
succès = FtpPutFile(FtpOK, FichierLocal, FichierDistant,
FTP_TRANSFER_TYPE_BINARY, 0)
If succès Then
Result = FichierDistant & " a été transféré "
Else
Result = FichierDistant & " n'a pas pu être transféré"
End If


'annoncer le résultat de l'opération
If Result <> "" Then
MsgBox Result
Else
MsgBox "aucun fichier transféré"
End If


'fermer les pointeurs, ménage
InternetCloseHandle FTP_OK
InternetCloseHandle Internet_OK


End Sub

A toi de jouer !


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour à vous,
j'ai été heureux d'arriver sur le forum et de découvrir cette discussion car
j'ai le même problème et je cherche la même solution ! J'ai bien pris
connaissance du message de Misange et de la commande FTP Mais je n'ai pas
tout pigé. Serait-il possible d'avoir un exemple pour fichier .xls
Est-ce que la commande FTP intégré ds du code VBA au sein d'un fichier .XLS
que l'on a ouvert via une page html puis que l'on a modifié puisse être
sauvegardé à distance sur le serveur en cliquant simplement sur un bouton
activeX qui exécutera le code VBA contenant la commande FTP ?

Merci d'avance pour votre réponse
Lemath


"GérardJean" a écrit dans le message
de news:
Bonjour,

merci pour ta réponse, le lien FTP fonctionne parfaitement bien



bonjour
dans ce cas tu dois ajouter un transfert par FTP sur l'hébergeur. C'est
tout à fait faisable en VBA.

tu trouveras un exemple à télécharger ici
http://www.excelabo.net/moteurs/compteclic.php?nom½f-transfertftp

et des explications (à adapter, sur ce tuto il s'agit de trnsférer un
fichier php mais le principe reste le même

http://www.excelabo.net/php/excelphp.php#ftp


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Merci pour ta réponse, mais je souhaite que le fichier à sauvegarder
reste un
fichier excel (type xls) et le faire en VBA (automatisme souhaité).


Quand tu as enregistré ton classeur pour la première fois, dans la
fenêtre
"enregistrer sous" lorsque tu as choisi le type de fichier : HTML, tu
dois
avoir coché l'option suivante : "ajouté l'interactivité"





"GérardJean" a écrit dans le
message de news:

Bonjour,

Je désire via VBA charger une classeur Excel distant, présent sur un
site
http, le modifier puis le sauvegarder sur le même site.

Le chargement avec l'instruction workbooks.open (""http://nom du
site/nom du
classeur.xls") marche bien, par contre la sauvegarde ne s'effectue
pas.

Je remercie celles et ceux qui pourraient me solutionner ce pb.

Cdt
















Avatar
Misange
Complément de réflexion:

Il y a pour moi un problème majeur à résoudre dans ce genre de
problématique, c'est celui de la sécurité.
Je ne peux pas te fournir un exemple qui fonctionne (celui fourni l'est)
parce que ce serait du même coup de donner accès au FTP d'excelabo par
exemple. Il n'y a actuellement aucun moyen sérieux de rendre inviolable
le code d'un classeur excel. Par conséquent, si tu veux utiliser ce
genre de stratégie, cela implique que les personnes ayant accès au
classeur sur le web ont du même coup accès à tes codes sur le serveur.
Hyper dangereux... C'est la porte ouverte au mieux au spam de site, au
pire à des activités délictueuses (diffusion de virus..) dont tu serais
tenu responsable par ton hébergeur et au regard de la loi.

J'utilise la proc citée pour transférer par FTP les mises à jour
d'excelabo : la base de données initiale est en fait un simple classeur
excel( qui commence à devenir assez conséquent !). A chaque mise à jour,
je génère par VBA un fichier texte (en fait php) qui est tranféré sur le
serveur et lu par internet explorer. Ce fichier contient les
instructions php qui mettent à jour sur le serveur distant la base de
données mysql qui sert à gérer le contenu des pages du site. A aucun
moment avec ce système, les fichiers transférés ne contiennent les login
et mots de passe du serveur.

Si tu veux permettre à des collaborateurs d'accéder à un fichier excel,
de le modifier en local puis de remettre en ligne la version modifiée
sans que jamais ils n'aient accès aux codes de ton serveur, je te
conseille une solution du genre de celle mise en place sur xlwiki qui
permet à des utilisateurs enregistrés d'uploader des fichiers. Cette
solution permet de plus de gérer exactement qui a le droit de lire une
page, de la modifier ou de la commenter.


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour,

Attention, tu ne peux pas transférer le classeur contenant le code du
transfert...
Il faut donc prévoir soit de générer une copie du classeur et c'est
cette copie que tu uploades sur le site, soit avoir deux classeurs
associés, un qui contient les données l'autre qui fait les transferts.
Au choix !

Il faut tout d'abord :
1- Disposer d'un serveur FTP avec un répertoire sur lesquels tu as mis
les droits en ECRITURE (Chmodw7)
2- Connaître l'adresse FTP du serveur, le login et le mot de passe pour
s'y connecter

Rentre ces données sur une feuille de ton classeur nommée ici FTP
(adapte !)
en A10, l'adresse FTP du serveur. Par exemple : ftpperso.free.fr
en A11 ton login FTP (voir avec votre hébergeur)
en A12 ton mot de passe (FTP pas email !)
en A13, l'adresse exacte du dossier,y compris les slash /, dans lequel
ton fichier doit être transféré. Cela donne quelque chose de la forme
/upload/ (si ton dossier s'appelle upload), mais suivant l'hébergeur
cela peut être beaucoup plus compliqué !
/domains/votresite.extension/public_html/dossier/sous-sossier/



Sub ExportFtp() ', Christian Herbé, Michel Pierron, Flo Cabon
'transfère un fichier (ici un classeur nommé transfert2.xls)
'du répertoire local vers le répertoire adhoc du serveur ftp (upload)
Dim InternetOK
Dim FtpOK
Dim FtpServeur
Dim FtpLogin
Dim FtpPass
Dim DossierLocal
Dim DossierDistant
Dim Result
Dim Internet_OK
Dim FTP_OK
Dim Select_DossierDistant
Dim Resultat
Dim res

DossierLocal = ThisWorkbook.Path & ""
DossierDistant = Range("ftp!A13").Value
FtpServeur = Range("ftp!A10").Value
FtpLogin = Range("ftp!A11").Value
FtpPass = Range("ftp!A12").Value

'Vérifier la connection à internet
InternetOK = InternetOpen("PutFtpFile", 1, "", "", 0)
If InternetOK = 0 Then
MsgBox "connection internet impossible"
Exit Sub
End If
Const INTERNET_FLAG_PASSIVE = &H8000000
'Vérifier l'accès ftp
FtpOK = InternetConnect(InternetOK, FtpServeur, 21, FtpLogin, FtpPass,
1, INTERNET_FLAG_PASSIVE, 0)
If FtpOK = 0 Then
MsgBox "connection FTP impossible"
Exit Sub
End If


'vérifier le dossier distant
Select_DossierDistant = FtpSetCurrentDirectory(FtpOK, DossierDistant)
If Select_DossierDistant = 0 Then
MsgBox "impossible de trouver le répertoire distant "
Exit Sub
End If


Resultat = ""
'adresses du ou des fichiers à transférer
FichierLocal = DossierLocal & "transfert2.xls"
FichierDistant = "transfert2.xls"

'transférer les fichiers
Const FTP_TRANSFER_TYPE_BINARY = &H2
'mode passif proxy
'transfert du fichier sql
succès = FtpPutFile(FtpOK, FichierLocal, FichierDistant,
FTP_TRANSFER_TYPE_BINARY, 0)
If succès Then
Result = FichierDistant & " a été transféré "
Else
Result = FichierDistant & " n'a pas pu être transféré"
End If


'annoncer le résultat de l'opération
If Result <> "" Then
MsgBox Result
Else
MsgBox "aucun fichier transféré"
End If


'fermer les pointeurs, ménage
InternetCloseHandle FTP_OK
InternetCloseHandle Internet_OK


End Sub

A toi de jouer !


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour à vous,
j'ai été heureux d'arriver sur le forum et de découvrir cette
discussion car j'ai le même problème et je cherche la même solution !
J'ai bien pris connaissance du message de Misange et de la commande
FTP Mais je n'ai pas tout pigé. Serait-il possible d'avoir un exemple
pour fichier .xls
Est-ce que la commande FTP intégré ds du code VBA au sein d'un fichier
.XLS que l'on a ouvert via une page html puis que l'on a modifié
puisse être sauvegardé à distance sur le serveur en cliquant
simplement sur un bouton activeX qui exécutera le code VBA contenant
la commande FTP ?

Merci d'avance pour votre réponse
Lemath


"GérardJean" a écrit dans le
message de news:
Bonjour,

merci pour ta réponse, le lien FTP fonctionne parfaitement bien



bonjour
dans ce cas tu dois ajouter un transfert par FTP sur l'hébergeur. C'est
tout à fait faisable en VBA.

tu trouveras un exemple à télécharger ici
http://www.excelabo.net/moteurs/compteclic.php?nom½f-transfertftp

et des explications (à adapter, sur ce tuto il s'agit de trnsférer un
fichier php mais le principe reste le même

http://www.excelabo.net/php/excelphp.php#ftp


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Merci pour ta réponse, mais je souhaite que le fichier à
sauvegarder reste un
fichier excel (type xls) et le faire en VBA (automatisme souhaité).


Quand tu as enregistré ton classeur pour la première fois, dans la
fenêtre
"enregistrer sous" lorsque tu as choisi le type de fichier : HTML,
tu dois
avoir coché l'option suivante : "ajouté l'interactivité"





"GérardJean" a écrit dans le
message de news:

Bonjour,

Je désire via VBA charger une classeur Excel distant, présent sur
un site
http, le modifier puis le sauvegarder sur le même site.

Le chargement avec l'instruction workbooks.open (""http://nom du
site/nom du
classeur.xls") marche bien, par contre la sauvegarde ne s'effectue
pas.

Je remercie celles et ceux qui pourraient me solutionner ce pb.

Cdt


















Avatar
lemath
Bonjour,
Il y a quand-même des gens "vachement biens" et pas de doute, tu en fais
partie !

Tout tout grand merci pour tes explications très rapides ! Maintenant j'y
vois beaucoup plus clair et je comprends exactement ce dont tu veux parler à
propos de la sécurité ! Je vais donc essayer de mettre tout ça en musique !
Bonne fin de journée.
A+ ( sur Excelabo --> super site que je suis très content d'avoir découvert
par hasard )

Lemath


"Misange" a écrit dans le message de news:

Complément de réflexion:

Il y a pour moi un problème majeur à résoudre dans ce genre de
problématique, c'est celui de la sécurité.
Je ne peux pas te fournir un exemple qui fonctionne (celui fourni l'est)
parce que ce serait du même coup de donner accès au FTP d'excelabo par
exemple. Il n'y a actuellement aucun moyen sérieux de rendre inviolable le
code d'un classeur excel. Par conséquent, si tu veux utiliser ce genre de
stratégie, cela implique que les personnes ayant accès au classeur sur le
web ont du même coup accès à tes codes sur le serveur. Hyper dangereux...
C'est la porte ouverte au mieux au spam de site, au pire à des activités
délictueuses (diffusion de virus..) dont tu serais tenu responsable par
ton hébergeur et au regard de la loi.

J'utilise la proc citée pour transférer par FTP les mises à jour
d'excelabo : la base de données initiale est en fait un simple classeur
excel( qui commence à devenir assez conséquent !). A chaque mise à jour,
je génère par VBA un fichier texte (en fait php) qui est tranféré sur le
serveur et lu par internet explorer. Ce fichier contient les instructions
php qui mettent à jour sur le serveur distant la base de données mysql qui
sert à gérer le contenu des pages du site. A aucun moment avec ce système,
les fichiers transférés ne contiennent les login et mots de passe du
serveur.

Si tu veux permettre à des collaborateurs d'accéder à un fichier excel, de
le modifier en local puis de remettre en ligne la version modifiée sans
que jamais ils n'aient accès aux codes de ton serveur, je te conseille une
solution du genre de celle mise en place sur xlwiki qui permet à des
utilisateurs enregistrés d'uploader des fichiers. Cette solution permet de
plus de gérer exactement qui a le droit de lire une page, de la modifier
ou de la commenter.


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour,

Attention, tu ne peux pas transférer le classeur contenant le code du
transfert...
Il faut donc prévoir soit de générer une copie du classeur et c'est cette
copie que tu uploades sur le site, soit avoir deux classeurs associés, un
qui contient les données l'autre qui fait les transferts. Au choix !

Il faut tout d'abord :
1- Disposer d'un serveur FTP avec un répertoire sur lesquels tu as mis
les droits en ECRITURE (Chmodw7)
2- Connaître l'adresse FTP du serveur, le login et le mot de passe pour
s'y connecter

Rentre ces données sur une feuille de ton classeur nommée ici FTP (adapte
!)
en A10, l'adresse FTP du serveur. Par exemple : ftpperso.free.fr
en A11 ton login FTP (voir avec votre hébergeur)
en A12 ton mot de passe (FTP pas email !)
en A13, l'adresse exacte du dossier,y compris les slash /, dans lequel
ton fichier doit être transféré. Cela donne quelque chose de la forme
/upload/ (si ton dossier s'appelle upload), mais suivant l'hébergeur cela
peut être beaucoup plus compliqué !
/domains/votresite.extension/public_html/dossier/sous-sossier/



Sub ExportFtp() ', Christian Herbé, Michel Pierron, Flo Cabon
'transfère un fichier (ici un classeur nommé transfert2.xls)
'du répertoire local vers le répertoire adhoc du serveur ftp (upload)
Dim InternetOK
Dim FtpOK
Dim FtpServeur
Dim FtpLogin
Dim FtpPass
Dim DossierLocal
Dim DossierDistant
Dim Result
Dim Internet_OK
Dim FTP_OK
Dim Select_DossierDistant
Dim Resultat
Dim res

DossierLocal = ThisWorkbook.Path & ""
DossierDistant = Range("ftp!A13").Value
FtpServeur = Range("ftp!A10").Value
FtpLogin = Range("ftp!A11").Value
FtpPass = Range("ftp!A12").Value

'Vérifier la connection à internet
InternetOK = InternetOpen("PutFtpFile", 1, "", "", 0)
If InternetOK = 0 Then
MsgBox "connection internet impossible"
Exit Sub
End If
Const INTERNET_FLAG_PASSIVE = &H8000000
'Vérifier l'accès ftp
FtpOK = InternetConnect(InternetOK, FtpServeur, 21, FtpLogin, FtpPass, 1,
INTERNET_FLAG_PASSIVE, 0)
If FtpOK = 0 Then
MsgBox "connection FTP impossible"
Exit Sub
End If


'vérifier le dossier distant
Select_DossierDistant = FtpSetCurrentDirectory(FtpOK, DossierDistant)
If Select_DossierDistant = 0 Then
MsgBox "impossible de trouver le répertoire distant "
Exit Sub
End If


Resultat = ""
'adresses du ou des fichiers à transférer
FichierLocal = DossierLocal & "transfert2.xls"
FichierDistant = "transfert2.xls"

'transférer les fichiers
Const FTP_TRANSFER_TYPE_BINARY = &H2
'mode passif proxy
'transfert du fichier sql
succès = FtpPutFile(FtpOK, FichierLocal, FichierDistant,
FTP_TRANSFER_TYPE_BINARY, 0)
If succès Then
Result = FichierDistant & " a été transféré "
Else
Result = FichierDistant & " n'a pas pu être transféré"
End If


'annoncer le résultat de l'opération
If Result <> "" Then
MsgBox Result
Else
MsgBox "aucun fichier transféré"
End If


'fermer les pointeurs, ménage
InternetCloseHandle FTP_OK
InternetCloseHandle Internet_OK


End Sub

A toi de jouer !


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour à vous,
j'ai été heureux d'arriver sur le forum et de découvrir cette discussion
car j'ai le même problème et je cherche la même solution ! J'ai bien
pris connaissance du message de Misange et de la commande FTP Mais je
n'ai pas tout pigé. Serait-il possible d'avoir un exemple pour fichier
.xls
Est-ce que la commande FTP intégré ds du code VBA au sein d'un fichier
.XLS que l'on a ouvert via une page html puis que l'on a modifié puisse
être sauvegardé à distance sur le serveur en cliquant simplement sur un
bouton activeX qui exécutera le code VBA contenant la commande FTP ?

Merci d'avance pour votre réponse
Lemath


"GérardJean" a écrit dans le
message de news:
Bonjour,

merci pour ta réponse, le lien FTP fonctionne parfaitement bien



bonjour
dans ce cas tu dois ajouter un transfert par FTP sur l'hébergeur.
C'est
tout à fait faisable en VBA.

tu trouveras un exemple à télécharger ici
http://www.excelabo.net/moteurs/compteclic.php?nom½f-transfertftp

et des explications (à adapter, sur ce tuto il s'agit de trnsférer un
fichier php mais le principe reste le même

http://www.excelabo.net/php/excelphp.php#ftp


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Merci pour ta réponse, mais je souhaite que le fichier à sauvegarder
reste un
fichier excel (type xls) et le faire en VBA (automatisme souhaité).


Quand tu as enregistré ton classeur pour la première fois, dans la
fenêtre
"enregistrer sous" lorsque tu as choisi le type de fichier : HTML,
tu dois
avoir coché l'option suivante : "ajouté l'interactivité"





"GérardJean" a écrit dans le
message de news:

Bonjour,

Je désire via VBA charger une classeur Excel distant, présent sur un
site
http, le modifier puis le sauvegarder sur le même site.

Le chargement avec l'instruction workbooks.open (""http://nom du
site/nom du
classeur.xls") marche bien, par contre la sauvegarde ne s'effectue
pas.

Je remercie celles et ceux qui pourraient me solutionner ce pb.

Cdt