Recherche Tél pour SIREN sur Internet

  • Initiateur de la discussion Initiateur de la discussion Jouxte
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Jouxte

XLDnaute Occasionnel
Bonjour à toutes et tous,

Je suis en train de mettre à jour une importante base de données (plusieurs milliers de lignes) dont un extrait est joint.

J'aurais souhaité récupérer les adresses et téléphones sur Internet.

Pour l'instant je fais des recherches par code SIREN depuis le site :

=http://www.pagespro.com/faq.php (Questions fréquentes : annuaire PagesPro)

Puis des copier coller.

Mais bien sûr c'est très long.

L'un ou l'une d'entrevous pourrait-il m'aider à formaliser une macro qui travaille pour moi en allant sur le site demander les coordonnées depuis le code SIREN et qui colle les valeurs là où ça va bien ?

Sincères remerciements par avance à tous les contributeurs.
 

Pièces jointes

Re : Recherche Tél pour SIREN sur Internet

Bonjour Staple1600, bonjour le Forum,

L'avertissement que tu me cites est visiblement pour éviter le Spam (donc adresses Email) et la prospection automatique de particuliers.
S'agissant de codes SIREN on ne s'adresse bien évidemment qu'à des entreprises.

Mais bon! peut-être vaut-il mieux ne pas tenter le diable.
 
Re : Recherche Tél pour SIREN sur Internet

bonjour

tu peux t'inspirer peut-être du code suivant que j'avais fait pour un usage personnel.

au sein de la 1° macro, tu devras définir la base du lien hypertexte de la requête "http://totoworld.com/siren?=&" toncodesiren
la "macro_essai_parsing" est à réécrire entièrement ou partiellement, je te l'ai laissé à titre d'exemple pour correspondre à tes besoins.

ce code fonctionne ainsi : définis dans la 1° macro l'URL de base, place toi dans une feuille, sélectionnes-y les cellules contenant les siren, et lance la 1° macro.

elle crée les feuilles Reporting & Resultat si inexistantes

Dim ChainesAControler(1 To 49)
Sub macro_essai()
'On Error Resume Next
Application.ScreenUpdating = False

Dim fichier$ 'fichier en cours de lecture
Dim Pattern$ 'chaîne des fichiers à rechercher
Dim i% 'index du fichier en cours de lecture

Dim wbActif As Workbook 'pour que la macro écrive dans le classeur en cours
Dim wshResultSheet As Worksheet 'et dans la feuille en cours
Dim wshQuerySheet As Worksheet 'feuille de travail créée à chaque exécution de la macro
Dim objQT As QueryTable 'une requête sera effectuée pour importer chaque fichier dans la feuille d'analyse
Dim Range_Siren As Range 'contient les codes siren
Dim Requete_URL_Base As String

Range_Siren = Selection

Requete_URL_Base = "http://www.........?&..."

Set wbActif = ActiveWorkbook
If SheetExist("Reporting") = False Then
wbActif.Worksheets.Add
ActiveSheet.Name = "Reporting" '& Format(Now, "yyymmdd_hmm")
End If


Set wshResultSheet = wbActif.Worksheets("Reporting")
wshResultSheet.Cells.Clear


'la liste des colonnes est stockée dans une variables tableau "ChainesAControler"
Call init_tableau
For i = 1 To UBound(ChainesAControler)
wshResultSheet.Cells(1, i).Value = ChainesAControler(i)
Next i


'la feuille crée ci-dessous est crée à chaque lancement de macro
'et c'est dans cette feuille qu'est rapatrié le résultat des requêtes web
If SheetExist("Requete_Web") = False Then
wbActif.Worksheets.Add
ActiveSheet.Name = "Requete_Web" '& Format(Now, "yyymmdd_hmm")
End If
Set wshQuerySheet = wbActif.Worksheets("Requete_Web")

For Each cl In Range_Siren
i = i + 1

