Ir para conteúdo

A partir do dia 19/11/2018, o foco do Fórum do BABOO é apenas Windows e Segurança Digital conforme informado no início de 2018.
As áreas que não têm relação com esses dois assuntos foram arquivadas e seus tópicos estão disponíveis para consulta na área Tópicos Antigos.

avatarmago

Cálculo de Pedágio em Macro

Mensagem Recomendada

Ola, gostaria de pedir um favorzinho, pode ser ? :)

Estou tendo dificuldades em achar ( já pesquisei ) porem não consegui, uma formula que calcula o pedágio de determinado lugar ate outro.

Queria que a formula tivesse quantos pedágios teriam e quanto custaria cada um.

Obrigado :D

Editado por Mr.Million

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui na empresa de transporte onde trabalho utilizamos o site "Mapeia", acredito que já tenha ouvido falar, no caso da macro você teria que cadastrar cada pedágio e seu respectivo valor, a utilização do site não seria mais simples?

Att.

Bruno de Carvalho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendo, porem eu teriaarrow-10x10.png que fazer vários fretes e eles estão juntos com o orçamento ( incluindo no valor ).

Usar o mapa para cada orçamento, com o tempo ficaria mais cansativo e repetitivo, mas com a macro ja ficaria registrada e não teria que repetir o processo pois ja seria automático.

 

PS: Acrescentando algo que esqueci, o frete e para todoarrow-10x10.png o Brasil, e já tenho o esquema em que eu tenho o caminho e o KM, queria quantos pedágios e o valor de cada um do caminho.

 

Editado por avatarmago

Acrescentar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei uma planilha que tem uma função parecida, ele entra no site do Mapeia e busca os dados presentes nas células, porém ela não está retornando este dados para o excel, como não conheço muito de VBA não se a solução.

 

Seria bacana esperar por alguém com o conhecimento amplo na ferramenta e tentar nos ajudar.


'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 lsPesquisarPedagio()

    'Inclui a referência se não houver

    lReferenciaIE

    

    Dim IE                  As InternetExplorer

    Dim lCidadeOrig         As String

    Dim lCidadeDest         As String

    Dim lUltimaLinhaAtiva   As Long

    Dim lContador           As Long

    

    'Identifica a última célula ativa da lista

    lUltimaLinhaAtiva = Worksheets("Plan1").Cells(Worksheets("Plan1").Rows.Count, 1).End(xlUp).Row

    

    '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 = 2 To lUltimaLinhaAtiva

        'Navega ao site do Mapeia

        IE.Navigate "http://www.mapeia.com.br/"

        

        'Identifica se a página já foi totalmente carregada

        While IE.ReadyState <> READYSTATE_COMPLETE

        Wend

        

        sng = Timer

        Do While sng + 3 > Timer

        Loop

        

        'Carrega os dados de cidade de origem e destino que serão preenchidos na página

        lCidadeOrig = Range("A" & lContador).Value

        lCidadeDest = Range("B" & lContador).Value

        

        'Carrega os dados de cidade de origem e destino na página e submente os dados do formulário

        IE.Document.All("origin").innertext = lCidadeOrig

        IE.Document.All("destination").Value = lCidadeDest

        IE.Document.All.Item("calc").Click

       

        'Identifica se a página já foi totalmente carregada

        While IE.ReadyState <> READYSTATE_COMPLETE

        Wend



        sng = Timer

        Do While sng + 3 > Timer

        Loop

       

        'Faz um loop pelos objetos do tipo table na página

        For Each i In IE.Document.body.getElementsByTagName("table")

            If InStr(i.innertext, "Pedágios") > 0 Then

                For Each l In i.getElementsByTagName("tr")

                    If InStr(l.innertext, lCidadeOrig) Then

                        Range("E" & lContador).Value = l.getElementsByTagName("result")(1).innertext

                    End If

                Next l

            End If

        Next i

    Next lContador

    

    MsgBox "Concluído!"

End Sub

Mapeia - Teste.xlsm

Editado por zTartaglione

Compartilhar este post


Link para o post
Compartilhar em outros sites

@ztartaglione, fiz uma limpeza e uns ajustes no código que você disponibilizou, veja se funciona aí.

O código coloca na coluna 'E' o valor total do pedágio calculado pelo site.

