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 :

[VBA] Simplifier un petit Code pour aller chercher une valeur sur une Page Web


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2012
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 103
    Points : 76
    Points
    76
    Par défaut [VBA] Simplifier un petit Code pour aller chercher une valeur sur une Page Web
    Bonjour à tous

    j'ai fait une macro test pour aller rechercher une valeur sur une page web.

    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
    Sub test()
    Dim i As Integer
    Dim IE As InternetExplorer
     
    Dim oElement As Object
     
     
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
    IE.navigate "http://www.chiffre-en-lettre.fr/ecrire-nombre-1555,55"
     
    Do Until IE.readyState = READYSTATE_COMPLETE
    DoEvents
    Loop
    Application.Wait Now + TimeSerial(0, 0, 5)
     
     
    Set IEDoc = IE.document
     
    Set Inputconnexion = IEDoc.getElementsByClassName("DIVcol1")(0).getElementsByTagName("h6")
     
    i = 0
    For Each oElement In Inputconnexion
     
        Sheets("Feuil3").Range("A" & i + 1) = Replace(Inputconnexion(i).innerText, "          ", "")
     
       i = i + 1
    Next oElement
     
    Set Inputconnexion = Nothing
    Set IEDoc = Nothing
     
    MsgBox "Fini"
    End Sub
    cela fonction mais je voudrais savoir si la fin du code peut être simplifié vu que je sais que la valeur qui m'interresse est la valeur quand i=2 et que le nom de l'objet oElement est "[object HTMLHeadingElement]". Donc qu'il aille cherche directement la valeur souhaitée.

    Je vous remercie d'avance pour votre aide

  2. #2
    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
    re
    bonjour pourquoi aller sur le net??
    https://www.developpez.net/forums/d1...ographe-nikel/

  3. #3
    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
    et si tu tiens a internet ta sub au propre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test()
        Dim i As Integer, IE As Object, allresults As Object
        Set IE = CreateObject("InternetExplorer.Application")
        'IE.Visible = True
        IE.navigate "http://www.chiffre-en-lettre.fr/ecrire-nombre-1555,55"
        Do: DoEvents: Loop While IE.readyState <> 4    'Or IE.busy
        Set IEDoc = IE.document
        Set allresults = IEDoc.getElementsBytagname("h6")
        For i = 0 To allresults.Length - 1
            Sheets("Feuil3").Range("A" & i + 1) = allresults(i).innertext
        Next
        IE.Quit
    End Sub
    mais entre nous j'ai trouvé des sites plus rapides

  4. #4
    Membre régulier
    Inscrit en
    Octobre 2012
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 103
    Points : 76
    Points
    76
    Par défaut
    Merci pour le lien
    je prefère comprendre le code que je mets, et le tiens est vraiment compliquer , mais je vais me pencher dessus car ça sera bcp mieux que d'aller sur internet

    Et puis c'etait un test qui pourra me servir pour d'autre recherche de valeur sur des pages web

    si non j'ai trouvé ma réponse, c'était dû a une erreur de ma part je chercher avec une valeur i=3 et c'etait 2 pour ça que j'avais des messages d'erreurs

    donc je remplace ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Set Inputconnexion = IEDoc.getElementsByClassName("DIVcol1")(0).getElementsByTagName("h6")
     
    i = 0
    For Each oElement In Inputconnexion
     
        Sheets("Feuil3").Range("A" & i + 1) = Replace(Inputconnexion(2).innerText, "          ", "")
     
       i = i + 1
    Next oElement
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
     
        Sheets("Feuil3").Range("A1") = Replace(IEDoc.getElementsByClassName("DIVcol1")(0).getElementsByTagName("h6")(2).innerText, "          ", "")

  5. #5
    Membre régulier
    Inscrit en
    Octobre 2012
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 103
    Points : 76
    Points
    76
    Par défaut
    Merci pour ton aide

    Demain je me penche sur ton lien pour le comprendre

  6. #6
    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
    ok tu veux donc le 3eme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil3").Range("A1") =trim(IEDoc.getelementsTagName("h6")(2).innerText)

  7. #7
    Membre régulier
    Inscrit en
    Octobre 2012
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 103
    Points : 76
    Points
    76
    Par défaut
    merci je ne connaissais pas Trim. bcp plus simple

    Si non si d'autre personnes veulent essayer le code, il faut rajouter "By" : getElementsByTagName

  8. #8
    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
    oui autant pour moi j'ai taper un peu vite

  9. #9
    Membre régulier
    Inscrit en
    Octobre 2012
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 103
    Points : 76
    Points
    76
    Par défaut
    je m'endoute, si non penses-tu que tes codes (celui du lien) peuvent être porté sur Access car j'ai essayé et cela fonctionne pas. j'ai essayé de remplacer Rept par String aussi


    Modif: c'est bon j'ai trouvé, cela fonction pour ton deuxième code. il faut remplacer "application.Rept" par "String" et bien inversé ce qu'il y a entre parrenthèse.

    Merci pour cette fonction

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 12h17
  2. Réponses: 7
    Dernier message: 26/10/2014, 17h47
  3. [XL-2010] Code pour format conditionnel en passant d'une version EN à une version FR de Excel
    Par bifconsult dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/07/2014, 20h58
  4. Chercher une valeur sur une page html
    Par thargellion dans le forum LabVIEW
    Réponses: 6
    Dernier message: 09/11/2009, 12h44
  5. [VBA Excel] Appliquer une macro sur une celulle contenant une valeur
    Par tchauviere dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/01/2008, 11h21

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