'Création de la requête pour récupérer les données.
With wshQuerySheet
If objQT Is Nothing Then
Set objQT = .QueryTables.Add(Connection:="URL;" & Requete_URL_Base & cl.Value, Destination:=.Range("A1"))
objQT.Refresh
Else
With objQT
If .Refreshing Then
Debug.Print "Query is currently refreshing: please wait"
Else
.Connection = "URL;" & strTargetDir & fichier: .Refresh ' BackgroundQuery:=False' .ResultRange.Select
End If
End With
End If
End With

'Analyse de la page requêtée
Call macro_essai_parsing(wshQuerySheet, wshResultSheet)

'passage au fichier suivant
fichier = Dir
Next cl

Exit Sub
handler:

On Error GoTo 0
End Sub

Sub macro_essai_parsing(wshQuerySheet, wshResultSheet)

Application.ScreenUpdating = False
Dim ControleFicheArticle As Range, rg_caracteristique As Range, caracteristique, val_caracteristique
Dim actRow As Long, k As Long

actRow = wshResultSheet.Range("A65536").End(xlUp).Row
If actRow = 1 Then actRow = 2 Else actRow = actRow + 1

'en supposant que la requête web a échoué et que la page retournée n'est pas la page escomptée
'il faut prévoir un contrôle pour passer à la requête suivante et donc sortir de cette procédure.
'ici, le mot à rechercher est la première valeur de la variable tableau ChainesAControler(1)
'adaptez et réactiver si vous voulez vous en servir
'Set ControleFicheArticle = wshResultSheet.Cells.Find(what:=ChainesAControler(1))
'If ControleFicheArticle Is Nothing Then GoTo nnext

X = 0
Do

'nous partons d'une cellule et descendons faire le bas
Set cl = wshQuerySheet.Range("D13").Offset(X)

If cl.Address(0, 0) = "D13" Then k = 1: val_caracteristique = cl.Value: GoTo wwrite
If cl.Address(0, 0) = "D14" Then k = 2: val_caracteristique = cl.Value: GoTo wwrite

If UBound(Split(cl.Value, ":")) <> -1 Then


'recherche index colonne
If UBound(Split(cl.Value, ":")) > 0 Then
caracteristique = Split(cl.Value, ":")(0)

Set rg_caracteristique = wshResultSheet.Rows(1).Find(what:=Trim(caracteristique))
If Not rg_caracteristique Is Nothing Then
k = rg_caracteristique.Column
Else
k = wshResultSheet.Rows(1).End(xlToRight).Column + 1
wshResultSheet.Cells(1, k).Value = caracteristique
End If

val_caracteristique = Split(cl.Value, ":")(1)
End If


End If

wwrite:
If cl.Value <> "" Then wshResultSheet.Cells(actRow, k).Value = val_caracteristique
X = X + 1
Loop Until cl.Value = "" & cl.Row <= wshQuerySheet.Range("D65536").End(xlUp).Row
nnext:
End Sub
Sub init_tableau()
ChainesAControler(1) = "N°"
ChainesAControler(2) = "Raison sociale"
ChainesAControler(3) = "Siren"
ChainesAControler(4) = "APE Naf700"
ChainesAControler(5) = "Intitulé Naf"
ChainesAControler(6) = "APE Nes114S"
ChainesAControler(7) = "Intitulé Nes"
ChainesAControler(8) = "Code postal"
ChainesAControler(9) = "Commune"
ChainesAControler(10) = "Dept"
ChainesAControler(11) = "Region"
ChainesAControler(12) = "de pax"
ChainesAControler(13) = "à pax"
ChainesAControler(14) = "CA 2006 de"
ChainesAControler(15) = "à CA 2006"
ChainesAControler(16) = "Tranche de taux d'export"
End Sub

Public Function SheetExist(Sheet As String) As Boolean
On Error GoTo FExErr
Worksheets(Sheet).Select
SheetExist = True
Exit Function
FExErr: SheetExist = False
Exit Function
End Function
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour