Je recherche une méthode qui me permettrait depuis une macro vba, de
zipper des fichiers non pas présents sur mon disque local, mais
présents sur un site web.
J'ai winzip 8.0 sur mon PC et j'ai essayé avec la méthode shell mais
j'ai bien l'impression que Winzip ne permet pas de faire cela
directement.
Peut-être devrais-je passer par une phase de téléchargement des liens
http vers mon disque dur?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Philippe.R
Bonsoir Stéphane, Rien qui convienne ici : http://www.excelabo.net/moteurs/multixl.php ou bien là : http://groups.google.com/groups?as_q=zipper&ie=UTF-8&as_ugroup=microsoft.public.fr.excel&lr=&hl=fr -- Amicales Salutations XL 97 / 2000 / 2002 Retirer A_S_ pour répondre en privé.
"rederon" a écrit dans le message de news:
Bonjour à tous,
Je recherche une méthode qui me permettrait depuis une macro vba, de zipper des fichiers non pas présents sur mon disque local, mais présents sur un site web.
J'ai winzip 8.0 sur mon PC et j'ai essayé avec la méthode shell mais j'ai bien l'impression que Winzip ne permet pas de faire cela directement.
Peut-être devrais-je passer par une phase de téléchargement des liens http vers mon disque dur?
Toutes vos suggestions seront les bienvenues.
Je vous remercie par avance,
Stéphane
Bonsoir Stéphane,
Rien qui convienne ici :
http://www.excelabo.net/moteurs/multixl.php
ou bien là :
http://groups.google.com/groups?as_q=zipper&ie=UTF-8&as_ugroup=microsoft.public.fr.excel&lr=&hl=fr
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
"rederon" <rederon@free.fr> a écrit dans le message de
news:17df31ab.0409150207.5dfe099f@posting.google.com...
Bonjour à tous,
Je recherche une méthode qui me permettrait depuis une macro vba, de
zipper des fichiers non pas présents sur mon disque local, mais
présents sur un site web.
J'ai winzip 8.0 sur mon PC et j'ai essayé avec la méthode shell mais
j'ai bien l'impression que Winzip ne permet pas de faire cela
directement.
Peut-être devrais-je passer par une phase de téléchargement des liens
http vers mon disque dur?
Bonsoir Stéphane, Rien qui convienne ici : http://www.excelabo.net/moteurs/multixl.php ou bien là : http://groups.google.com/groups?as_q=zipper&ie=UTF-8&as_ugroup=microsoft.public.fr.excel&lr=&hl=fr -- Amicales Salutations XL 97 / 2000 / 2002 Retirer A_S_ pour répondre en privé.
"rederon" a écrit dans le message de news:
Bonjour à tous,
Je recherche une méthode qui me permettrait depuis une macro vba, de zipper des fichiers non pas présents sur mon disque local, mais présents sur un site web.
J'ai winzip 8.0 sur mon PC et j'ai essayé avec la méthode shell mais j'ai bien l'impression que Winzip ne permet pas de faire cela directement.
Peut-être devrais-je passer par une phase de téléchargement des liens http vers mon disque dur?
Toutes vos suggestions seront les bienvenues.
Je vous remercie par avance,
Stéphane
j
pour télécharger le fichier html :
1) méthode rapide mais pas très souple---------------------------------------------------------------
Declare Function DoFileDownload Lib "shdocvw.dll" (ByVal lpszFile As String) As Long Sub telecharge() DoFileDownload StrConv("http://jacxl.free.fr/cours_xl/ouvrir_web_suite.html", vbUnicode) End Sub
2) méthode plus souple mais plus lourde-------------------------------------------------------------
Declare Function OuvreInternet Lib "wininet" _ Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, _ ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long Declare Function fermeInternet Lib "wininet" _ Alias "InternetCloseHandle" (ByVal hInet As Long) As Integer Declare Function code_page Lib "wininet" _ Alias "InternetReadFile" (ByVal hFile As Long, ByVal sBuffer As String, _ ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer Declare Function Ouvrepage Lib "wininet" _ Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, _ ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, _ ByVal dwContext As Long) As Long
Sub télécharge_http() Dim texte_code As String * 1024
'connection au fichier à télécharger internet = OuvreInternet("", 1, vbNullString, vbNullString, 0) 'ouvre Internet 'URL = Ouvrepage(internet, fich, vbNullString, ByVal 0&, &H80000000, ByVal 0&) 'ouvre la page Web URL = Ouvrepage(internet, fich, "", 0, 0, 0) 'ouvre la page Web
'lecture du fichier par paquet de 1024 bytes txt = "" nb_caractères_lus = 1 Do While nb_caractères_lus > 0 code_page URL, texte_code, 1024, nb_caractères_lus txt = txt & Left(texte_code, nb_caractères_lus) Loop
'ménage fermeInternet URL 'ferme la page fermeInternet internet 'ferme Internet
'recopie dans un fichier Open "c:rien.html" For Output As #1 Print #1, txt Close #1
End Sub
---------------------------------------------------------------------------- ------------------------- détails sur http://jacxl.free.fr/cours_xl/cours_xl_jac.html#ouvrir_web_suite
Je recherche une méthode qui me permettrait depuis une macro vba, de zipper des fichiers non pas présents sur mon disque local, mais présents sur un site web.
J'ai winzip 8.0 sur mon PC et j'ai essayé avec la méthode shell mais j'ai bien l'impression que Winzip ne permet pas de faire cela directement.
Peut-être devrais-je passer par une phase de téléchargement des liens http vers mon disque dur?
Toutes vos suggestions seront les bienvenues.
Je vous remercie par avance,
Stéphane
pour télécharger le fichier html :
1) méthode rapide mais pas très
souple---------------------------------------------------------------
Declare Function DoFileDownload Lib "shdocvw.dll" (ByVal lpszFile As String)
As Long
Sub telecharge()
DoFileDownload
StrConv("http://jacxl.free.fr/cours_xl/ouvrir_web_suite.html", vbUnicode)
End Sub
2) méthode plus souple mais plus
lourde-------------------------------------------------------------
Declare Function OuvreInternet Lib "wininet" _
Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As
Long, _
ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags
As Long) As Long
Declare Function fermeInternet Lib "wininet" _
Alias "InternetCloseHandle" (ByVal hInet As Long) As Integer
Declare Function code_page Lib "wininet" _
Alias "InternetReadFile" (ByVal hFile As Long, ByVal sBuffer As String,
_
ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Declare Function Ouvrepage Lib "wininet" _
Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl
As String, _
ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal
dwFlags As Long, _
ByVal dwContext As Long) As Long
Sub télécharge_http()
Dim texte_code As String * 1024
'connection au fichier à télécharger
internet = OuvreInternet("", 1, vbNullString, vbNullString, 0) 'ouvre
Internet
'URL = Ouvrepage(internet, fich, vbNullString, ByVal 0&, &H80000000, ByVal
0&) 'ouvre la page Web
URL = Ouvrepage(internet, fich, "", 0, 0, 0) 'ouvre la page Web
'lecture du fichier par paquet de 1024 bytes
txt = ""
nb_caractères_lus = 1
Do While nb_caractères_lus > 0
code_page URL, texte_code, 1024, nb_caractères_lus
txt = txt & Left(texte_code, nb_caractères_lus)
Loop
'ménage
fermeInternet URL 'ferme la page
fermeInternet internet 'ferme Internet
'recopie dans un fichier
Open "c:rien.html" For Output As #1
Print #1, txt
Close #1
End Sub
----------------------------------------------------------------------------
-------------------------
détails sur
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#ouvrir_web_suite
"rederon" <rederon@free.fr> a écrit dans le message de news:
17df31ab.0409150207.5dfe099f@posting.google.com...
Bonjour à tous,
Je recherche une méthode qui me permettrait depuis une macro vba, de
zipper des fichiers non pas présents sur mon disque local, mais
présents sur un site web.
J'ai winzip 8.0 sur mon PC et j'ai essayé avec la méthode shell mais
j'ai bien l'impression que Winzip ne permet pas de faire cela
directement.
Peut-être devrais-je passer par une phase de téléchargement des liens
http vers mon disque dur?
1) méthode rapide mais pas très souple---------------------------------------------------------------
Declare Function DoFileDownload Lib "shdocvw.dll" (ByVal lpszFile As String) As Long Sub telecharge() DoFileDownload StrConv("http://jacxl.free.fr/cours_xl/ouvrir_web_suite.html", vbUnicode) End Sub
2) méthode plus souple mais plus lourde-------------------------------------------------------------
Declare Function OuvreInternet Lib "wininet" _ Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, _ ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long Declare Function fermeInternet Lib "wininet" _ Alias "InternetCloseHandle" (ByVal hInet As Long) As Integer Declare Function code_page Lib "wininet" _ Alias "InternetReadFile" (ByVal hFile As Long, ByVal sBuffer As String, _ ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer Declare Function Ouvrepage Lib "wininet" _ Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, _ ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, _ ByVal dwContext As Long) As Long
Sub télécharge_http() Dim texte_code As String * 1024
'connection au fichier à télécharger internet = OuvreInternet("", 1, vbNullString, vbNullString, 0) 'ouvre Internet 'URL = Ouvrepage(internet, fich, vbNullString, ByVal 0&, &H80000000, ByVal 0&) 'ouvre la page Web URL = Ouvrepage(internet, fich, "", 0, 0, 0) 'ouvre la page Web
'lecture du fichier par paquet de 1024 bytes txt = "" nb_caractères_lus = 1 Do While nb_caractères_lus > 0 code_page URL, texte_code, 1024, nb_caractères_lus txt = txt & Left(texte_code, nb_caractères_lus) Loop
'ménage fermeInternet URL 'ferme la page fermeInternet internet 'ferme Internet
'recopie dans un fichier Open "c:rien.html" For Output As #1 Print #1, txt Close #1
End Sub
---------------------------------------------------------------------------- ------------------------- détails sur http://jacxl.free.fr/cours_xl/cours_xl_jac.html#ouvrir_web_suite
Je recherche une méthode qui me permettrait depuis une macro vba, de zipper des fichiers non pas présents sur mon disque local, mais présents sur un site web.
J'ai winzip 8.0 sur mon PC et j'ai essayé avec la méthode shell mais j'ai bien l'impression que Winzip ne permet pas de faire cela directement.
Peut-être devrais-je passer par une phase de téléchargement des liens http vers mon disque dur?
Toutes vos suggestions seront les bienvenues.
Je vous remercie par avance,
Stéphane
rederon
Bonjour,
Je connaissais les liens que vous m'avez envoyé mais je vous remercie pour les détails.
Si j'interprète ce que vous ne dites pas, il semble donc impossible de zipper directement plusieurs fichiers situés sur le web sans passer par une phase de téléchargement ?
Ce qui me gêne dans la première méthode, ce que l'opérateur doit intervenir au téléchargement de chaque fichier (quand je disais "zipper" je voulais en fait créer un fichier d'archive, et donc télécharger plusieurs fichiers).
Je n'ai pas essayé la seconde méthode. Elle a l'air fastidieuse mais elle peut convenir à me besoins : Le but final étant de faire un package de fichiers que l'utilisateur aura préalablement sélectionné dans une base sur mon intranet. Le système n'a pas besoin d'être rapide.
Merci encore !
Stephane
"" wrote in message news:<4148a34d$0$20471$...
pour télécharger le fichier html :
1) méthode rapide mais pas très souple---------------------------------------------------------------
Declare Function DoFileDownload Lib "shdocvw.dll" (ByVal lpszFile As String) As Long Sub telecharge() DoFileDownload StrConv("http://jacxl.free.fr/cours_xl/ouvrir_web_suite.html", vbUnicode) End Sub
2) méthode plus souple mais plus lourde-------------------------------------------------------------
Declare Function OuvreInternet Lib "wininet" _ Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, _ ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long Declare Function fermeInternet Lib "wininet" _ Alias "InternetCloseHandle" (ByVal hInet As Long) As Integer Declare Function code_page Lib "wininet" _ Alias "InternetReadFile" (ByVal hFile As Long, ByVal sBuffer As String, _ ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer Declare Function Ouvrepage Lib "wininet" _ Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, _ ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, _ ByVal dwContext As Long) As Long
Sub télécharge_http() Dim texte_code As String * 1024
'connection au fichier à télécharger internet = OuvreInternet("", 1, vbNullString, vbNullString, 0) 'ouvre Internet 'URL = Ouvrepage(internet, fich, vbNullString, ByVal 0&, &H80000000, ByVal 0&) 'ouvre la page Web URL = Ouvrepage(internet, fich, "", 0, 0, 0) 'ouvre la page Web
'lecture du fichier par paquet de 1024 bytes txt = "" nb_caractères_lus = 1 Do While nb_caractères_lus > 0 code_page URL, texte_code, 1024, nb_caractères_lus txt = txt & Left(texte_code, nb_caractères_lus) Loop
'ménage fermeInternet URL 'ferme la page fermeInternet internet 'ferme Internet
'recopie dans un fichier Open "c:rien.html" For Output As #1 Print #1, txt Close #1
End Sub
---------------------------------------------------------------------------- ------------------------- détails sur http://jacxl.free.fr/cours_xl/cours_xl_jac.html#ouvrir_web_suite
Je recherche une méthode qui me permettrait depuis une macro vba, de zipper des fichiers non pas présents sur mon disque local, mais présents sur un site web.
J'ai winzip 8.0 sur mon PC et j'ai essayé avec la méthode shell mais j'ai bien l'impression que Winzip ne permet pas de faire cela directement.
Peut-être devrais-je passer par une phase de téléchargement des liens http vers mon disque dur?
Toutes vos suggestions seront les bienvenues.
Je vous remercie par avance,
Stéphane
Bonjour,
Je connaissais les liens que vous m'avez envoyé mais je vous remercie
pour les détails.
Si j'interprète ce que vous ne dites pas, il semble donc impossible de
zipper directement plusieurs fichiers situés sur le web sans passer
par une phase de téléchargement ?
Ce qui me gêne dans la première méthode, ce que l'opérateur doit
intervenir au téléchargement de chaque fichier (quand je disais
"zipper" je voulais en fait créer un fichier d'archive, et donc
télécharger plusieurs fichiers).
Je n'ai pas essayé la seconde méthode. Elle a l'air fastidieuse mais
elle peut convenir à me besoins :
Le but final étant de faire un package de fichiers que l'utilisateur
aura préalablement sélectionné dans une base sur mon intranet. Le
système n'a pas besoin d'être rapide.
Merci encore !
Stephane
"j@c" <adresse_bidon@bidon.fr> wrote in message news:<4148a34d$0$20471$626a14ce@news.free.fr>...
pour télécharger le fichier html :
1) méthode rapide mais pas très
souple---------------------------------------------------------------
Declare Function DoFileDownload Lib "shdocvw.dll" (ByVal lpszFile As String)
As Long
Sub telecharge()
DoFileDownload
StrConv("http://jacxl.free.fr/cours_xl/ouvrir_web_suite.html", vbUnicode)
End Sub
2) méthode plus souple mais plus
lourde-------------------------------------------------------------
Declare Function OuvreInternet Lib "wininet" _
Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As
Long, _
ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags
As Long) As Long
Declare Function fermeInternet Lib "wininet" _
Alias "InternetCloseHandle" (ByVal hInet As Long) As Integer
Declare Function code_page Lib "wininet" _
Alias "InternetReadFile" (ByVal hFile As Long, ByVal sBuffer As String,
_
ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Declare Function Ouvrepage Lib "wininet" _
Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl
As String, _
ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal
dwFlags As Long, _
ByVal dwContext As Long) As Long
Sub télécharge_http()
Dim texte_code As String * 1024
'connection au fichier à télécharger
internet = OuvreInternet("", 1, vbNullString, vbNullString, 0) 'ouvre
Internet
'URL = Ouvrepage(internet, fich, vbNullString, ByVal 0&, &H80000000, ByVal
0&) 'ouvre la page Web
URL = Ouvrepage(internet, fich, "", 0, 0, 0) 'ouvre la page Web
'lecture du fichier par paquet de 1024 bytes
txt = ""
nb_caractères_lus = 1
Do While nb_caractères_lus > 0
code_page URL, texte_code, 1024, nb_caractères_lus
txt = txt & Left(texte_code, nb_caractères_lus)
Loop
'ménage
fermeInternet URL 'ferme la page
fermeInternet internet 'ferme Internet
'recopie dans un fichier
Open "c:rien.html" For Output As #1
Print #1, txt
Close #1
End Sub
----------------------------------------------------------------------------
-------------------------
détails sur
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#ouvrir_web_suite
"rederon" <rederon@free.fr> a écrit dans le message de news:
17df31ab.0409150207.5dfe099f@posting.google.com...
Bonjour à tous,
Je recherche une méthode qui me permettrait depuis une macro vba, de
zipper des fichiers non pas présents sur mon disque local, mais
présents sur un site web.
J'ai winzip 8.0 sur mon PC et j'ai essayé avec la méthode shell mais
j'ai bien l'impression que Winzip ne permet pas de faire cela
directement.
Peut-être devrais-je passer par une phase de téléchargement des liens
http vers mon disque dur?
Je connaissais les liens que vous m'avez envoyé mais je vous remercie pour les détails.
Si j'interprète ce que vous ne dites pas, il semble donc impossible de zipper directement plusieurs fichiers situés sur le web sans passer par une phase de téléchargement ?
Ce qui me gêne dans la première méthode, ce que l'opérateur doit intervenir au téléchargement de chaque fichier (quand je disais "zipper" je voulais en fait créer un fichier d'archive, et donc télécharger plusieurs fichiers).
Je n'ai pas essayé la seconde méthode. Elle a l'air fastidieuse mais elle peut convenir à me besoins : Le but final étant de faire un package de fichiers que l'utilisateur aura préalablement sélectionné dans une base sur mon intranet. Le système n'a pas besoin d'être rapide.
Merci encore !
Stephane
"" wrote in message news:<4148a34d$0$20471$...
pour télécharger le fichier html :
1) méthode rapide mais pas très souple---------------------------------------------------------------
Declare Function DoFileDownload Lib "shdocvw.dll" (ByVal lpszFile As String) As Long Sub telecharge() DoFileDownload StrConv("http://jacxl.free.fr/cours_xl/ouvrir_web_suite.html", vbUnicode) End Sub
2) méthode plus souple mais plus lourde-------------------------------------------------------------
Declare Function OuvreInternet Lib "wininet" _ Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, _ ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long Declare Function fermeInternet Lib "wininet" _ Alias "InternetCloseHandle" (ByVal hInet As Long) As Integer Declare Function code_page Lib "wininet" _ Alias "InternetReadFile" (ByVal hFile As Long, ByVal sBuffer As String, _ ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer Declare Function Ouvrepage Lib "wininet" _ Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, _ ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, _ ByVal dwContext As Long) As Long
Sub télécharge_http() Dim texte_code As String * 1024
'connection au fichier à télécharger internet = OuvreInternet("", 1, vbNullString, vbNullString, 0) 'ouvre Internet 'URL = Ouvrepage(internet, fich, vbNullString, ByVal 0&, &H80000000, ByVal 0&) 'ouvre la page Web URL = Ouvrepage(internet, fich, "", 0, 0, 0) 'ouvre la page Web
'lecture du fichier par paquet de 1024 bytes txt = "" nb_caractères_lus = 1 Do While nb_caractères_lus > 0 code_page URL, texte_code, 1024, nb_caractères_lus txt = txt & Left(texte_code, nb_caractères_lus) Loop
'ménage fermeInternet URL 'ferme la page fermeInternet internet 'ferme Internet
'recopie dans un fichier Open "c:rien.html" For Output As #1 Print #1, txt Close #1
End Sub
---------------------------------------------------------------------------- ------------------------- détails sur http://jacxl.free.fr/cours_xl/cours_xl_jac.html#ouvrir_web_suite
Je recherche une méthode qui me permettrait depuis une macro vba, de zipper des fichiers non pas présents sur mon disque local, mais présents sur un site web.
J'ai winzip 8.0 sur mon PC et j'ai essayé avec la méthode shell mais j'ai bien l'impression que Winzip ne permet pas de faire cela directement.
Peut-être devrais-je passer par une phase de téléchargement des liens http vers mon disque dur?