Ir ao conteúdo
  • Cadastre-se

Murilo_Correa

Membro Pleno
  • Posts

    31
  • Cadastrado em

  • Última visita

posts postados por Murilo_Correa

  1. 28 minutos atrás, OreiaG disse:

     

    Coloque no módulo da Planilha1.

    No Editor de VBA, na janela do lado esquerdo, duplo clique em Planilha1, aí vai se abrir o módulo onde você deve colocar o código.

    Fiz o que me pediu mas não funcionou,

    Poderia encaminhar a planilha de teste que mandei mais cedo com este código aplicado por gentileza?

  2. 11 horas atrás, Patropi disse:

    @Murilo_Correa

     

    A função HOJE() é volátil, portanto, se atualiza todos os dias, como o próprio nome dela já diz.

    O que você deseja só dá para fazer com programação VBA, mas sem você anexar um arquivo Excel com dados, fica difícil o pessoal ajudar.

     

    []s

    Certo entendo.

    Utilizei algo em VBA já que li em outros lugares porém não funcionou.

    Segue planilha, na coluna L está a data, preciso que estas células tragam a data de hoje caso seja preenchido qualquer valor maior que 0 na coluna A, porém que está data não fique se atualizando diariamente, que ela fique fixa.

     

    TESTE.xlsx

  3. Boa tarde!

     

    Sei que parece besteira, mas não consigo fazer uma célula apresentar dados de data, utilizando fórmula como por exemplo =hoje() e fazer esta data ficar travada.

    Sempre que acesso a planilha no dia seguinte a data se atualiza mas não quero que isto aconteça.

     

    Preciso que esta data nesta célula fique travada. Uso a seguinte condicional para apresentar a data.

     =SE(B1>0;HOJE();"")

     

  4. 17 horas atrás, Basole disse:

    Sim exatamente isso, puxa direto do site. O codigo copia o objeto tabela do site e com a função, que eu não conhecia, do selenium ToExcel cola os dados na aba.

     

    Mas pena que os dados no site não são organizados como uma verdadeira tabela ou seja, fora de tabulação, isso atrapalha na hora fazer a programação, 

    Mas eu ajustei o codigo abaixo, para percorrer todas as celulas da tabela do site e puxar os dados e inserir mais organizadamente possível e desconsiderando a primeira coluna que contem os numeros, pois contem celulas mescladas

     

    * 1 - Esta tabela segue um padrão das demais consultas? 

    * 2 - Insira ou ajuste os wait(s) no codigo, se necessario de acordo com o carregamento das paginas. 

    * 3 -Se preferir da pra ajustar no codigo para o navegador chrome ficar com a tela invisivel.

    Certo, entendi!

     

    1 - Sim ele sempre vai permanecer neste padrão, alterando apenas os valores a direita da tabela.

    2 - Ótimo, ajustados!

    3 - Prefiro que permaneça visível pois assim caso haja algum erro com o site (que ocorre com certa frequência) é possível identificar.

     

    Eu criei uma outra macro de formatação. Dentro desta planilha que utilizo coloquei uma cópia da tabela do site, depois que rodo o código que você me passou eu rodo a macro de formatação que deixa então tudo certinho conforme está no site, altera apenas espaçamento e cores, não está funcionando muito bem porém ajuda kkk.

     

    Gostaria de pedir uma ultima ajuda, o código está puxando a partir da primeira linha, porém eu precisava que ele puxasse a partir do ID,

    fica mais fácil para fazer a formatação depois pois preciso destas informações.

     

    image.thumb.png.e6feb4e94638424e2d01b22b34088d95.png

  5. 1 hora atrás, Basole disse:

    @Murilo_Correa boa tarde,

    Experimente as alterações :

    O ultimo comando importa todos os dados da tabela para uma nova aba que é criada na sua planilha.

    * Na tabela (conf. imagens que enviou anterirmente), os dados estão fora de tabulação.

    Acho que o ideal é fazer um loop atraves das celulas trazendo dado-a-dado.

    De qualquer forma teste ai e vamos ajustando: 

     

    Sub Login_Suframa()
        Dim driver      As New ChromeDriver
        Dim tblItems    As Selenium.TableElement
    
        With driver
            .Get "https://simnac.suframa.gov.br"
            .FindElementByName("usuario").SendKeys ("")
            .FindElementByName("senha").SendKeys ("")
            .Wait (1000)
            .FindElementByXPath("/html/body/app-root/div/div/div/section/section/footer/button", 5).Click
            .Wait (5000)
    
            ' Exportar a planilha:
            ' .FindElementByXPath("//*[@id=""content""]/section/section/section/section/app-consultar-quadro-pin/div/div/div/section/form/header/h2/div/button", 5).Click
            .Wait (5000)
    
            Set tblItems = .FindElementByXPath("(.//*[@id='content']/section/section/section/section/app-consultar-quadro-pin/div/div/div/section/form/div/table)[1]").AsTable
    
        End With
        With ThisWorkbook
            .Sheets.Add(Before:=Sheets(1)).Name = "Quadro Resumo"
            tblItems.ToExcel .ActiveSheet.Range("A1")
        End With
    
    End Sub

     

     

     

    Cara, tu é demais, puxou todas as informações corretamente. Eu não entendi muito bem, ele puxou as informações da planilha que foi exportada do site? Ou ele já puxa diretamente do site as informações?

    • Curtir 1
  6. 30 minutos atrás, Basole disse:

    Experimente....

    Acrescente a linhas abaixo no codigo...

     

    o código ficou da seguinte forma.

    Sub Login_Suframa()
     Dim driver As New ChromeDriver
    
        With driver
        .Get "https://simnac.suframa.gov.br"
        .FindElementByName("usuario").SendKeys ("") 
        .FindElementByName("senha").SendKeys ("")  
        .Wait (1000)
        .FindElementByXPath("/html/body/app-root/div/div/div/section/section/footer/button", 5).Click
        .Wait (5000)
        .FindElementByXPath("//*[@id=""content""]/section/section/section/section/app-consultar-quadro-pin/div/div/div/section/form/header/h2/div/button", 5).Click
        .Wait (5000)
        
        Dim tabItems As WebElements
    Dim Item As WebElements
        
        Set tabItems = .FindElementsByXPath("//*[@id='content']/section/section/section/section/app-consultar-quadro-pin/div/div/div/section/form/div/table/thead/tr[1]/th[1]")
        
        Debug.Print tabItems.Count
    
        For Each Item In tabItems
           MsgBox Item.Text
        Next Item
        End With
    End Sub

    Porém retornou o seguinte erro.

    image.png.1dd30cd74dc81938eccf632ec53285a3.png

    image.png.5d166bbccb05773320f9a775e3539319.png

  7. 19 minutos atrás, Basole disse:

    voce selecionou o campo SOLICITAR RERISTRO DO PIN DA NF DE IMPORTACAO.

     

    Vamos tentar pelo ID.  Que é a primeira linha e primeira coluna com dados, da tabela, acredito que nesta linha está a informação que preciso.

    Quando encontrar, coloque  o cursor, e na tabela, o campo, deverá ficar destacado, é esse item que deverá copiar.

     

      

    Desculpe entendi errado.

     

    Segue Xpath do ID;

    //*[@id="content"]/section/section/section/section/app-consultar-quadro-pin/div/div/div/section/form/div/table/thead/tr[1]/th[1]

    image.thumb.png.8e3473166da04fa3ddb44b4ced150976.png

  8. 51 minutos atrás, Basole disse:

    @Murilo_Correa bom dia,

     

    Na pagina da tabela, no campo: NF e importada selecione e com o botão direito do mouse click em inspecionar, na tela de console pesquise por NF e importada e copie o xpath, e tambem tire um print desta tela.

    @BasoleBom dia!

     

    Xpath:

    //*[@id="content"]/section/section/section/section/app-consultar-quadro-pin/div/div/div/section/form/div/table/tbody/tr[1]/td[3]/text()[2]

    image.thumb.png.f67f7a20acf1b439ef78e0e46e8de358.png

  9. 59 minutos atrás, Basole disse:

    Temos duas imagens de planilhas semelhantes, e voce precisa atualizar os dados a primeira a com a segunda.

    Mas se voce fosse atualizar manualmente, quais celulas estariam envolvidas ?

     

    Boa tarde,

     

    Para buscar as informações que preciso, montei a seguinte formula.

    =PROCV(B6;[relatorio_quadro_pin.xlsx]Plan1!$B$5:$H$20;4;0)

    agora eu iria aplicar na célula E6 até H20, diversos PROCV para trazer as informações da tabela pega na internet.

    A intenção é que a tabela 1 (da planilha que estamos automatizando) seja um espelho da tabela 2 (exportada do site), atualizando diariamente os valores nas células entre E5 e H20

    Imagem abaixo da tabela 1 dei uma "formatada" nela pra ficar mais fácil a aplicação dos PROCV.

    image.png.d482e568f06366811ee8c7fb64925532.png

    Estou tentando ser o mais claro possível, devido o controle de tráfego que há na minha empresa fica complicado eu realizar o envio das planilhas.

  10. 25 minutos atrás, Basole disse:

    A partir daqui não tem como eu testar,

    Experimente substituir esta linha:

     

    .FindElementByXPath("//*[@id=""content""]/section/section/section/section/app-consultar-quadro-pin/div/div/div/section/form/header/h2/div/button/text()", 5).Click

     

     

    @Basoleeu notei que ele estava apresentando uma mensagem de erro, então fiz um teste, apaguei o "/text()" e executei.

    Primeiramente não fazia o download porém não apresentava o erro, então notei que fazendo o download manualmente ele também possui um pequeno delay até baixar o arquivo, e assim que vba executava a ação de clicar no botão ele fechava o navegador, então coloquei um wait depois desta linha e coloquei em 5000 e funcionou, ele faz o download e fecha o navegador.

    Este primeiro passo de exportar a planilha esta 100%!!

    • Curtir 1
  11. 6 minutos atrás, Basole disse:

    ...Onde esta destacado em amarelo, coloque o o cursor e com o botão direito do mouse click em Copy e em seguinda em Copy XPath e cole na sua resposta/post...

     

    @Basole A parte de aumentar os segundos no wait não funcionou.

    Segue como solicitado.

    //*[@id="content"]/section/section/section/section/app-consultar-quadro-pin/div/div/div/section/form/header/h2/div/button/text()

  12. 9 minutos atrás, Basole disse:

    ... quanto a este problema com o botão ENTRAR, altere no código a linha:...

    @BasoleQuanto este problema foi resolvido, agora ele acessa pelo botão correto.

    Porém surgiu o seguinte.

     

    image.png.cd2750b72b6c28c8d9ea3a961932dc66.png

     

    Ao abrir a página após o login, há um pequeno delay até carregar a tabela e a opção de exportar planilha, pode ser este o problema?

  13. 59 minutos atrás, Basole disse:

    Se tiver a opção de exportar a tabela no formato html, tambem seria uma boa opção para automatizar a importação dos para sua planilha...

     

    Certo entendo, porém esta planilha que estou fazendo não serei eu que irei utilizar, é uma pessoa que não entende nada da parte de excel e tem dificuldade por ter uma certa idade, por isto estou tentando deixar o mais automatizada possível, eu iria adicionar a macro em um botão para ela apenas clicar e atualizar as informações.

    A questão de exportar em HTML só se for por outro meio que desconheço, a opção apresentada pelo site realiza o download automático em formato de excel.

    image.png.10979209cf07e36e6518698de6dfa7e9.png

    Sempre que exporto a planilha do site ele manda para a pasta de downloads a planilha.

    image.png.da1243706fb6b6be157ea48a94b304a4.png

    Seria possível automatizar o VBA para ele clicar no botão de exportar a planilha, e uma macro separada realizando o PROCV das células que preciso?

    59 minutos atrás, Basole disse:

    Edit 2:

    Com a tela do console (F12) aberta, aperte as [ ctrl + f ] p/ pesquisar, e digite Exportar Planilha e tire um print do da tela.

     

     

     

    Edit:

     

    Já mandei na resposta anterior mas segue mais completa.

    image.png.ea38a2b4ab2410cb04042c893dddf374.png

     

    Edit2:

    @Basole

    1 hora atrás, Basole disse:
    Sub Login_Suframa()
     Dim driver As New ChromeDriver
    
        With driver
        .get "https://simnac.suframa.gov.br"
        .FindElementByName("usuario").SendKeys ("Nome_do_Usuario") ' * AQUI altere usuario
        .FindElementByName("senha").SendKeys ("12345")  ' * AQUI altere senha
        .Wait (1000)
        .FindElementByTag("button").Click
        .Wait (1000)
        End With
    
    End Sub

     

    Referente este código há um único problema, no FindElementByTag, ele procura o primeiro botão presente na página,

    porém este botão não é o entrar.

    image.thumb.png.5af7986bd49bd2c76ca12cbfd64ef526.png

    Sendo assim ele acessa a aba de pesquisa fora do perfil, onde não se encontra a tabela que preciso.

  14. 5 minutos atrás, Basole disse:

    ...Segue uma rotina básica para inserir os dados de login no referido website...

    Funcionou perfeitamente, primeiramente ele demorou um pouco para acessar o site porém na segunda vez que executei levou poucos segundos.

    O próxima passo agora seria ele importar do site a tabela citada anteriormente.

    O que seria mais "fácil", mandar toda vez que ele acessar o site, apagar a tabela antiga e importar a tabela completa, ou estar com a tabela já importada em excel e mandar ele apenas atualizar os valores que preciso?

    image.thumb.png.875162c09642c212b8c7e2d2c53db5fb.png

  15. Seguinte, @Basole, se eu tentar explicar talvez eu piore, vou mostrar o que encontrei.

     

    Dim HTMLDoc As HTMLDocument
    Dim oBrowser As InternetExplorer

    Sub Login()

    Dim oHTML_Element As IHTMLElement
    Dim sURL As String
    On Error GoTo Err_Clear
       sURL = simnac.suframa.gov.br
    Set oBrowser = New InternetExplorer
       oBrowser.Silent = True
       oBrowser.timeout = 60
       oBrowser.navigate sURL
       oBrowser.Visible = True

    Do
    Loop Until oBrowser.readyState = READYSTATE_COMPLETE

    Set HTMLDoc = oBrowser.document
      HTMLDoc.all.usuario.Value = "LOGIN"
      HTMLDoc.all.senha.Value = "SENHA"

    For Each oHTML_Element In HTMLDoc.getElementsByTagName("input")
        If oHTML_Element.Type = "submit" Then oHTML_Element.Click: Exit For

    Next
    Err_Clear:

    Resume Next
    End Sub

     

    Esta macro abre o navegador acessa o site e preenche as abas com as informações que colocar nos campos usuario e senha.

    Isto me caiu bem, porém o navegador é o problema, preciso de seja o Google Chrome, poderia me auxiliar neste ponto?

    Vamos indo por partes pra ver se conseguimos nos entender.

  16.  

    Eu utilizo um site que para acessá-lo somente com usuário e senha, ao preencher estas informações ele me transfere para uma página onde há algumas informações que se atualizam diariamente, eu preciso ter estas informações em uma planilha e preciso que elas estejam sempre atualizadas. Eu já achei alguns tutoriais que ensinam a criar uma macro que exporta qualquer informação que eu queira de um site da web, porém quando faço isso com este site ela não funciona, pelo site só ser acessado com usuário e senha. Preciso de uma macro, que acesso o site, preenche o usuário e senha, e exporte para mim as informações que eu preciso. Qualquer dúvida estou a disposição.

     

  17. Bom dia Pessoal!

     

    Estou com a seguinte dúvida, gostaria de exportar uma planilha de um site da internet, porém esse site possui login e senha, e um outro problema, pelo que vi no site não sei se possui aquela flecha para exportar somente os dados que desejo, somente o site todo, nesse caso é possível alterar direto no excel.

    Porém preciso de uma macro para realizar todo esse processo de acessar o site e atualizar a planilha, alguém poderia me auxiliar?

    No que vamos conversando vou dando mais detalhes.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!