Comment importer un fichier Excel Zippé depuis internet dans Excel

Peanuts

XLDnaute Nouveau
[Résolu]

Bonjour à tous,
(et un grand merci à tous ceux qui pourront m'aider dans ma recherche!)

J'ai consulté beaucoup de forum et page web et je n'ai pas trouvé de réponses ou surtout d'exemple concernant mon problème. Peut-être qu'il n'est pas possible de trouver une solution. Dans ce cas si quelqu'un pouvait me dire pourquoi ce serait super. Je pourrais réfléchir à d'autres idées.

Voici le problème:

Dans un classeur Excel, je veux créer une macro ou une requête pour importer des données depuis une page web. Les données sur le web sont contenue dans un fichier zippé et le zip contient une page Excel.
(par ex. FDJeux.com jouer en ligne aux jeux de tirages - Résultats et rapports Euro Millions
http://www.fdjeux.com/generated/dyn/euromillions/euromillions.zip )

Comment (avec requête ou macro) ouvrir une page internet ou un fichier zip, télécharger un fichier zip, l'ouvrir, ouvrir le fichier Excel contenu, copier le contenu du fichier dans mon document Excel (en remplaçant uniquement le même contenu précédent) par exemple sur la Feuille 1 ou sur une page nommée "mise à jour", puis fermer le zip et le fichier Excel source.

(Ce serait super si certaine colones était formatée en Année, Mois, Jour, si le séparateur de colonne était le point-virgule, si le séparateur de décimal était la virgule, et si la mise à jour pouvait se faire une fois par semaine depuis tel heure en vérifiant si elle est faite, mais uniquement l'importation serait déjà excellent. J'essayerais avec acharnement par la suite de me débrouiller pour le reste en regardant ça et là comment d'autres font cela).

"Données" > "données externes" > "Nouvelles requetes sur le Web" fonctionne mais uniquement pour copier depuis un tableau en ligne et pas depuis un zip ou je suis trop mauvais.

J'ai pensé créer un page web qui dézipperait le fichier et le posterait en ligne mais je ne suis pas assez doué et je n'ai pas trouvé de page qui le fait pour voir le code. J'ai pensé mettre un lien web sur le fichier mais le problème reste identique. Je peux peut-être réaliser certaine partie mais pas le transfert du zip en ligne vers Excel.

Ca fait beaucoup de questions je m'en rend compte. Si quelqu'un pouvait me donner des liens directes pour télécharger des fichiers similaires ou je pourrais trouver des parties du code nécessaire et ainsi le modifier puis le compiler, ce serait vraiment super sympa.

Ce serait quand même vraiment interressant de trouver une solution car la plupart des fichiers mis en ligne sont très souvent zippés.

Merci d'avance à tous ceux qui voudront ou pourrons me donner des indications.

Amicalement!
Peanuts

Donnée: techniques:
Niveau: Débutant à intermédiaire / Vs: Excel XP / OS: Windows XP / Browser: ie
 
Dernière édition:

kiki29

XLDnaute Barbatruc
Re : Comment importer un fichier Excel Zippé depuis internet dans Excel

Salut, Très largement inspiré de Unzip file or files with the default Windows zip program (VBA)
Pour le reste à toi de jouer, un forum n'étant pas un supermarché de code clef en main
Code:
Private Declare Function URLDownloadToFileA Lib "urlmon" (ByVal pCaller As Long, _
                                                          ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, _
                                                          ByVal lpfnCB As Long) As Long

Option Explicit

'   Ron de Bruin

Dim sURL As String
Dim sDossierZip As Variant
Dim sNomFichierAExtraire As Variant
Dim sDossierSauvegarde As String

Sub DownLoad()

    sDossierSauvegarde = ThisWorkbook.Path
    sDossierZip = sDossierSauvegarde & "\" & "Essai.zip"
    sURL = "http://www.fdjeux.com/generated/dyn/euromillions/euromillions.zip"
    sNomFichierAExtraire = "euromillions.csv"

    If DownloadFichier(sURL, sDossierZip) = True Then Unzip sDossierZip
End Sub

Private Function DownloadFichier(URL As String, ByVal sFichierLocal As String) As Boolean
Dim Rep As Long
    Rep = URLDownloadToFileA(0, URL, sFichierLocal, 0, 0)
    If Rep = 0 Then DownloadFichier = True
End Function

Private Sub Unzip(sNom As Variant)
Dim oApp As Object
Dim FileNameFolder As Variant

    FileNameFolder = sDossierSauvegarde & "\"
    If Dir$(sDossierSauvegarde & "\" & sNomFichierAExtraire) <> "" Then Kill sDossierSauvegarde & "\" & sNomFichierAExtraire

    Set oApp = CreateObject("Shell.Application")
    oApp.Namespace(FileNameFolder).CopyHere oApp.Namespace(sNom).items.Item(sNomFichierAExtraire)
    Set oApp = Nothing

    Kill sDossierZip
End Sub
 
Dernière édition:

Peanuts

XLDnaute Nouveau
Re : Comment importer un fichier Excel Zippé depuis internet dans Excel

Salut Kiki29,

Je te remercie vraiment de me donner les clefs pour que je puisse réaliser mon fichier.

Je n'ai pas encore eu le temps de voir comment appliquer ta réponse car je viens de consulter la page et je ne suis pas un spécialiste des macros. Je dois un peu décortiquer les fonctions, voir à quoi elle se réfèrent puis les comprendre. Je vais y travailler immédiatement.

Encore merci, tu es vraiment sympa!
 

Peanuts

XLDnaute Nouveau
Re : Comment importer un fichier Excel Zippé depuis internet dans Excel

Salut Kiki29,

C'est vraiment super ce code que tu as écrit d'après le code de Ron Bruin. Au début je n'ai pas tout compris car en activant la macro je n'ai pas vu de modification sur le fichier puis j'ai essayé de comprendre le code.

Je dois avouer que je ne connais pas beaucoup le language VBA mais j'essaie de l'apprendre en voyant ce qui est montré en ligne. Cette ligne m'a mis la puce à l'oreille: " sDossierSauvegarde = ThisWorkbook.Path ".

Effectivement, le fichier *.csv dézippé apparait dans le répertoire ou se situe mon fichier excel.

De là je peux travailler dessus et créer une macro d'importation!

Encore un grand merci pour ton aide si précieuse!

Peanuts!:p

Ps: Je suis nouveau sur le site et je ne sais pas où on mentionne que le problème est résolu!
 

kiki29

XLDnaute Barbatruc
Re : Comment importer un fichier Excel Zippé depuis internet dans Excel

Salut, à priori sur ce forum personne n'a cette bonne habitude de placer par exemple un [Résolu] devant le titre du post, à toi de voir et de le modifier en [Résolu] Comment importer un fichier Excel Zippé depuis internet dans Excel, si cela est possible.
 
Dernière édition:

David Aubert

XLDnaute Barbatruc
Administrateur
Modérateur
Re : Comment importer un fichier Excel Zippé depuis internet dans Excel

Bonjour à tous,

Je me suis permis de modérer les messages de fin... peace, c'est l'été, les vacance, il fait beau et chaud... ;-)

Bonne journée

David
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 783
Membres
101 817
dernier inscrit
carvajal