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 :

SOURCE HTML et VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    chef avion
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : chef avion
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Par défaut SOURCE HTML et VBA
    Bonjour,

    Pour faciliter ma vie au travail, j'ai besoin de récolter des info sur une page internet.
    Actuellement, j'y arrive d'une certaine manier, mais j'ai besoin de l'améliorer.
    Pour le moment, vba la vba, je me connecte automatiquement sur la page, je fait une copier/coller de la page et je la colle dans une feuille excel, et j'arrive a prendre mes info que j'ai besoin.

    Sur la page internet il y a des filtres.
    J'ai deux type de filtre, mais la je ne sais pas comment faire en vba pour aller chercher ces information sur un code HTML.

    - Premier filtre, (photo pièces joint HTML 1 et 2), un menu déroulant, quand je clic sur inspecter élément (du filtre), j'obtient la photo HTML1 quand quand je clic sur une des élément du menu déroulant, j'obtient la photo HTML2. Comment faire via
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     VBA pour cliquer automatiquement sur H+18
    <input name="ctl00$m$g_31a5f278_281c_49b2_a0c0_f8ec15187b13$ctl00$ddlTo" class="rcbInput" id="ctl00_m_g_31a5f278_281c_49b2_a0c0_f8ec15187b13_ctl00_ddlTo_Input" type="text" readOnly="readonly" value="HC+3h" autocomplete="off"
    >


    - Deuxièmement, un filtre (photo filtre 1 & 2), il faut rentrer soit même dans la case blanche, l'élément demandé ( pour ce passage j'arrive a le faire), mais après il faut cliquer sur un filtre puis choisir le mot "CONTIENT"
    *pièce jointe filtre 1 , la photo du code quand je fiat inspecté élément sur le filtre

    <input name="ctl00$m$g_31a5f278_281c_49b2_a0c0_f8ec15187b13$ctl00$rgVols$ctl00$ctl02$ctl02$Filter_Terminal" title="Filtre" class="rgFilter" id="ctl00_m_g_31a5f278_281c_49b2_a0c0_f8ec15187b13_ctl00_rgVols_ctl00_ctl02_ctl02_Filter_Terminal" onclick="$find(&quot;ctl00_m_g_31a5f278_281c_49b2_a0c0_f8ec15187b13_ctl00_rgVols&quot._showFilterMenu(&quot;ctl00_m_g_31a5f278_281c_49b2_a0c0_f8ec15187b13_ctl00_rgVols_ctl00&quot;, &quot;Terminal&quot;, event); return false;__doPostBack('ctl00$m$g_31a5f278_281c_49b2_a0c0_f8ec15187b13$ctl00$rgVols$ctl00$ctl02$ctl02$Filter_Terminal','')" type="button" value=" ">
    *pièce jointe filtre 2 , quand je recherche le mot contient dans le code


    Voila, je sèhe les filtre et menu déroulant, si une personne a une idée
    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 441
    Par défaut
    Bonjour,

    Difficile de répondre sans avoir la page internet.

    Une piste pour la 1ère question: "cliquer automatiquement sur H+18", quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IE.Document.getElementById("ctl00 ... ... To_DropDown").selectedindex=6
    vu que H+18 est le 6e de la liste.

    Cdt

  3. #3
    Membre averti
    Homme Profil pro
    chef avion
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : chef avion
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Par défaut
    Bonjour,

    Merci pour ta réponse,
    J'ai essayé mais cela ne fonctionne pas

    J'ai joinds le fichier pour y voir plus claire

    Merci

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 441
    Par défaut
    Bonjour,
    Désolé, mais je ne trouve pas de solution et je ne serai que fort peu disponible dans les prochaines semaines.
    Cordialement.

  5. #5
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 441
    Par défaut
    Bonjour,
    Une partie de la solution: ok pour From ... To, pas ok pour "Contient" (qui renvoie sur un onkeypress).
    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
    60
    61
    62
    63
    64
    65
    Sub RechercheVBAExcel()
       '--- Déclaration des variables
       Dim IE As New InternetExplorer
       Dim IEDoc As HTMLDocument
       Dim InputGoogleZoneTexte As HTMLInputElement
       Dim InputGoogleBouton As HTMLInputElement
       Dim deb As Date, gate As Date
       Dim htmlTagCol As IHTMLElementCollection
       Dim htmlSelectElem As HTMLSelectElement
       Dim Elements As IHTMLElementCollection
       Dim Element As IHTMLElement
     
       '--- Chargement de la page cdm
       IE.navigate " https://www.cdmparis.net/CDG/Pages/Liste-vols-arrivee.aspx"
       WaitIE IE
       '--- Affichage de la fenêtre IE
       Set IEDoc = IE.document
       IE.Visible = True
       '--- ON RENTRE L'ID
       deb = Format(Now, "HH:MM")
       Sheets("Feuil1").Range("A1") = deb
     
       '***************  Connexion  ***************************
       '--- identifiant
       On Error Resume Next    '--- erreur si déjà connecté
       Set InputGoogleZoneTexte = IEDoc.all("ctl00$ContentPlaceHolder1$UsernameTextBox")
       InputGoogleZoneTexte.Value = "identifiant"
       '--- pw
       Set InputGoogleZoneTexte = IEDoc.all("ctl00$ContentPlaceHolder1$PasswordTextBox")
       InputGoogleZoneTexte.Value = "pass"
       '--- clic
       Set InputGoogleBouton = IEDoc.all("ctl00$ContentPlaceHolder1$SubmitButton")
       InputGoogleBouton.Click
       On Error GoTo 0
     
        '******************     From ... To ... ****************************************************
     
       Set InputGoogleZoneTexte = _
          IEDoc.all("ctl00$m$g_31a5f278_281c_49b2_a0c0_f8ec15187b13$ctl00$ddlFrom")
       InputGoogleZoneTexte.Value = "HC-2h"
     
       Set InputGoogleZoneTexte = _
          IEDoc.all("ctl00$m$g_31a5f278_281c_49b2_a0c0_f8ec15187b13$ctl00$ddlTo")
        InputGoogleZoneTexte.Value = "HC+18h"
     
       Set InputGoogleBouton = _
          IEDoc.all("ctl00_m_g_31a5f278_281c_49b2_a0c0_f8ec15187b13_ctl00_btnDisplayPeriod_input")
       InputGoogleBouton.Click
     
       Application.Wait Now + TimeValue("0:00:05")  '--- temporisation pour exécution
     
     
       '******************   Terminal   ***************************************
     
       Set InputGoogleZoneTexte = _
          IEDoc.all("ctl00$m$g_31a5f278_281c_49b2_a0c0_f8ec15187b13$ctl00$rgVols$ctl00$ctl02$ctl02$FilterTextBox_Terminal")
       InputGoogleZoneTexte.Value = "C2F"
     
       '******************     HERE NEED TO CLICK ON  WORD " CONTIENT"
       '--- non résolu
       Set InputGoogleZoneTexte = _
          IEDoc.all("ctl00_m_g_31a5f278_281c_49b2_a0c0_f8ec15187b13_ctl00_rgVols_rfltMenu")
       InputGoogleZoneTexte.Value = "Égal à"
     
    End Sub
    Bonne continuation.

  6. #6
    Membre averti
    Homme Profil pro
    chef avion
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : chef avion
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Par défaut
    Excellent, merci cela m'aide déjà beaucoup,
    j’essaie également de sélectionné le "50" par page iso "30", mais j'ai pas encore trouvé, ça ne fonctionne pas comme le from to apparement
    Mais je peux commencer a naviguer page / page automatiquement, c nikel

    Merci encore pour la première partie

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour vous y arrivez pas tout simplement parce que ce ne sont pas des combo mais des menu li dynamiques
    et la fonction est lancer au clic sur l'item du de la balise li et non quand le input change de valeur

    c'est une page web bien pourri ca
    j'ai fait quelques tests on y arrive
    il faut donc cliquer sur l'élément ou il y a la fleche --> le menu se déroule et cliquer sur l'item choisi par exemple "Contient"
    sauf qu'il y a protection anti robot et donc la librairie IE est inefficace en terme de getelement.......
    donc forcé de faire une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for each elem in .all
     if elem.innertext="Contient" then elem.click
    next
    mais attention il faut avoir dérouler le menu avant sinon ce menu n'existe pas

    comme je disais bien pourri cette page web
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Membre averti
    Homme Profil pro
    chef avion
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : chef avion
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Par défaut
    Bonjour,

    Merci pour ta réponse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     Set InputGoogleZoneTexte = _
          IEDoc.all("ctl00$m$g_31a5f278_281c_49b2_a0c0_f8ec15187b13$ctl00$rgVols$ctl00$ctl02$ctl02$FilterTextBox_Terminal")
       InputGoogleZoneTexte.Value = "C1"
     
        Set InputGoogleBouton = IEDoc.all("ctl00$m$g_31a5f278_281c_49b2_a0c0_f8ec15187b13$ctl00$rgVols$ctl00$ctl02$ctl02$Filter_Terminal")
       InputGoogleBouton.Click
     
     
    For Each elem In .all
        If elem.innerText = "Contient" Then elem.Click
      Next
    j'ai inséré ta formule juste après dérouler le texte, mais tel quel , j'ai un message d'erreur a cause du .all;r "Référence incorrecte ou non qualifiée"
    Comment tu déclares le elem?

    Merci

  9. #9
    Membre averti
    Homme Profil pro
    chef avion
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : chef avion
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Par défaut
    Je viens de trouver ou était mon erreur


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each elem In IEdoc.all
    If elem.innerText = "Contient" Then elem.Click
    Next
    ça fonctionne correctement maintenant
    Merci

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    oui chez moi je l'ai fait dans un with end with donc ".all"
    a tu résolu le dernier soucis a savoir récupérer toutes les pages ? parce que je travaille dessus en ce moment et rien a faire

    et puis j'ai virer toute la partie execWB pour copier car je suppose que tu veux récupérer seulement les tableaux
    je le termine et te l'envoie OK
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #11
    Membre averti
    Homme Profil pro
    chef avion
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : chef avion
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Par défaut
    En faite comme je cible que le terminal C1, il y a maximum deux page, comme je n'ai pas réussit a mettre 50/page iso 30/page, je simule un Click pour la page suivant et je copie la page numéro 2 a la suivent de celle ou j'avais copier la page 1
    après c que du texte, j'arrive a me débrouiller en vba, je récupère la ligne des numero de vol qui m’intéresse, et, dans cette ligne, le point de stationnement correspondant
    Puis je recommence l'opération, pour savoir si le point de sationnement n'a pas changé
    si il a changé, j'envoie un mail pour prévenir du changement
    voila le plan =)


    avec l'ancien système,il y avait un minium de 3 min avant de savoir si un point de stationnement changeait
    Maintenant j'ai fais un rafraîchissement tt les 20s, dc beaucoup mieux

    J'apprends la VBA petite a petit, j'ai appris sur des forum
    Si tu as un moyen de récupéré le tableau je veux bien savoir comment tu fais, avoir plusieurs méthode, je suis preneur =)
    Actuellement je copie la page internet, et la coller format texte, puis aprés je joue avec des instr pour récupérer mes donnés, ce n'ai peut être pas la méthode la plus rapide mais elle fonctionne bien =)


    un grand merci en tt cas

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bien sur qu'il y a moyen
    je te montre une capture d'écran de la ou j'en suis au niveau de la récup de la page web
    je ne récupère que les tables moins de 10seconde de l'ouverture de ie jusqu'à obtention des tables sur le sheets
    Nom : Capture.JPG
