Olá pessoal, tudo bem?
Alguém pode me ajudar? Estou seguindo esse tópico desde a primeira página, e o conhecimento que obtive foi impressionante! Um dos melhores tópicos de toda a WWW.
Sou extremamente amador em VBA, estou estudando a pouquíssimo tempo.. mas já tenho uma tarefa para fazer com extração de dados!
Como eu não sabia nem por onde começar, fui pegando vários códigos por ai, e tentei torna-los funcionais.. usando todo tipo de magia possível! rs
Meu objetivo:
Gerar documentos a partir de um modelo do Word, ou html.
1) O gerador acessa os campos de uma outra página html
a. A definição dos campos é por caixa de seleção.
2) O gerador de documentos transfere para o modelo word os dados selecionados, e gera o documento, que ainda pode ser editado.
páginas html de onde serão retirados os dados
Dados 1:
https://gru.inpi.gov.br/pePI/servlet/Ma ... do=1850498
Dados2:
https://gru.inpi.gov.br/pePI/servlet/Ma ... ido=852259
----------------
O que eu fiz até agora?
Consegui abrir a pagina de login do Inpi.gov.br (onde faço a pesquisa pelo número do processo)
logo como anonimo.. e só dar um click no lugar certo.
insiro o numero do processo no lugar certo.
e dou o click para acessar penultima página..
ai eu fiquei travado.. não acho o id nem o "name" nem nada do da referência onde preciso colocar o click. Tenho a impressao que o servidor geral um link novo para cada processo.. não sei dizer.. e depois dessa página vem o meu destino final de onde eu preciso tirar os dados... estou quase lá alguem pode tentar executar o meu código e tentar me ajudar?
pelo que entendi a id seria algo como "visitado" ou "normal".. estou completamente perdido nesse html... quem puder me ajudar.. e só um maldito click que nao esta dando certo"""
ja tentei IE.Document.frames(0).Document.getElementById("visitado").Click
IE.Document.frames(0).Document.getElementById("normal").Click
ja tentei de varias outras formas também... estou desanimando ...
Obrigado a todos"!
Esse é o meu código atualmente.
Código: Selecionar todos
Private Declare PtrSafe Function ScriptInternet Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal operation As String, ByVal filename As String, Optional ByVal parameters As String, Optional ByVal directory As String, Optional ByVal windowstyle As Long = vbMinimizedFocus) As Long
Private Declare PtrSafe Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Const SW_SHOWNORMAL = 1
Const WM_CLOSE = &H10
Const gcClassnameMSWord = "OpusApp"
Const gcClassnameMSExcel = "XLMAIN"
Const gcClassnameMSIExplorer = "IEFrame"
Const gcClassnameMSVBasic = "wndclass_desked_gsk"
Const gcClassnameNotePad = "Notepad"
Const gcClassnameMyVBApp = "ThunderForm"
Sub Referencia()
Dim ObRef
On Error Resume Next
' Adiciona Controles da Net
ThisWorkbook.VBProject.References.AddFromGuid "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}", 1, 1
End Sub
''NicolExtrator
Sub NicolExtrator()
'declaração de variaveis
Dim lnk As Object, IE As Object, doc As Object, i As Long
Dim ULogin As Boolean, ieForm
'acessa o primeiro link
Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = False
.Navigate "https://gru.inpi.gov.br/pePI/servlet/LoginController?action=login"
Do Until .readyState = 4: DoEvents: Loop
Set doc = IE.Document
'acessa a segunda parte do link
End With
Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = True
.Navigate "https://gru.inpi.gov.br/pePI/jsp/marcas/Pesquisa_num_processo.jsp"
Do Until .readyState = READYSTATE_COMPLETE: DoEvents: Loop
'preenche a aba de pesquisa e clica em pesquisa
IE.Document.all("NumPedido").innerText = "818523670"
IE.Document.all("botao").Click
Do While IE.Busy
DoEvents
Loop
Set IE = Nothing
For Each lnk In doc.Links
i = i + 1
Range("A" & i) = lnk.innerText
Range("B" & i) = lnk
Next lnk
End With
End Sub