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 :

Recherche info sur page WEB via macro VB


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 4
    Par défaut Recherche info sur page WEB via macro VB
    Bonjour,

    J'ai lu cette discussion.
    J'ai exactement besoin de ce type de macro pour societe.com, je l'ai adaptée à mon besoin et je n'ai pas de souci pour récupérer l'adresse, ville etc.

    Cependant, je n'arrive pas à récupérer le nom de l'entité légale :

    Pour l'exemple, je voudrais récupérer "L'OREAL" sur l'URL http://www.societe.com/societe/l-oreal-632012100.html

    J'ai analysé les données récupérées dans la page "Temp" que la macro créé mais la donnée "Entité Légale" (L'OREAL) ne figure nul part.

    Est ce que la macro que tu as créé restreint la partie de la page à exporter sous excel ?? J'ai essayé de modifier qq trucs mais n'étant pas un pro en MACRO je n'ai pas réussi à extraire la totalité de la page de societe.com

    Par avance merci bcp pour votre aide,

    Eric

  2. #2
    Membre expérimenté Avatar de Denis la Malice
    Homme Profil pro
    FabManager
    Inscrit en
    Février 2013
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : FabManager
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2013
    Messages : 133
    Par défaut Chercher de nouvelles informations
    Bonjour,
    si j'ai bien compris, il faut retrouver le nom de la société (par exemple L'OREAL) dans la fiche.
    Voici comment je m'y prendrais pour faire cela.

    Je modifie le code pour ne pas détruire la feuille Temp en fin de traitement. Par exemple comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Application.DisplayAlerts = False
        'Sheets("Temp").Delete
        Application.DisplayAlerts = True
    Ensuite, dans ma feuille de recherche, je mets le Siren de L'Oréal (632 012 100) et je lance la macro RemplirInfo.
    Je cherche toutes les occurrences de L'OREAL dans cette feuille et j'essaie d'identifier le ou les champs pertinents.
    Par exemple en case A63 j'ai une cellule qui contient exactement ce que je recherche. En case A73 j'ai une cellule qui contient "Plus d'infos sur L'OREALComplétez la fiche L'OREAL". Elle contient ce que je cherche mais il faut décortiquer la chaine de caractère.

    Ensuite je refait la même chose avec d'autres SIREN correspondant si possible à des entités de diverses formes sociales (SA, EURL, artisan, SCI, etc.). Et j'essaie de déterminer quels sont les invariants. Est-ce que le nom qui m'intéresse est toujours en cellule A63 ? Est-ce que j'ai toujours la même phrase "Plus d'infos sur XXXComplétez la fiche XXX".

    Personnellement je préfèrerais chercher "Plus d'infos sur ", enlever le début de la phrase pour donner "L'OREALComplétez la fiche L'OREAL", chercher la sous chaine "Complétez la fiche ", identifier les 2 sous-chaine avant et après, les comparer et me dire que j'ai la bonne information.

    Dis-nous ce que tu as trouvé et quelle solution tu as retenue.

    Cordialement.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 4
    Par défaut
    Merci pour ton aide, effectivement j'avais procédé comme cela pour identifier les cellules mais sur la société que je cherchais je n'arrivais pas à trouver le nom de l'entité légale. Problème visuel en fait et surtout un mauvais paramétrage dans la recherche EXCEL car ce champs figurait bien...

    Je suis donc en mesure de le faire en choisissant simplement la valeur de la cellule en A63.

    J'ai 3 nouvelles questions:

    1 )Je voudrais faire un tableau avec le nom et la forme juridique dans 2 cellules différentes, savez-vous comment je peux faire cela ? J'arrive à afficher toutes les infos dont j'ai besoin dans une même cellule mais je pense qu'il y a un moyen plus rapide de se déplacer de x cellules sur la droite dans la même ligne pour remplir la forme juridique plutôt que de refaire tourner la même macro ?

    2) Aussi, je voudrais que ma macro vérifie si une cellule de la ligne de recherche n'est pas vide avant de lancer la recherche. L'idée étant que si la macro a déjà tourné dans le passé donc si les infos sont déjà présentes, inutiles d'aller chercher de nouveau l'info (gain de temps sur des centaines de lignes...)

    3) Je voudrais faire un check parce qu'il arrive que certains SIREN figurent plusieurs fois dans ma liste. Auriez-vous une idée pour que si le SIREN a déjà été cherchée, alors ils remplissent avec les datas déjà trouvées

    Merci bcp !

    Edit : J'ai réussi mon point 2 en rajoutant simplement un check au début avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    While Cells(Ligne, 2) <> ""
            Ligne = Ligne + 1
        Wend

  4. #4
    Membre expérimenté Avatar de Denis la Malice
    Homme Profil pro
    FabManager
    Inscrit en
    Février 2013
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : FabManager
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2013
    Messages : 133
    Par défaut REmplir plusieurs cellules
    Bonjour,
    la fonction "RechercheInfo(Siren As String) As String" a 1 paramètre et renvoie une valeur que l'on met dans une cellule.

    Si l problème est un tout petit peu plus complexe, il faut changer d'approche. On peut appeler "RechercheInfo" qui mettra ses réponses dans plusieurs cellules.

    Il suffit, par exemple, de lui passer le n° de la ligne en paramètre et la fonction rangera les infos dans les colonnes correspondantes.

    Le proto de la fonction deviendra :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Function RechercheInfo(Siren As String, Ligne As Integer) As Boolean
    en supposant, par exemple que la fonction renvoie VRAI si ça se passe bien et FAUX s'il y a une erreur.
    Pour faire propre, tu peux déclarer les n° de colonnes en constantes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Const Col_Nom = 2
    Const Col_Forme = 3
    Const Col_Justice = 4
    Ensuite pour écrire dans une cellule c'est facile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Cells (Ligne, Col_Nom) = LeNom
    Cells (Ligne, Col_Forme = LaForme
    Cells (Ligne, Col_Justice = LaJustice
    RechercheInfo = True
    Exit Function
    Ce ne sont que des exemples, à adapter.

  5. #5
    Membre expérimenté Avatar de Denis la Malice
    Homme Profil pro
    FabManager
    Inscrit en
    Février 2013
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : FabManager
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2013
    Messages : 133
    Par défaut Gestion des doublons
    Une astuce pour gérer les doublons. Commence dans ta macro par trier tes lignes par n° de Siren. Ensuite, déclare une variable "DernierSiren". Si le Siren en cours est égal au DernierSiren alors passe au suivant, sinon met le Siren courant dans Dernier Siren et traite le Siren.
    C'est rapide à faire. Mais si l'ordre a de l'importance, tant pis.

    Sinon, sur chaque ligne traitée, fait une boucle de la ligne 1 à la ligne précédente pour vérifier que le Siren n'a pas déjà été vu.

    Sinon utilises les boutons de Filtre/Tri pour trier tes Siren chaque fois que tu en ajoutes, et mets une mise en forme conditionnelle qui colore en rouge les cellules non vides identiques à la cellule juste au-dessus. Les doublons saute alors aux yeux.

  6. #6
    Invité de passage
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Avril 2020
    Messages : 1
    Par défaut toujous sur société.com
    Bonjour Denis,
    Tu m'as l'air bien calé, et j'ai essayé de créer une macro pour un besoin a peu près identique a celui auquel tu as répondu.
    Je souhaite complété les cases vides du tableau en pj. Toutes les infos a l'exception du téléphone sont sur le site.
    J'enregistre une macro et quand je veux l'appliquer à une autre ligne, le message d'erreur ci dessous apparait, il est au niveau de ce sigle [B] dans le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
            False, NoHTMLFormatting:=True
    Pourrais tu m'aider stp
    Merci
    Seb

    mon code est :
    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
    Selection.Copy
        Application.CutCopyMode = False
        ActiveWindow.SmallScroll ToRight:=7
        Range("P2").Select
        ActiveSheet.Paste
        Application.WindowState = xlMinimized
        Application.WindowState = xlNormal
        Range("O2").Select
        ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
            False, NoHTMLFormatting:=True
        Application.WindowState = xlMinimized
        Application.WindowState = xlNormal
        Range("Q2").Select
        ActiveSheet.Paste
        Application.WindowState = xlMinimized
        Application.WindowState = xlNormal
        Range("L2").Select
        ActiveSheet.Paste
        Application.WindowState = xlMinimized
        Application.WindowState = xlNormal
        Range("M2").Select
        ActiveSheet.Paste
        Application.WindowState = xlMinimized
        Application.WindowState = xlNormal
        Range("N2").Select
        ActiveSheet.Paste
    End Sub
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Recherche info sur page WEB via macro VB
    Par boubou26 dans le forum Macros et VBA Excel
    Réponses: 26
    Dernier message: 20/07/2015, 17h33
  2. [MySQL-5.5] Entrer des données via tableau sur page web
    Par patito1975 dans le forum MySQL
    Réponses: 2
    Dernier message: 19/01/2015, 11h12
  3. [XL-2007] Récupération d'infos sur page WEB
    Par issoram dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/11/2010, 11h38
  4. recuperer des info sur le web via un programme
    Par lord_abdennour dans le forum C++
    Réponses: 1
    Dernier message: 02/09/2010, 15h46

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