Vídeo recomendado
https://youtu.be/diWPPPhW-9E

VBA Consulta Placas Site Detran

Dúvidas gerais sobre Excel
dougpinto
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Dom Jun 14, 2020 8:57 pm

VBA Consulta Placas Site Detran

Mensagem por dougpinto »

Boa noite,

Estou programando uma VBA para acessar o Site do Detran de SC e SP. Porém gostaria que a macro após o CAPTCHA ser resolvido Manualmente e fosse clicado no botão de "consultar" do site continuasse a macro automaticamente, tirasse um print da tela do IE e salvasse em "c:\Print". Segue o código que fiz por enquanto.
Código:

Código: Selecionar todos

'Inclui referência ao Microsoft Internet Controls
Sub lReferenciaIE()
    Dim ObRef
    On Error Resume Next

    ThisWorkbook.VBProject.References.AddFromGuid "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}", 1, 1
End Sub

Sub lsPesquisarPlacaFaixa()
    'Inclui a referência se não houver
    lReferenciaIE
    
    Dim IE                  As InternetExplorer
    Dim lRenavam            As String
    Dim lPlaca              As String
    Dim lLocal              As String
    Dim lUltimaLinhaAtiva   As Long
    Dim lContador           As Long
    Dim lProximaplaca       As VbMsgBoxResult
    Dim lCaptcha            As VbMsgBoxResult
    
        
        
    Worksheets("dados").Activate
    Range("A5").Select
    
Inicio:
    
    'Identifica a última célula ativa da lista
    lUltimaLinhaAtiva = Worksheets("dados").Cells(Worksheets("dados").Rows.Count, 1).End(xlUp).Row
    
    'Verifica se o Local é Concordia, se for vai pro Site Dentran SC se não, vai pra Dentran SP
    If nome = Concordia Then GoTo Linha1 Else GoTo Linha2
        
Linha1: 'Verifica se é de Concordia a placa na planilha, se não for, vai para o site de Detran SP
    If ActiveCell = "Concordia" Then
    ActiveCell.Offset(0, 3) = "OK"
    Else: GoTo Linha2:
    End If
    
    'Cria um objeto Internet Explorer
    Set IE = New InternetExplorer
        
    'Torna o objeto visível
    IE.Visible = True

    'Faz um loop por todas as linhas da planilha
    For lContador = 5 To lUltimaLinhaAtiva
        'Navega ao site do Detran SC
        IE.Navigate "http://consultas.detrannet.sc.gov.br/servicos/consultaveiculo.asp"
        
        'Identifica se a página já foi totalmente carregada
        While IE.ReadyState <> READYSTATE_COMPLETE
        Wend
        
     
        'Carrega os dados de Placa e Renavam que serão preenchidos na página
        lRenavam = Range("C" & lContador).Value
        lPlaca = Range("B" & lContador).Value
        
        'Carrega os dados de Placa e Renavam na página e submente os dados do formulário
        IE.Document.all("renavam").innertext = lRenavam
        IE.Document.all("placa").Value = lPlaca
        

                   
        'Identifica se a página já foi totalmente carregada
        While IE.ReadyState <> READYSTATE_COMPLETE
        Wend
                        

    Next lContador
  
    GoTo fim
Quando ele abre o IE e preenche os dados no site Placa/Renavam queria que ele desse tempo do usuário resolver o Captcha manual e após printar a tela do IE.

Mesma coisa na parte 2 do código pesquisa detran SP

Código:

Código: Selecionar todos

Linha2:
    ActiveCell.Offset(0, 3) = "OK"
    
 'Cria um objeto Internet Explorer
    Set IE = New InternetExplorer
        
    'Torna o objeto visível
    IE.Visible = True

    'Faz um loop por todas as linhas da planilha
    For lContador = 5 To lUltimaLinhaAtiva
        'Navega ao site do Detran SC
        IE.Navigate "https://www.ipva.fazenda.sp.gov.br/IPVANET_Consulta/Consulta.aspx"
        
        'Identifica se a página já foi totalmente carregada
        While IE.ReadyState <> READYSTATE_COMPLETE
        Wend
        
      
        'Carrega os dados de Placa e Renavam que serão preenchidos na página
        lRenavam = Range("C" & lContador).Value
        lPlaca = Range("B" & lContador).Value
        
        'Carrega os dados de Placa e Renavam na página e submente os dados do formulário
        IE.Document.all("conteudoPaginaPlaceHolder_txtRenavam").innertext = lRenavam
        IE.Document.all("conteudoPaginaPlaceHolder_txtPlaca").Value = lPlaca

    
    
    Next lContador
    GoTo Fim1
    
vErro:
MsgBox "Pesquisa Não Realizada"

GoTo Fim1

fim:
lProximaplaca = MsgBox("Pesquisar Próxima Placa?", vbYesNo, "Próxima Placa")
        If lProximaplaca = vbYes Then
        GoTo Fim1
        
        Else: GoTo Inicio
        End If
                
Fim1:
IE.Quit
    
End Sub
Gostaria de sugestão, a ideia central é simples, pega a cidade onde o veiculo esta emplacado, entra no site do respectivo detran, preenche placa/renavam, o usuario resolve o captcha e após salva um print do IE no C:\Placas e após vai para próxima placa até que todas as placas da lista sejam consultadas.

Realmente preciso de ajuda!


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Raygsson
Manda bem
Manda bem
Mensagens: 118
Registrado em: Sex Jan 31, 2020 8:06 pm

Re: VBA Consulta Placas Site Detran

Mensagem por Raygsson »

Acredito que consiga tirar print da tela do navegador (Firefox,Chrome, etc) e salvar usando a biblioteca VBA Selenium , vai ter que baixar na internet, instalar no excel e refazer o seu codigo usando a biblioteca, os comandos são um pouco diferentes dos comandos Internet Explorer. Aqui no site/forum tem alguns artigos sobre essa biblioteca.


Responder