Notifications
Clear all

pegar dados individualmente de arquivo htm

2 Posts
1 Usuários
0 Reactions
551 Visualizações
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

ola

estou tentando pegar dados individuais de arquivos HTM baixados da internet
o excel somente importa a tabela inteira

dá para abrir esse arquivo pelo excel e pegar com o vba,

mas acho que estou dando voltas sem necessidade
tipo eu abro o arquivo usando o excel e faço loop para pegar os dados

então...
qual a melhor maneira de pegar valores de uma tabela HTML que já está no pc e colar em outra planilha?

 
Postado : 14/01/2015 3:08 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

bem, não foi a melhor solução, mas...

   Set oApp = CreateObject("Shell.Application")
        oApp.Namespace(FileNameFolder).CopyHere oApp.Namespace("C:CasosTemp" & hoit(el)).items

        Set xl = CreateObject("Excel.Sheet")
        xl.Application.Workbooks.Open "C:CasosTemp" & lod(el) & ".HTM"  ' abre a tabela em HTMl no excel

Atu:
        ThisWorkbook.Worksheets("Plan9").Activate
        Ti = Cells(14, el + 1).Value2  '------<------<---Le coluna inicial do setor
        Ci = Cells(17, el + 1).Value2    '------<------<---Le coluna inicial de dados do setor
        Cq = Cells(20, el + 1).Value2    '------<------<---Le total de colunas do setor

        L = Cells(Rows.Count, Ti).End(xlUp).row
        tin = Cells(L, Ti).Value2    '----<----<--- pega o ultimo cod da planilha

        With Workbooks(lod(el) & ".HTM").Sheets(lod(el))

            lop = .Cells(Rows.Count, 1).End(xlUp).row   '----<----<--- pega a ultima linha arquivo
            cn = .Cells(lop, 1).Value2
            If cn > tin Then
                If el <> 3 Then k2 = 0 Else k2 = 17
                lpg = -1
                Do
                    lpg = lpg + 1
                    vi = .Cells(lop - lpg, 1).Value2
                Loop Until vi = tin + 1

                Ti1 = Cells(1, Ti).Column
                Ci1 = Cells(1, Ci).Column

                ColunO = .Range(.Cells(lop - lpg, 1), .Cells(lop, 2)).Value2
                Range(Cells(L + 1, Ti1), Cells(L + 1 + lpg, Ti1 + 1)).Value2 = ColunO

                ColunO = .Range(.Cells(lop - lpg, 3 + k2), .Cells(lop, 2 + Cq + k2)).Value2
                Range(Cells(L + 1, Ci1), Cells(L + 1 + lpg, Ci1 + Cq - 1)).Value2 = ColunO

            End If
        End With
        If el <> 2 Then Workbooks(lod(el) & ".HTM").Close

    Next
    ThisWorkbook.Worksheets(Plan_Aq).Activate

tentei tratar o arquivo com ele fechado mas não consegui
lod(el) é um array com os nomes dos arquivos na sequencia que vão ser importados
"realmente eu não sei como faço essas macros tão estranhas"

 
Postado : 14/01/2015 8:57 pm