-
Posts
31 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Murilo_Correa
-
-
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?
-
36 minutos atrás, OreiaG disse:
Veja se atende.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Column = 1 And Target.Value <> "" Then Target.Offset(, 11).Value = Date End Sub
Bom dia,
Como devo aplicar isto a planilha?
Adicionei a um módulo porém não soube seguir adiante.
-
11 horas atrás, Patropi disse:
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.
-
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();"")
-
21 horas atrás, Basole disse:
@Murilo_Correa experimente agora com as alterações
Fiz uns remendos no que já havia feito, e agora ficou parecendo um frankenstein, mas deve fucinionar:
* Se puder post o print com o resultado da importação, para efito de ilustração aqui no topico:
Perfeito!
- 1
-
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.
-
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?
- 1
-
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.
-
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]
-
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]
-
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.
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.
-
Bom dia @Basole,
Agora resta a criação no VBA dos PROCV.
Está primeira imagem é onde eu preciso que esteja atualizado (tive que deixar deste tamanho para poder tirar o print da tabela completa.
Imagem abaixo é da planilha que é exportada pelo site.
Local da planilha.
C:\Users\murilo.rosa\Downloads\relatorio_quadro_pin
-
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%!!
- 1
-
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()
-
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.
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?
-
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.
Sempre que exporto a planilha do site ele manda para a pasta de downloads a planilha.
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.
Edit2:
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.
Sendo assim ele acessa a aba de pesquisa fora do perfil, onde não se encontra a tabela que preciso.
-
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?
-
-
Bom dia,
Já pesquisei mais sobre o Selenium, falei com setor do TI da minha empresa e eles liberaram o download.
Já baixei o mesmo, veio junto no download o Chrome driver, já coloquei lá em referências no VBA o Selenium Type Library.
A princípio está pronto para usar, agora preciso saber como usar kkk se alguém puder me dar uma luz.
-
44 minutos atrás, Basole disse:
Qual o motivo para não utilizar o internet explorer, já que lhe atende bem?
Este navegador não consegue abrir o site que tento acessar, ele abre o site porém não passa da aba de login.
Firefox ocorre a mesma coisa.
Mesmo que eu tente acessar manualmente.
-
Seguinte, @Basole, se eu tentar explicar talvez eu piore, vou mostrar o que encontrei.
Dim HTMLDoc As HTMLDocument
Dim oBrowser As InternetExplorerSub 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 = TrueDo
Loop Until oBrowser.readyState = READYSTATE_COMPLETESet 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 ForNext
Err_Clear:Resume Next
End SubEsta 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.
-
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.
-
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.
-
Bom dia,
Funcionou perfeitamente muito obrigado. Se você ministra algum curso de excel ou se pudesse me dar umas aulas agradeceria kkk.
Abraço!!
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
data e hora travada em célula
em Microsoft Office e similares
Postado
Desculpe, houve um erro da minha parte na hora de explicar as condições, já alterei o código para funcionar conforme eu gostaria, muito obrigado.