Sub PesqCustoPedágios()
 Dim IE As InternetExplorer, CidadeOrig As String, sng As Date
 Dim LR As Long, Contador As Long, CidadeDest As String
  'Identifica a última célula ativa da lista
  LR = Cells(Rows.Count, 1).End(xlUp).Row
  'Cria um objeto Internet Explorer
  Set IE = New InternetExplorer
  'Torna o objeto visível
  IE.Visible = False 'True
  'Faz um loop por todas as linhas da planilha
   For Contador = 2 To LR
     'Navega ao site do Mapeia
     IE.Navigate "http://www.mapeia.com.br/"
     'Identifica se a página já foi totalmente carregada
     While IE.ReadyState <> READYSTATE_COMPLETE
     Wend
     sng = Timer
     Do While sng + 3 > Timer
     Loop
     'Carrega os dados de cidade de origem e destino que serão preenchidos na página
     CidadeOrig = Range("A" & Contador).Value
     CidadeDest = Range("B" & Contador).Value
     'Carrega os dados de cidade de origem e destino na página e submente os dados do formulário
     IE.Document.All("origin").innerText = CidadeOrig
     IE.Document.All("destination").Value = CidadeDest
     IE.Document.All.Item("calc").Click
     'Identifica se a página já foi totalmente carregada
     While IE.ReadyState <> READYSTATE_COMPLETE
     Wend
     sng = Timer
     Do While sng + 3 > Timer
     Loop
     'Coloca na coluna 'E' o valor total calculado do pedágio
      Cells(Contador, 5) = IE.Document.getElementById("toll-value").innerText
    Next Contador
    'IE.Quit
End Sub

 


 

Osvaldo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, funcionou da maneira desejada, apenas me surgiu uma duvida se é possivel realizar o mesmo processo com outros navegadores exemplo: Chrome e Firefox, visando melhorar a execução do codigo?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 21/11/2016 at 6:53 PM, zTartaglione disse:

Obrigado, funcionou da maneira desejada, apenas me surgiu uma duvida se é possivel realizar o mesmo processo com outros navegadores exemplo: Chrome e Firefox,

Testei no FireFox. Sugiro que você teste no Chrome.

 

...visando melhorar a execução do codigo?

Não entendi o que você quis dizer com "melhorar a execução do código"

 

sugestão - para responder clique na caixa "Clique aqui para responder", só clique em "citar" se necessário ;)


 

Osvaldo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 21/11/2016 at 7:56 PM, osvaldomp disse:

Obrigado, funcionou da maneira desejada, apenas me surgiu uma duvida se é possivel realizar o mesmo processo com outros navegadores exemplo: Chrome e Firefox,

Testei no FireFox. Sugiro que você teste no Chrome.

 

...visando melhorar a execução do codigo?

Não entendi o que você quis dizer com "melhorar a execução do código"

 

 

Não entendi como q coloca a formula no excel, criei a macro e fiz o procedimento, porém da um erro "o tipo definido pelo usuário não foi definido"

Gostaria de saber como q funciona a formula e como aplica-la.

PS: Quando da o erro, ele grifa "Sub PesqCustoPedágios()" de amarelo e "IE As InternetExplorer" de azul, que estão localizadas nas primeiras linhas.

Editado por avatarmago

Preenchimento

Compartilhar este post


Link para o post
Compartilhar em outros sites
15 minutos atrás, avatarmago disse:

Não entendi como q coloca a formula no excel, criei a macro e fiz o procedimento, porém da um erro "o tipo definido pelo usuário não foi definido"

Gostaria de saber como q funciona a formula e como aplica-la.

Instale o código em um módulo comum, assim:
1. copie o código daqui
2. a partir da planilha em que estão os dados tecle 'Alt+F11' para acessar o editor de VBA
3. no menu do editor >> Inserir >> Módulo
4. cole o código na janela em branco que vai se abrir

5. no menu clique em Ferramentas / Referências / marque as duas referências abaixo

    Microsoft HTML Object Library
    Microsoft Internet Controls

6. feito! 'Alt+Q' para retornar para a planilha e testar

para rodar o código:
7. tecle 'Alt+F8' >> selecione a macro correspondente >> Executar, ou insira um botão na planilha e vincule-o à macro ou vincule-a a um atalho de teclado (Alt+F8 > Opções).


 

Osvaldo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, agora estou com a duvida de como usar a macro, adicionei-a em um botão porem não consigo fazer ela calcular.

Até onde entendi ela me da os valores na coluna 'E, porém qual célula devo preencher para ela me dar essa resposta?

Clico pra rodar a macro e ela não da erro nem nada, só roda.

Obrigado, muito agradecido :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque os nomes das cidades/estados de origem na coluna 'A' e de destino na 'B'. Exemplos abaixo.

O código coloca o valor total dos pedágios na coluna E.

 

col A......................................................col B...........................................................................o código colocará este resultado na col E

.......origem..........................................destino            
são paulo sp..............................campinas sp.........................................................................R$ 17,50
campo mourão pr...................londrina pr............................................................................R$ 26,20
pintópolis mg...........................belo horizonte mg.............................................................R$ 4,80
campinas sp..............................londrina pr............................................................................R$ 101,50

Altere a linha do código, deixe conforme abaixo, para exibir a página do site durante a execução. Ajuste o tamanho e a posição das janelas do Excel e do site de forma que você consiga visualizar ambas e assim acompanhar as ações do código.

IE.Visible = True

 

 

 


 

Osvaldo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×