Inserção Valor text...
 
Notifications
Clear all

Inserção Valor text box em formulário do IE por VBA.

3 Posts
2 Usuários
0 Reactions
1,178 Visualizações
(@teleguiado)
Posts: 0
New Member
Topic starter
 

Boa Noite!!

Tenho adaptei o código dessa planilha para inserir os dados no site mapeia.com porem ele não esta inserindo nos campos de preço do combustível e km/litro os valores depois da vírgula.

https://drive.google.com/file/d/0B2tBlpeZsUSZaEFsQ3dzYktnTTA/view

Segue código que alterei da planilha para abrir no https://www.mapeia.com.br/.

Private Sub btn_abrir_maps_Click()
Dim CidadeOrig As String, CidadeDest As String, precogasolina As Long, consumo As Long
Dim objIE  As Object
Dim endereco As String
Dim url_maps As String

If Me.lbl_URL = "" Then
    MsgBox "Nenhum local para abrir", vbInformation
    Exit Sub
End If

'On Error Resume Next

endereco = UserForm2.lbl_URL

Set objIE = CreateObject("InternetExplorer.Application") 'UserForm2.WebBrowser1 '
Call nome_janela
With objIE
 
 .StatusBar = False
 .Toolbar = False
' .Width = 1920
' .Height = 1080
' .Resizable = False
 .AddressBar = True
 .Visible = True
 '.Top = 66
 '.Left = 510
 
 .Navigate endereco

'   Maximiza a janela do IE
    apiShowWindow objIE.hwnd, SW_MAXIMIZE

 Do While .Busy Or .ReadyState <> READYSTATE_COMPLETE
 DoEvents
 Loop

 Me.btn_importar_mapa.Enabled = True

 Call nome_janela
     'Carrega os dados de cidade de origem e destino que serão preenchidos na página
     CidadeOrig = UserForm2.txt_busca
     CidadeDest = UserForm2.txt_busca2
     precogasolina = UserForm2.Txt_Preco_Comb.Value
     consumo = UserForm2.Txt_Consumo.Value

'   Carrega os dados de cidade de origem e destino na página e submente os dados do formulário
     objIE.Document.getElementById("origin").innerText = CidadeOrig
     objIE.Document.getElementById("destination").Value = CidadeDest
     objIE.Document.getElementById("fuel-price").Value = precogasolina
     objIE.Document.getElementById("fuel-consumption").Value = consumo
     objIE.Document.getElementById("calc").Click
     Application.Wait Now + TimeValue("00:00:02")
     
'   Coloca na coluna 'E' o valor total calculado do pedágio
      Me.txt_distancia = objIE.Document.getElementById("dist-value").innerText
      Me.txt_tempo = objIE.Document.getElementById("time-value").innerText
      Me.txt_Pedagio = objIE.Document.getElementById("toll-value").innerText
      Me.Txt_Custo_Total = objIE.Document.getElementById("fuel-value").innerText
 
 Application.Visible = False

End With

    Set objIE = Nothing
    SendKeys "{NUMLOCK}", True
End Sub

Se alguém souber como faço o IE reconhecer o valor do Text box com as casas após vírgula agradeço.

 
Postado : 24/08/2018 3:26 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Aparentemente o problema não é do IE, mas sim da definição da variavel como long
Conforme o help vba.excel long e do tipo inteiro

As variáveis Long (inteiro longo) são armazenadas como números de 32 bits (4 bytes), sinalizados, no intervalo de -2.147.483.648 a 2.147.483.647. O caractere de declaração de tipo para Long é o ‘E’ comercial (&)

experimente redefinir as variaveis com valores decimais, para o tipo Double ....precogasolina As Double...

 
Postado : 24/08/2018 7:37 pm
(@teleguiado)
Posts: 0
New Member
Topic starter
 

Reinaldo, era isso mesmo, porem agora ele esta colocando o valor com .(ponto) no lugar da vírgula. Declarei ela como Variant e foi com a virgula.

 
Postado : 24/08/2018 9:51 pm