Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alberto.rolim

vba/macro para importacao de documento TXT

Recommended Posts

gente, estou precisando estrair uns dados de um arquivo txt, e ja to penando a quase 1 mês, até a importação consegui fazer (nao satisfatorio mas consegui).A situação é a seguinte, eu tenho um arquivo gerado em TXT por um programa qualquer onde este programa sempre coloca no inicio de uma página e no rodapé um monte de informaçoes como endereço, tel, cgc e etc no qual eu quero tirar e deixar apenas os produtos e seus respectivos preços e quantidades.Como eu nao sei programar em VBA e nem criar uma macro do zero, eu ativei o recurso "gravar nova macro" para que o sistema memoriza-se todo o procedimento que preciso que seja feito e entao fiz a importação atraves do "abrir documento" conseguindo remover todas as colunas que nao sao de meu interesse, mas depois da importação, ainda continuaram as linhas que tinham os dados da firma informado acima e é ai que esta o meu problema, nao estou conseguindo fazer uma macro que remova estas linhas e deixe apenas o que eu quero que sao os produtos e seus preçosa formula que a "gravacao de macro" criou foi a seguinte: Workbooks.OpenText Filename:="Y:\matr460.##r", Origin:=xlMSDOS, StartRow _ :=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False _ , Space:=False, Other:=True, OtherChar:="|", FieldInfo:=Array(Array(1, 9 _ ), Array(2, 9), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _ Array(9, 1)), TrailingMinusNumbers:=True ActiveWindow.SmallScroll Down:=7 Range("A1").Selectdepois de aplicado a macro, resulta nas celulas abaixo, sendo q nao coloquei os campo que preciso q sejam removidos A B C D ETOCA CD SONY CDXCA907X UN 1 760 760TOCA CD SONY CDXCA750X UN 1 432 432TOCA CD SONY CDXL497BK UN 2 230 461no layout apresentado acima estava precisando de uma formula que fizesse o seguinte procedimentoSE CELULA C# (coluna C e linha 1, 2, 3...) NAO TIVER CONTEUDO NUMERICO ENTAO DELETA A LINHAVERIFICAR PROXIMA LINHAestou tendo um outro problema que agradeceria se me ajudasem tambem, preciso que esta macro crie uma nova planilha em excel com os dados resultantes e se eu reativasse a macro novamente, que os novos dados fossem salvos nesta mesma planilha nova mas em uma nova sheet com o nome que eu disse-se

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o seguinte, envie o txt e a xls para o e-mail jolienai@bol.com.brpara q eu possa ajuda-lo.. do jeito q você descreveu você quer importar em uma Sheet os dados de um arquivo txt apenas com algumas colunas desse arquivo.. certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o seguinte, envie o txt e a xls para o e-mail jolienai@bol.com.brpara q eu possa ajuda-lo.. do jeito q você descreveu você quer importar em uma Sheet os dados de um arquivo txt apenas com algumas colunas desse arquivo.. certo?

quase isso, as colunas que eu quero ja consigo, agora esta faltando deletar as linhas que nao me interessam e que sobrem apeas as linhas que constam os produtos e precos. Me deram uma dica em outro forum que tenho q usar o imput mas acho q nao é este comando, creio que é o find ou o locate para localizar na coluna C todos os campos que nao contiverem numeros e e caso achar, deletalar a linha.bem, ja estou enviando os arquivos para o seu emaila marcro criado ja faz a importacao e remocao das colunas que nao sao de meu interesse, faltando apenas completar esta macro para remover as linhas tb que nao me interessa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue a macroSub Eraseline()'' Eraseline Macro' Macro gravada em 16/11/2005 por jolienai.viegas'' Atalho do teclado: Ctrl+Shift+J'Sheets("matr460").SelectRange("A1").SelectDim R As StringDim i As IntegerDim t As Integert = 226On Error Resume NextFor i = 1 To 226 R = "C" & i Range®.SelectIf IsNumeric(Range®) = False Then Rows(i & ":" & i).Select Selection.Delete Shift:=xlUp i = i - 1End IfNext icontinua:For i = 1 To 226 R = "C" & i Range®.SelectIf Len(Trim(Range®)) = 0 Then Rows(i & ":" & i).Select Selection.Delete Shift:=xlUp End IfNext iIf Range("A1") = "" Then GoTo continuaEnd IfRange("A1").SelectEnd Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.