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 :

Problème longueur d'une variable et récupération code html [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut Problème longueur d'une variable et récupération code html
    Bonjour,

    je cherche à récupérer les présentations d'une liste de chaînes Youtube.
    Pour ce faire, l'idée est de récupérer le code html de la page présentation et d'extraire ce qui se trouve entre les balises html <pre> et </pre>.
    J'utilise le code suivant (les lignes en gras sont utilisées pour débuguer)

    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
    Dim InternetWindow As New InternetExplorer
    Dim html_code As String
    Set ws = Sheets("Feuil1")
    
    InternetWindow.Visible = False
    InternetWindow.Navigate (Sheets("Feuil1").Range("A1"))
    
    Do
    DoEvents
    
    Loop Until InternetWindow.ReadyState = READYSTATE_COMPLETE
    
        html_code = InternetWindow.Document.Body.innerHTML
        With New DataObject
            .SetText html_code
            .PutInClipboard
        End With
        MsgBox Len(html_code)
        pre_first = InStr(1, html_code, "<pre>")
        pre_first_offset = pre_first + 5
        pre_last = InStr(1, html_code, "</pre>")
        len_presentation = pre_last - 1 - pre_first_offset
        
        presentation_chaine = Mid(html_code, pre_first_offset, len_presentation)
        Range("A2") = presentation_chaine
    Problème: ma variable html_code, qui contient 110527 caractères, ne contient pas l'intégralité du code html (190 189 caractères).
    D'où cela peut-il venir sachant qu'html_code est déclaré en string, qui théroiquement peut contenir 2^31 caractères.

    D'avance merci.

  2. #2
    Membre du Club Avatar de fuine0069
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juillet 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2017
    Messages : 33
    Points : 42
    Points
    42
    Par défaut
    ne pourrais tu pas coller ton HTML code directement dans un excel "draft"?
    et ensuite manipuler ce draft et terminer par l'effacer?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut
    Qu'entends tu par un "excel draft"? Un fichier Excel temporaire?

  4. #4
    Membre du Club Avatar de fuine0069
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juillet 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2017
    Messages : 33
    Points : 42
    Points
    42
    Par défaut
    oui exact

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut
    Dans ce cas, je ne vois pas trop à quoi tu penses. Parce que si je copie le contenu de la variable dans le presse papier, elle est incomplète. Le problème sera le même si je copie le contenu de cette variable dans un nouveau fichier excel, non?

  6. #6
    Membre du Club Avatar de fuine0069
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juillet 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2017
    Messages : 33
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par ted the Ors Voir le message
    Dans ce cas, je ne vois pas trop à quoi tu penses. Parce que si je copie le contenu de la variable dans le presse papier, elle est incomplète. Le problème sera le même si je copie le contenu de cette variable dans un nouveau fichier excel, non?
    Je parlais de ne pas passer par la case variable et directement étaler InternetWindow.Document.Body.innerHTML sur un draft.
    As tu déjà tenté?

    Sinon tu peux tenter de passer par une manip d'internet explorer pour récupérer tous les codes nécessaires.
    http://qwazerty.developpez.com/tutor...-excel/#LIII-B
    j'ai utilisé ca pour un projet où il y avait plusieurs occupations à définir sur une seule et même page, je cherchais la balise occupation et ensuite je prenais les éléments suivants pour les utiliser dans mon code.

  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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    bonjour
    chez moi les présentation de chaine youtube ne sont pas dans des balises "<pre>" mais des divs en fait tout dépend de ta version de IE
    puisque tu passe par IE ces éléments ont une classe, sert toi de leur classe

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut
    J'y ai pensé mais getElementsByClassName n'est pas pris en charge
    Je vais plutôt passer par l'API Google, récupérer le JSON que je parserai.
    Je mettrais le code ici.

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 15/09/2009, 23h02
  2. Réponses: 2
    Dernier message: 14/04/2006, 18h40
  3. Probléme pour insérer une variable dans un champs
    Par BOUTRAIS dans le forum Access
    Réponses: 2
    Dernier message: 11/04/2006, 22h45
  4. [FLASH MX2004] Utiliser une variable dans le code
    Par arnolem dans le forum Flash
    Réponses: 25
    Dernier message: 02/12/2005, 16h37
  5. [vb.net] utilisation d'une variable dans le code
    Par arnolem dans le forum Windows Forms
    Réponses: 9
    Dernier message: 30/09/2005, 19h22

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