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 :

Interaction VBA et IE


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
    Contrôleur de gestion
    Inscrit en
    Juin 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Contrôleur de gestion

    Informations forums :
    Inscription : Juin 2016
    Messages : 13
    Par défaut Interaction VBA et IE
    Bonjour à tous !! Après m'être trompé de forum sur mon précédent post je devrais ici normalement matcher avec de VBA et dieu sait que j'ai besoin de vous parce que je sèche grave...

    Dans le cadre d'une étude que je réalise j'ai décidé de tirer des infos de la toile et de renseigner un tableau excel. En gros j'ai aspirer les pages jaunes par département avec un mot clé "plombier". Je précise que cette démarche est illégale si elle faite dans un but commerciale et ce n'est pas mon cas.
    Donc j'ai 95 fichiers excel avec à peu près 600 lignes pour chaque avec trois colonnes ; Nom , Ville , Effectif de l'entreprise

    Ma colonne effectif de l'entreprise est vide mais je sais ou trouver l'info dans les pages jaunes en naviguant un peu. Pour ce faire (je ne sais pas si mon choix est le plus judicieux) j'ai décidé de créer une macro qui pour chaque ligne indique à chaque ligne le chemin à prendre pour aller chercher l'info.

    Pour le moment j'ai (sans boucle) ce code...

    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
    Sub WaitIE(IE As InternetExplorer)
       'On boucle tant que la page n'est pas totalement chargée
       Do Until IE.readyState = READYSTATE_COMPLETE
          DoEvents
       Loop
     
       End Sub
     
     Sub RechercheEffectifEtablissement()
    'Déclaration des variables
    Dim IE As InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim InputQuoiQuizoneTexte As HTMLInputElement
    Dim InputouzoneTexte As HTMLInputElement
     
       'Initialisation des variables
       Set IE = CreateObject("InternetExplorer.Application")
     
       'Chargement d'une page web Google
       IE.navigate "www.pagesjaunes.fr"
     
       'Affichage de la fenêtre IE
       IE.Visible = True
     
      'On attend le chargement complet de la page
       WaitIE IE
     
      'On pointe le membre Document
       Set IEDoc = IE.document
     
      'On pointe notre Zone de texte
       Set InputQuoiQuizoneTexte = IEDoc.all("pj_search_quoiqui")
     
      'On définit le texte que l'on souhaite placer à l'intérieur
       InputQuoiQuizoneTexte.Value = "ADS emeraude plombier"
     
      'On pointe notre Zone de texte
       Set InputouzoneTexte = IEDoc.all("pj_search_ou")
     
      'On définit le texte que l'on souhaite placer à l'intérieur
       InputouzoneTexte.Value = "miniac morvan"
     
       Set objInputs = IE.document.getElementsByTagName("button")
     
    For Each ele In objInputs
        If ele.Title Like "Trouver" Then
            ele.Click
        End If
    Next
     
       'On attend la fin de la recherche
       WaitIE IE
     
       Set infocompany = IE.document.getElementsByTagName("span")
     
    For Each ele In infocompany
        If ele.className = "id-bi" Then
            ele.Click
        End If
    Next
     
       End Sub
    Avec celui-ci comme vous pouvez le voir j'arrive à lancer le site des pagesjaunes, à insérer Nom dans la première barre de recherche et Ville dans la deuxième et à cliquer sur "Lancer". Cependant j'aimerais que dans la première barre de recherche il aille chercher sur chaque fichier excel, ligne par ligne, le Nom de l'entreprise et qu'il ajouter plombier.

    Mon problème => je ne sais pas comment aller chercher "monfichier/mafeuille/macellule + plombier" pour renseigner la première barre de recherche (Nom + "plombier") puis dans la deuxième barre de recherche (ville), idem "monfichier/mafeuille/macellule"

    Je ne m'y connais pas trop en VBA et j'apprend doucement mais surement... en espérant que vous puissiez me venir en aide

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    c'est l'icône # pour baliser un code ! Sinon cela a l'air plutôt pas mal pour un débutant …

    Afin d'éclaircir l'horizon d'éventuels intervenants :

    • joindre un classeur sans code (donc en .xlsx) pour voir où se trouvent exactement les données;

    • expliquer comment trouver l'info manuellement car j'ai essayé avec les données du code, je ne la visualise pas.
    Et via le code non plus (pas de click déclenché sur le bouton) mais cela doit être dû au point suivant;

    • préciser la version d'IE et de Windows …

    _________________________________________________________________________________________________________
    Je suis Paris, Charlie, Bruxelles, …

  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
    Billets dans le blog
    8
    Par défaut
    héhé!! et oui pas si facile surtout avec ce genre de page ou meme les HREF sont construit dynamique par script

    mais je viens de trouver je fait un petit test et reviens

    @Marc pour un débutant non il n'y arrivera jamais sans lui montrer comment sortir des sentiers battus

    re
    en fait les Href de la balise a sont une fois sur deux a la meme place
    il faut reconstruire l'url de chaque entreprise avec une partie de l'id d'un bloc

    comme sui regarde dans la fenêtre debug
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test()
    Dim IE As Object, url As String
    Set IE = CreateObject("internetexplorer.application")
    url = "www.pagesjaunes.fr/annuaire/chercherlespros?quoiqui=plombier&ou=Toulon&proximite=1"
    IE.Visible = True
    IE.navigate url
    Do: DoEvents: Loop While IE.readystate <> 4 'or ie.busy
    Set resultats = IE.document.getelementsbyclassname("bi-bloc blocs clearfix ")
    'Debug.Print resultats(0).innerhtml
    For i = 0 To resultats.Length - 1
    Debug.Print "http://www.pagesjaunes.fr/pros/detail?bloc_id=" & Split(Split(resultats(i).innerhtml, "bi-contact bi-contact-")(1), " ")(0)
    Next
    ' on doit obtenir ce genre d'adresse :http://www.pagesjaunes.fr/pros/detail?bloc_id=0494487911554459790013C0001
    End Sub
    je finalise pour l'url de base recherche en dynamique
    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

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/03/2015, 21h28
  2. [XL-2003] Interaction VBA et Explorer
    Par zneidi77 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/03/2013, 09h53
  3. [XL-2007] Interaction VBA et IE
    Par haifas dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 16/01/2013, 11h55
  4. [XL-2007] Interaction VBA Excel -- Windows -- Word
    Par SYM27 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/03/2011, 16h53
  5. Interaction VBA entre 2 formulaires Access
    Par joshua12 dans le forum Access
    Réponses: 2
    Dernier message: 27/08/2006, 20h10

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