Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

SLIFE

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

Mensagens Recomendadas

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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 !

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.