доброго дня! Коллеги, прошу совета стоит ли начинать браться и если знаете - то с чего начать копать? Мне дико повезет, если уже есть решение и кто-то про него знает. дано: 650 почт, 400 из которых с доменом и 250 личных. Известно про название компании (не всегда правильно написано), почта, номер. задача: на основе почты, названия компании подтянуть ИНН и ОКВЭД. Нашел единственный пока для себя вариант это сервис https://dadata.ru/api/find-company/by-email/. Реально ли по такой API документации сопрячь это дело с VBA? Например как функционал надстройки ProXL, но там данные подтягиваются только на основании ИНН. Заранее спасибо! Буду рад обычному совету, т.к. интересно самому разобраться
написал: вот такой пример для ИНН организаций по почте придумался
Добрый день! Спасибо за пример! Как я понял он собирает данные на сайте, где не такая полная база. Можете посмотреть вот здесь - https://dadata.ru/company-by-email/, аки появятся предложения) Я неполную инфу наверно скинул, вот тут у них прям ресурс который сам данные собирает. Я попробовал набросать код на основании других примеров из их документации, но не понимаю в чем может быть затык, пока плохо ориентируюсь. В примере уже добавлены мои API ключи с тестового аккаунта, что Вам не регать.
Скрытый текст
Private Const API_KEY = "84fb51a10d52cf788bb5f41dfbc83b1e94233b0a" Private Const SEC_KEY = "e1b0a92aa74e9df5e2f607d9251ec5565c78b041" Function FindCompany(ByVal email As String) As Object Dim http As Object Dim request As String Dim result As Object Set http = CreateObject("WinHttp.WinHttpRequest.5.1") http.Open "POST", "https://suggestions.dadata.ru/suggestions/api/4_1/rs/findByEmail/company"; http.setRequestHeader "Content-Type", "application/json" http.setRequestHeader "Accept", "application/json" http.setRequestHeader "Authorization", "Token " & API_KEY http.setRequestHeader "X-Secret", SEC_KEY request = "{""query"": """ & email & """}" http.send request Set result = JsonConverter.ParseJson(http.responseText) Set FindCompany = result End Function Private Sub Worksheet_Change(ByVal Target As Range A1) Dim KeyCells As Range If Target.Column <> 1 Then Exit Sub If Target.Row = 1 Then Exit Sub If IsEmpty(Target) Then Target.Offset(0, 1).Resize(1, 4) = Empty: Exit Sub Dim Company As Object Set Company = FindCompany(Target.Value) If Company("suggestions").count > 0 Then With Company("suggestions")(1)("data.email") Target.Offset(0, 1) = ("name") Target.Offset(0, 2) = .("inn")("data")("source") Target.Offset(0, 3) = .("inn")("source") Target.Offset(0, 4) = .("okved") End With End If End Sub