Lorsque l’on lance la consultation d’un site internet, le navigateur (Mozilla, Chrome, Internet Explorer…) envoie une requête à ce site. Ce site retourne sa réponse et le navigateur l’affiche, généralement, sous la forme d’une page mise en forme avec le langage HTML (HyperText Mark-Up Language) et agrémentée d’éléments dynamiques encodés PHP ou JavaScript.
Il est parfaitement possible d’envoyer des requêtes non pas à partir d’un navigateur internet mais à partir d’un programme VBA (par exemple) pour ensuite extraire les données utiles du résultat retourné par le site.
Par exemple, le site d’information juridique Pappers.fr renvoie le texte HTML (ici un extrait) suivant au sujet de la société PSA AUTOMOBILES SA (SIREN 542 065 479) :
Ce code est affiché ainsi par un navigateur internet (ici Mozilla) :
Le code HTML retourné par Pappers contient de nombreuses informations juridiques ayant trait à la société interrogée comme sa dénomination sociale, l’adresse de son siège social…
Il est aisé d’extraire de ce code des informations. C’est l’objet du code VBA ci-après.
Ce code crée deux fonctions directement utilisables dans des formules de calcul Excel au même titre que SOMME ou RECHERCHEV. Pour ajouter de nouvelles fonctions à Excel, lire l’article EXCEL : Créer une fonction en VBA.
Ces deux fonctions sont DénominationSociale et NuméroTVAIntracommunautaire et s’utilisent dans des formules Excel ainsi :
=DénominationSociale(“542065479”)
=NuméroTVAIntracommunautaire(“542065479”)
Function DénominationSociale(ByVal SIREN As String) Dim Url As String, Txt As String Url = "https://www.pappers.fr/entreprise/" & SIREN With CreateObject("WINHTTP.WinHTTPRequest.5.1") .Open "GET", Url, False .send Txt = .responseText End With DénominationSociale = Split(Split(Txt, "<h1 class=""small-text"">")(1), "</h1")(0) End Function Function NuméroTVAIntracommunautaire(ByVal SIREN As String) Dim Url As String, Txt As String Url = "https://www.pappers.fr/entreprise/" & SIREN With CreateObject("WINHTTP.WinHTTPRequest.5.1") .Open "GET", Url, False .send Txt = .responseText End With NuméroTVAIntracommunautaire = Split(Split(Txt, "TVA intracommunautaire : <span>")(1), "</span>")(0) End Function
Ces fonctions fonctionnement toutes deux de la même manière. Elles envoient une requête (CreateObject(“WINHTTP.WinHTTPRequest.5.1”) .Open “GET”, Url, False . Send) au site Pappers (dont l’adresse est contenue dans la variable Url (https://www.pappers.fr/entreprise/” & SIREN). Le numéro SIREN contenu dans la variable SIREN est communiqué par l’utilisateur par le bias de la formule Excel.
Le résultat de la requête est récupéré par la variable Text (Txt = .responseText).
La fonction Split permet de récupérer l’information souhaitée (soit la dénomination sociale et le numéro de TVA intracommunautaire). La fonction Split convertit une chaîne de caractères en une variable tableau en fonction de séparateurs.
Extrait du code HTML contenant la dénomination sociale :
Extrait du code HTML contenant le numéro de TVA intracommunautaire :
Le classeur Excel comprenant les fonctions VBA exposées ci-avant est téléchargeable ci-après.
__
Approfondir le sujet : Programmer en VBA


Derniers articles parBenoît RIVIERE (voir tous)
- EXCEL : Vérifier la validité d’un numéro SIRET - lundi 2 octobre 2023
- Généralisation de la facturation électronique reportée en 2026 - vendredi 29 septembre 2023
- Automatiser la création d’une arborescence de dossiers à l’aide d’un batch DOS - lundi 25 septembre 2023
- Vers des intelligences artificielles dignes de confiance - lundi 18 septembre 2023
- EXCEL : Vérifier la validité d’un numéro SIREN - lundi 11 septembre 2023
Bonjour,
Je regarde depuis plusieurs années vos articles qui sont vraiment très intéressant.
L’article suivant est très intéressant pour récupérer les données des entreprises rapidement et ainsi établir les DAS2. Je viens de télécharger le fichier excel. Avec le numéro SIREN j’ai bien le nom de la société mais comment puis je obtenir l’adresse, le code postal et la ville de la société ainsi que l’activité ?
merci par avance pour votre aide,
bien cordialement,
Bonjour,
Merci pour votre message.
Pour obtenir les informations souhaitées, il vous suffit de suivre le même processus que celui que j’ai suivi pour récupérer la dénomination sociale par exemple, puis coder la récupération de ces données sur le même principes.
Cordialement,
Benoît RIVIERE
Bonjour, merci pour votre fichier Excel de recherche des dénominations et code TVA. Le fichier téléchargé fonctionne parfaitement pour la désignation sociale mais pour le code TVA. Pourriez vous m’indiquer comment je peux régler le problème, svp ?
Merci,
Bonjour, en effet Pappers a changé la présentation des informations sur son site. Il faut donc modifier le code. Je regarderai ce sujet à l’occasion. Bon week-end.
Bonjour, le ficchier ne fonctionne pas (office 2021)
jd@atb-etudes.fr
Bonjour,
Pappers a changé la présentation de son site internet. Il est donc nécessaire de modifier le code du programme.
Cordialement,
B. RIVIERE