Affichages : 443
Taille : 343,6 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    voila on y est
    prends un fichier vierge ,met lui un module standard et colle lui le code qui suit
    lance la sub
    et voila tes pages sont dans le sheets sans rien d'autre
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    Option Explicit
    Sub RechercheVBAExcel()
        Dim sLogin, elem, bankpage, nombredepage, repere1, repere, boutonsuiv, pag
        Sheets(1).Cells.Clear
        'Déclaration des variables
        Dim IE As Object, IEDoc As Object, deb, gate As Date, code
        Set IE = CreateObject("internetexplorer.application")
        'Chargement de la page cdm
        IE.navigate "https://www.cdmparis.net/CDG/Pages/Liste-vols-arrivee.aspx"
        IE.Visible = True
        Do: DoEvents: Loop While IE.readyState <> 4 Or IE.Busy    ' on laisse travailler IE
        Set IEDoc = IE.document
        ' si on fait deux fois de suite la manoeuvre la 2d fois on est deja connecté
        On Error GoTo nologin
        Set sLogin = IEDoc.getElementById("ctl00_ContentPlaceHolder1_UsernameTextBox")
        If Not sLogin Is Nothing Then
            IEDoc.getElementById("ctl00_ContentPlaceHolder1_UsernameTextBox").Value = "regultrafic-cdg1@geh.aero"    'login mail
            IEDoc.getElementById("ctl00_ContentPlaceHolder1_PasswordTextBox").Value = "Pcat1cdm"    'PASSSEWORD
            IEDoc.getElementById("ctl00$ContentPlaceHolder1$SubmitButton").Click
        End If
    nologin:
        Do: DoEvents: Loop While IE.readyState <> 4 Or IE.Busy    ' on laisse travailler IE
        With IEDoc
            'POUR LE " Terminal"
            .getElementsByName("ctl00$m$g_31a5f278_281c_49b2_a0c0_f8ec15187b13$ctl00$rgVols$ctl00$ctl02$ctl02$FilterTextBox_Terminal")(0).Value = "C1"
            ' il faut que le menu soit present et affiché sinon le bouton "Contient" de la fausse combo n'existe pas car il est dynamique alors on clique sur la fleche
            .all("ctl00$m$g_31a5f278_281c_49b2_a0c0_f8ec15187b13$ctl00$rgVols$ctl00$ctl02$ctl02$Filter_Terminal").Click
            'maintenant on choisi l'item "Contient"
            For Each elem In .all
                If elem.innerText = "Contient" Then elem.Click    ' l'action se fait que a ce moment la
            Next
            Do: DoEvents: Loop While IE.readyState <> 4 Or IE.Busy    ' on laisse travailler IE
            ' la periode
            .getElementById("ctl00_m_g_31a5f278_281c_49b2_a0c0_f8ec15187b13_ctl00_ddlTo_Input").Value = "HC+18h"
            .getElementById("ctl00_m_g_31a5f278_281c_49b2_a0c0_f8ec15187b13_ctl00_ddlFrom_Input").Value = "HC+2h"
            .getElementById("ctl00_m_g_31a5f278_281c_49b2_a0c0_f8ec15187b13_ctl00_btnDisplayPeriod_input").Click
            Do: DoEvents: Loop While IE.readyState <> 4 Or IE.Busy    ' on laisse travailler IE
     
            ' ci dessous on determine le nombre de pages
            Set bankpage = IEDoc.getElementsByClassName("rgWrap rgInfoPart")(0)
            nombredepage = Val(Trim(Right(Split(bankpage.innerText, ",")(0), 2)))
            'msgbox bankpage.innertext & vbcrlf  & nombredepage
            repere1 = .getElementById("ctl00_m_g_31a5f278_281c_49b2_a0c0_f8ec15187b13_ctl00_rgVols_GridData").getElementsByTagName("TABLE")(0).getElementsByTagName("tbody")(2).getElementsByTagName("TR")(10).innerText
            ' a partir d'ici il faut boucler pour naviger sur les pages
            'ci dessous la 1ere page et sa table que tu souhaite recupérer dans chaque page regarde dans le debug
            ' Debug.Print .getElementById("ctl00_m_g_31a5f278_281c_49b2_a0c0_f8ec15187b13_ctl00_rgVols_GridData").getElementsByTagName("TABLE")(0).getElementsByTagName("tbody")(2).innerText
            code = code & "<p>page  1</p><table>"
            code = code & .getElementById("ctl00_m_g_31a5f278_281c_49b2_a0c0_f8ec15187b13_ctl00_rgVols_GridData").getElementsByTagName("TABLE")(0).getElementsByTagName("tbody")(2).innerHTML
            code = code & "</TABLE>"
            'on determine le bouton page suivante
            'For Each elem In .all
            ' If elem.Title = "Page suivant" Then Set boutonsuiv = elem: Exit For
            ' Next
            Set boutonsuiv = .getElementsByClassName("rgPageNext")(0)
            'a partir de la ca ne fonctionne pas
            For pag = 1 To nombredepage - 1
                boutonsuiv.Click    'bouton page suivante
                'Do: DoEvents: Loop While IE.readyState <> 4 Or IE.Busy
                Do
                    repere = .getElementById("ctl00_m_g_31a5f278_281c_49b2_a0c0_f8ec15187b13_ctl00_rgVols_GridData").getElementsByTagName("TABLE")(0).getElementsByTagName("tbody")(2).getElementsByTagName("TR")(10).innerText
                Loop While repere = repere1
                ' Debug.Print "page " & pag + 1
                ' Debug.Print .getElementById("ctl00_m_g_31a5f278_281c_49b2_a0c0_f8ec15187b13_ctl00_rgVols_GridData").getElementsByTagName("TABLE")(0).getElementsByTagName("tbody")(2).innerText
                code = code & "<p>page " & pag + 1 & "</p><TABLE>"
                code = code & .getElementById("ctl00_m_g_31a5f278_281c_49b2_a0c0_f8ec15187b13_ctl00_rgVols_GridData").getElementsByTagName("Table")(0).getElementsByTagName("tbody")(2).innerHTML & "</table> "
                code = code & "</TABLE>"
            Next
        End With
        'maintenant on envoie tout ca en html dans le clipboard d'un htmldocument virtuel en memoire pour le paster sur le sheets
        With CreateObject("htmlfile")
     
            If .parentWindow.clipboardData.setData("Text", code) Then
                ' Application.ScreenUpdating = False
                With Sheets(1)
                    .Activate
                    .Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
                    .Paste    ' avec tout les elements et links etc....
                    '.PasteSpecial Format:="Texte", link:=False, DisplayAsIcon:=False ' au format texte
                End With
                .parentWindow.clipboardData.clearData "Text"
            End If
        End With
        ' on a fini alors on quitte IE a la fin
        IE.Quit
        With ActiveSheet.Columns("A:Ah")
            .AutoFit
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlBottom
        End With
    End Sub
    cé pas bo! la vie
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  14. #14
    Membre averti
    Homme Profil pro
    chef avion
    Inscrit en
    Juillet 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : chef avion
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 18
    Par défaut
    WHOAAAOOO!!

    C'est dans ces moment la que je vois que je débute dans la macro =)
    Je t'ai joint mon fichier, il est du niveau novice comparé au tient =)
    En tt cas un grand merci, je vais pouvoir étudier ton code et approfondir mes connaissances
    Et un grand merci pour m'avoir aidé






    Nicolas

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    j'e suis ravi pour toi

    comme tu l' a compris tu peut récupérer ce que tu veux (une partie ou une autre du document ) sans avoir besoins de tout copier et subir la misère a trier ce qui arrive sur le sheets
    après il faut quand même avoir les bases de connaissance du DOM pour cela tu a un excellent tutoriel rédigé par qwazerty (dans les contribution )sur la manipulation et interaction entre le VBA et LE WEB même un débutant peux arriver a se dépatouiller pour des manip de base

    n'hésite pas a poser des questions si tu comprends pas le code
    a+
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. [JSP]sources html + adresse physique des fichiers
    Par hinanui dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 29/03/2006, 20h03
  2. [RegEx] Problème pour enlever les tags javascript d'une source HTML
    Par Easyweb dans le forum Langage
    Réponses: 4
    Dernier message: 25/02/2006, 03h10
  3. [Tableaux] Récupérer source html
    Par philippef dans le forum Langage
    Réponses: 16
    Dernier message: 10/10/2005, 16h52

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