Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
SLIFE

[RESOLVIDO] Excel - Verificar conteudo linhas e colunas e copiar e apagar....

Recommended Posts

SLIFE

Boas a Todos

Precisava de uma ajuda.

Tenho um problema ao qual nao sei se me conseguem ajudar, mas cá vai.

Tenho uma folha de excel com o seguinte formato:

download

Precisava de fazer uma funcao ou formula que verifica-se o ficheiro e seleciona-se apenas o que desejava e que se encontra sempre no mesmo sitio.

Por exemplo que ficasse no seguinte formato:

download

Isto é:

Que fosse a linha 9 e removesse tudo o que se encontra a volta do numero 1

Depois que escrevesse na mesma linha, tudo o que se encontra nas linhas 11 a 17.

Conforme o exemplo acima.

Nao se se me estou a fazer entender, mas precisava mesmo de ajuda nisto.

Cpts

SLIFE


Sandro Coelho

Share this post


Link to post
Share on other sites
jpaulino

Parece que estou a entender, mas o teu exemplo não está correcto, pois não?

É que no primeiro ficheiro tens COMPOTA MACA PEDACOS 31,5%(PURE MACA,PEDACOS MACA(MIN30%)XAROPE ... e no resultado final, para a tabela 1, tens ING:FARINHA,GORDURA,CARNE GALINHA,ALHO, ....

Explica lá melhor isto.

Share this post


Link to post
Share on other sites
SLIFE

Parece que estou a entender, mas o teu exemplo não está correcto, pois não?

É que no primeiro ficheiro tens COMPOTA MACA PEDACOS 31,5%(PURE MACA,PEDACOS MACA(MIN30%)XAROPE ... e no resultado final, para a tabela 1, tens ING:FARINHA,GORDURA,CARNE GALINHA,ALHO, ....

Explica lá melhor isto.

Boas Jpaulino

Tens razão, o ficheiro não é o mesmo.

Era um exemplo de como preciso que fique.

O ficheiro foi feito á mão apenas para exemplificar o que necessitava, mas nem reparei que não estava igual.

Achas que me consegues dar alguma dica de como poderei fazer isso.

Tenho estado a fazer á mão, mas ainda nem cheguei a um terço do total do ficheiro.

Se souberes alguma maneira de optimizar isto agradecia.

Cpts

SLIFE


Sandro Coelho

Share this post


Link to post
Share on other sites
SLIFE

Então mas fica como está? Com os 31,5%, etc?

Sim isso faz parte do ficheiro original.

Se nao estou em erro cada linha contem 31 caracters.

Essa linha que falas acaba onde diz "(pure" e depois passa para a linha seguinte.


Sandro Coelho

Share this post


Link to post
Share on other sites
guto.pro

Se você puder converter o arquivo para o formato .csv (No próprio excel tem a opção salvar como)

Ele se torna um arquivo de texto no seguinte formato :

DE:

      A        B          C

1  Info1  Info 2  Info3

2  Info4  Info 5  Info6

3  Info7  Info 8  Info9

PARA:

A;B;C

Info1;Info 2;Info3

Info4;Info 5;Info6

Info7;Info 8;Info9

Depende da linguagem que você usa agora para percorrer as linhas ou usar alguma expressão regular, se não me engano a linguagem .NET permite que você converta .xls para .csv carece de alguma pesquisa.

Boa sorte !

Share this post


Link to post
Share on other sites
jpaulino

Para ser diferente desta vez, sem utilizar VBA, podes fazer algo do genero:

=IF(RIGHT(A9;3)="s0B";LEFT(TRIM(RIGHT(A9;11));2)&"ING: "&TRIM(A11)&" "&TRIM(A12)&" "&TRIM(A13)&" "&TRIM(A14)&" "&TRIM(A15)&" "&TRIM(A16)&" "&TRIM(A17);"")

Depois copias até ao fim do documento. Fazes Copy - Paste Special - Values e ordenas de forma ascendente.

Vê o exemplo em anexo!

Share this post


Link to post
Share on other sites
SLIFE

Para ser diferente desta vez, sem utilizar VBA, podes fazer algo do genero:

Depois copias até ao fim do documento. Fazes Copy - Paste Special - Values e ordenas de forma ascendente.

Vê o exemplo em anexo!

Boas

O exemplo funciona. e era isso mesmo que precisava.

Agora so preciso aplicar. (O que estou a fazer á horas a mao, basta colocar uma formula) Incrivel.

Quem sabe sabe.

Diz-me so uma coisa, nao percebo de macros nem nada do genero.

Mas estive a ver nuns livros e descubri isto:

(Pensei que pudesse funcionar para apagar as linhas que nao desejo, visto serem sempre iguais)

Sub substituir()
With Worksheets(1).Range("a1:a100")
Set celula = .Find("----------------------------------------", LookIn:=xlValues)
If Not celula Is Nothing Then
primeira = celula.Address
Do While Not celula Is Nothing And celula.address <> primeira
celula.Value = ""
Set celula = .FindNext(celula)
Loop
End If
End With

End Sub

Mas nem sei bem onde colocar isto.

Fiz alt+F11 e apareceu as janelas da macro.

Escrevi la este codigo, mas quando mando correr dá-me erro (Run Time error '438' Object doesn't support this property or method)

ves algum erro nisto?

Como poderei fazer um form com um botao que ao clicar executa o codigo de cima?

É possivel?

Ja resolvi o erro, era falha minha.

Mas nao percebo o porque mas ele nao passa as varias celulas.

Nao faz o loop.

Como coloco um botao para executar?


Sandro Coelho

Share this post


Link to post
Share on other sites
SLIFE

RESOLVIDO

Obrigado a todos (Especialmente a ti jpaulino)

Peço desculpa, mas nao sei como colocar o Topic Resolvido, Por isso coloquei a TAG junto da descrição.

Se nao for assim, por favor digam-me como funciona....

Cpts

SLIFE


Sandro Coelho

Share this post


Link to post
Share on other sites
jpaulino

Peço desculpa, mas nao sei como colocar o Topic Resolvido, Por isso coloquei a TAG junto da descrição.

Se nao for assim, por favor digam-me como funciona....

Até ver tem de ser assim :)

Obrigado a todos (Especialmente a ti jpaulino)

Ainda bem que está resolvido :D

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.