IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Récupérer des données dans des fichiers HTML et alimenter un fichier Excel. [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    En frrance
    Inscrit en
    Août 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : En frrance
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2015
    Messages : 13
    Par défaut Récupérer des données dans des fichiers HTML et alimenter un fichier Excel.
    Bonjour,

    J'essaie de trouver une solution pour récupérer des données dans des Fichiers HTML, mais je n'y arrive pas, je ne suis pas très bon en développement lol.

    Voici mon problème :

    Dans un fichier excel, Maquette.xslm, je cherche a le compléter, en récupérant les données dans les fichiers html automatiquement :

    Il a y trois fichier HTML, en réalité, j'en ai plus de 100.

    L'objectif est de récupérer les données en fonction des entête de colonne du tableau maquette et de scanner les fichiers tout en récupérant les informations dans les fichiers HTML

    Ouhaaaa c'est chaud.

    Merci beaucoup pour votre aide et bonne fin de journée.

    Patine.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour

    Si les fichiers html ont la même configuration

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Option Explicit
     
    Sub Main()
    Dim Fichier As String, Rep As String
     
    Rep = ThisWorkbook.Path & "\PC HTML\"  'les fichiers html sans dans le dossier PC HTML dans le même dossier que le fichier excel
    Fichier = Dir(Rep & "*.html")
    Feuil1.UsedRange.Offset(1).ClearContents
    Do While Fichier <> ""
        ImportHtml Rep & Fichier
        Fichier = Dir
    Loop
    End Sub
     
    Private Function GetData(ByVal Fichier As String) As String
    Dim oFSO As Object, oFS As Object
    Dim sText As String
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFS = oFSO.OpenTextFile(Fichier)
    Do Until oFS.AtEndOfStream
        sText = oFS.ReadAll()
    Loop
    GetData = sText
    Set oFSO = Nothing
    Set oFS = Nothing
    End Function
     
    Private Sub ImportHtml(ByVal Fichier As String)
    Dim i As Integer, j As Integer, k As Integer
    Dim Tr As Object
    Dim N As Long
    Dim Tb
     
    With CreateObject("htmlfile")
        .body.innerhtml = GetData(Fichier)
        Set Tr = .GetElementsByTagName("tr")
        ReDim Tb(1 To Tr.Length)
        For i = 0 To Tr.Length - 1
            Tb(i + 1) = Tr(i).GetElementsByTagName("td")(1).innertext
        Next i
        Set Tr = Nothing
    End With
     
    With Feuil1
        N = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        .Cells(N, 1) = Tb(30)
        .Cells(N) = Tb(29)
        .Cells(N, 3) = Tb(13)
        .Cells(N, 4) = Tb(4)
        .Cells(N, 5) = Tb(5)
        .Cells(N, 6) = Tb(7)
        .Cells(N, 7) = Tb(11)
        .Cells(N, 8) = Tb(24)
        .Cells(N, 9) = Tb(12)
        .Cells(N, 10) = Tb(14)
        .Cells(N, 11) = Tb(18) & " (" & Tb(19) & ")"
    End With
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    En frrance
    Inscrit en
    Août 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : En frrance
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2015
    Messages : 13
    Par défaut Mille merci....
    Bonjour Mercatog,

    Merci beaucoup c'est top ca fonctionne parfaitement.

    Cordialement.

    Patinator

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer directement des données dans un fichier Excel xls
    Par davilla93 dans le forum Développement
    Réponses: 4
    Dernier message: 18/01/2019, 16h31
  2. Récupérer les données dans un fichier Excel
    Par nelya.ninouche dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 26/02/2017, 10h46
  3. Macro excel VBA - récupérer des données dans un fichier excel
    Par perounet dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/11/2016, 08h10
  4. Réponses: 3
    Dernier message: 31/08/2010, 18h12
  5. updater des données dans mon fichier excel
    Par gantec dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 26/02/2007, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo