Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
FSCUNHA

Macro Localizar e Copiar Caracteres

Recommended Posts

Boa tarde Galera,

Estou precisando localizar e copiar alguns dados de diversas pastas de trabalho para completar uma planila de base. Eu quero analisar se eu encontro o nome de um Vessel em outras pastas de trabalho e copiar alguns dados presentes na planilha para a planilha base.

http://www.sendspace.com/file/f5k4vg

Um exemplo do que quero fazer está no arquivo anexado. Onde a primeira planilha é minha base e as demais planilhas são um exemplo das pastas de trabalho que eu quero localizar os Vessels.

Alguém consegue me ajudar?

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema das demais planilhas é que não obedecem um padrão, cada uma tem um layout diferente da outra. Parecido não é igual.

Isso vai atrapalhar a busca.

Se sempre houvesse uma coluna padrão (p. ex. A) e o cabeçalho fosse somente Vessel, ainda que variasse a linha, tudo bem, mas no seu caso o termo Vessel aparece esporadicamente no início ou no meio dos dados ou às vezes nem aparece ou aparece com mais termos entre parênteses.

Sem uma padronização fica difícil.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, você pode tentar usar o seguinte comando:

Cells.Find(What:="Vessel", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _

xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _

, SearchFormat:=False).Activate

ele vai procurar uma frase especifica (what:="vessel")

Acredito que funcione se você criar uma logica para este comando

No caso, criar alguma variáveis para trabalhar junto com o cells.find

por exemplo: what:=Variável

aonde você passa a informação que precisa...

O que o jeffsilveira comentou é verdade, o fato de nao ter um padrão faz com que você tenha dificuldades em encontrar as informações

você terá que encontrar padroes no meio das planilhas, como "data fica sempre ao lado do nome", assim usando esse padrão você procura o resto

Ali em cima colei o comando generico, você pode modificá-lo para procurar de diversas formas diferentes

tenho um exemplo:

public contador as integer

public procurado as string

Sub Macro1()

cont = sheets.count 'aqui ele vai contar a quantidade de planilhas no seu arquivo

Do While contador >= 2

Sheets(contador).Select 'vai selecionar a planilha

procurado = "vessel"

' vai procurar a palavra que você esta precisando encontrar

Cells.Find(What:=procurado, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _

xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _

, SearchFormat:=False).Activate

'a partir daqui você faz o que precisa, como copiar, caso encontre, procurar outras coisas, etc

contador = contador - 1 'vai tirar um do contador, assim ele pula para planilha anterior

loop

end sub

ou ainda você pode trocar o do while por algo como, sei la, do while termine = 1

e você so manda o 1 quando encontrar e quando acabar as planilhas... (do contrario entra em loop eterno)

mas seu principal vilão aqui é a falta de padronização...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×