Notifications
Clear all

Copiando uma tabela que muda de posição VBA

6 Posts
3 Usuários
0 Reactions
1,381 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal, boa noite,

Primeiramente caso eu tenha postado de forma errada, local errado etc, me perdoem.

Eu tenho um cadastro aqui no forum desde a epoca do orkut kkk, mas faz mtos anos que nao acesso rsrsrs, ja tinha um tempo que nao trabalhava com o excel, mas bateu aquela saudade, e hje é minha ferramenta de trabalho mais usada :D.

Pessoal, estou precisando de uma sugestão para uma VBA, eu tenho uma tabela que puxa dados de uma pagina da web, esta começa na celula D3 e vai até a coluna L, e nesta tabela volta muitos dados iniciais que nao preciso e os dados que eu preciso geralmente começam apartir da linha 18, o problema é que os dados da web sao inconstantes então, as linhas podem alterar, mas a coluna não, a vantagem é que os dados que eu preciso copiar sempre vem na linha abaixo da linha que tem os títulos, então, precisava de uma VBA que ele lesse uma coluna inteira e a partir do momento que ele achar a linha que está o titulo (uma palavra especifica), ele comece a selecionar os dados da linha abaixo, mas tbm selecionando as outras colunas. Não importa a quantidade de linhas que ele copiar, ele pode selecionar as próximas 1000 linhas.

Apos ele selecionar estes dados ele colara em formato valores em uma outra guia, mas isso eu consigo da um jeito.

Será que alguem pode me ajudar ? Se caso vcs nao entenderam eu explico novamente.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 02/01/2017 5:50 pm
(@adgere)
Posts: 76
Trusted Member
 

Acho q é isso...

Private Sub CommandButton1_Click()

Dim L  As Integer
Dim Li As Integer
Dim Lf As Integer
Dim Rg As String

L = 0
Do
    L = L + 1
    If Plan1.Cells(L, 1).Value = "xxxxxx" Then 'linha que está o titulo (uma palavra especifica)
       Li = L + 1
    End If
    If Plan1.Cells(L, 1).Value = "" Then 'Ultima Linha
       Lf = L - 1
    End If
Loop

'Seleciona o Range a copiar
Rg = "A:" & Trim(Str(Li)) & "L" & Trim(Str(Lf))
Plan1.Range(Rg).Select

End Sub
 
Postado : 02/01/2017 9:12 pm
DJunqueira
(@djunqueira)
Posts: 772
Prominent Member
 

Geralmente tabelas tem um marcador específico em páginas da internet p/ facilitar a importação. Se esse for o caso da página q vc acessa vc poderia fazer isso q vc quer importando dados Da Web em Dados ou importando com Nova Consulta por versão 2010 ou superior do Excel.

Depois seria só clicar no botão Atualizar.

Se sua dúvida foi respondida marque o tópico como RESOLVIDO usando o botão com marca verde.

 
Postado : 03/01/2017 3:32 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Amigo AdGere, boa noite, obrigado pela consulta mas nao rodou, ele da erro de depuração na linha L = L + 1 :(

Djunqueira, eu ja consegui acessar os dados da tabela na net de forma tranquila, porem os dados no site oscilam, e por isso a tabela muda de linha ou pra cima ou pra baixo.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 03/01/2017 6:28 pm
DJunqueira
(@djunqueira)
Posts: 772
Prominent Member
 

No vídeo abaixo vc poderá ver como importar utilizando Nova Consulta / Power Query:
https://www.youtube.com/watch?v=sEw6ZdcGOU4

Importando desta forma tanto faz onde a tabela está e vc ainda pode tratar os dados.

Se sua dúvida foi respondida marque o tópico como RESOLVIDO usando o botão com marca verde.

 
Postado : 03/01/2017 7:04 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Djunqueira, boa noite,

Obrigado pela sujestao, mas meu excel é o 2010, nao possui este power query, alem disto uso o computador da empresa por isso nao poderia instalar ele.

Mas novamente muito obrigado.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 04/01/2017 4:44 pm