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

PROBLEMA DADOS IMPORTADOS DA WEB

A Web está aí, não há como negar. Ela é onipresente em praticamente toda operação eletrônica realizada nos dias de hoje. Como não podia ser diferente, o Excel, ferramenta máxima para analistas e profissionais das mais diversas áreas do mercado precisa estar alinhado com esta necesssidade. E ele está! Neste forum, o debate é focado em expor dúvidas, sugestões, modelos de código e exemplos de uso do Excel na Integração com tecnologias Web.
tiagopontespb
Acabou de chegar
Acabou de chegar
Mensagens: 1
Registrado em: Dom Out 06, 2019 4:17 pm

PROBLEMA DADOS IMPORTADOS DA WEB

Mensagem por tiagopontespb »

Estou com um problema ao importar dados da web em formato EUA.

EX: o numero se encontra no site 3.570, mas quando importando para o excel ele fica 3.57.


Alguém tiver uma solução pra isso agradeço

Set tb1 = driver.FindElementByXPath("//*[@id=""metasTerritorios""]")


tb1.AsTable.ToExcel vendedores


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.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: PROBLEMA DADOS IMPORTADOS DA WEB

Mensagem por webmaster »

O formato padrão do VBA é o inglês internacional, onde ponto é separador decimal e vírgula de milhar. Por isso, qualquer conversão direta vai bagunçar o número. Você terá que fazer as substituições adequadas de vírgula e ponto antes de fazer a conversão. Veja algumas macros de exemplo para resolver o problema:

Código: Selecionar todos

Function Dbl2Str(dbl As Double) As String
    Dbl2Str = Replace(CStr(dbl), ".", ",")
End Function

Function DblToStr(x As Double)
 DblToStr = CStr(x)

 If (Application.ThousandsSeparator = ".") Then
  DblToStr = Replace(DblToStr, ".", "")
 End If
 If (Application.DecimalSeparator = ".") Then
  DblToStr = Replace(DblToStr, ".", ",")
 End If

End Function

Sub changeIT()
    For Each r In Selection
        t = r.Text
        If InStr(1, r, ".") > 0 Then
            r.Clear
            r.NumberFormat = "@"
            r.Value = Replace(t, ".", ",")
        End If
    Next r
End Sub

'
' Separates real-numbers by "," and adds "." before decimals
'
Function FormatNumber(ByVal v As Double) As String
    Dim s$, pos&
    Dim r$, i&

    ' Find decimal point
    s = CStr(v)
    pos = InStrRev(s, ".")
    If pos <= 0 Then
        pos = InStrRev(s, ",")
        If pos > 0 Then
            Mid$(s, pos, 1) = "."
        Else
            pos = Len(s) + 1
        End If
    End If

    ' Separate numbers into "r"
    On Error Resume Next
    i = pos - 3
    r = Mid$(s, i, 3)
    For i = i - 3 To 1 Step -3
        r = Mid$(s, i, 3) & "," & r
    Next i
    If i < 1 Then
        r = Mid$(s, 1, 2 + i) & "," & r
    End If

    ' Store dot and decimal numbers into "s"
    s = Mid$(s, pos)
    i = Len(s)
    If i = 2 Then
        s = s & "0"
    ElseIf i <= 0 Then
        s = ".00"
    End If

    ' Append decimals and return
    FormatNumber = r & s
End Function
Fonte: https://stackoverflow.com/questions/279 ... -not-point


Responder