Ir ao conteúdo
  • Cadastre-se
jcgmc

VBA - Copiar e Colar apenas uma parte da palavra

Recommended Posts

Boa noite a todos,

 

Ajuda pra fazer macro Copiar apenas uma parte da palavra e a colar em outra celula.

 

Preciso que neste intervalo de AP5:BK5, o código localize a palavra "trabalho/Out14" e a cole em BV5 apenas como "Out/14"

OBs: sem aspas

 

 

É pra Excel 2003

 

Grato a todos!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue a macro de acordo c/ as informações q passou:

abx.

Sub ProcInAP_BK()
Dim rng As Range
With ActiveSheet
Dim ProcVl As String
ProcVl = "*" & "trabalho/Out14" & "*"
Set rng = .Range("ap5:bk5").Find(What:=ProcVl, LookIn:=xlValues, LookAt:=xlPart, _
MatchCase:=False, SearchFormat:=False)
If Not rng Is Nothing Then
.[bv5] = Right(rng.Value, 6)
.[bv5] = Mid(.[bv5].Value, 2, 3) & "/" & Right(.[bv5].Value, 2)
Else
MsgBox ProcVl & " nao encontado", 64, "Aviso"
Exit Sub
End If
End With
End Sub

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eaeee Basoleee, beleza veii!!! :D

tão, preciso que a macro execute automático ao teclar Enter neste intervalo AP:BK

 

Abraçoo!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao como voce, mas vamo tentando...kkkk

 

vee ai agora:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("ap5:bk5")) Is Nothing Then
Dim rng As Range
With ActiveSheet
Dim ProcVl As String
ProcVl = "*" & "trabalho/Out14" & "*"
Set rng = .Range("ap5:bk5").Find(What:=ProcVl, LookIn:=xlValues, LookAt:=xlPart, _
MatchCase:=False, SearchFormat:=False)
If Not rng Is Nothing Then
.[bv5] = Right(Trim(rng.Value), 6)
.[bv5] = Mid(.[bv5].Value, 2, 3) & "/" & Right(.[bv5].Value, 2)
Else
MsgBox ProcVl & " nao encontado", 64, "Aviso" ' del esta linha p/ cancel a msg
Exit Sub
End If
End With
End If
End Sub

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basole, É nois de novo!! Rsss

 

Viajei um pouco nas ideia aqui e comi bronha num detalhe!! Seguinte, na verdade vou precisar que este intervalo AP5:BK5 seja assim, AP5 até BK999 e BV5 que seja tbém até BV999. Não sei se fui claro, mas segue anexo, planilha com algumas linhas de dados e resultados que inseri manualmente Ok!!

E vamo q vamo!! Rsss

 

Copiar parte da palavra (VBA).xls

Compartilhar este post


Link para o post
Compartilhar em outros sites

você poderia fazer isso com uso de função, interessa?

 

Outra questão, cada uma das células já indica mês e ano, porque não substituir o texto por uma cor na célula? você simplesmente colocaria um número (1) e com base neste número a formatação condicional iria colorizar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tarde Junqueira, veii qualker ajuda é bem vinda. quero ver sim essa sua função, como funciona!!

Quanto a Cor, é o seguinte, não daria certo porque, preciso sim, que tenha essas referencias OUT/14, pois todas essas informações, terão de ser lidas nas ComboBox doss formuláriosss tndeu!!

Abraço e no aguardo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na linha 4 eu, particularmente, prefiro utilizar a função SOMARPRODUTO(), como abaixo:

=SOMARPRODUTO((MÊS(BY5:BY$46)=4)*(ANO(BY5:BY$46)=2013))

 

Mas na realidade você está procurando saber quantas células abaixo da linha 4 tem texto por coluna, não precisaria especificar tanto a fórmula.

Funções mais simples como:

=CONT.VALORES(BY5:BY47)

ou

=CONT.SE(BY5:BY46;"="&BY3&"/13")

poderiam dar conta do recado.

 

Seja como for uma solução utilizando funções está na planilha anexa.

Copiar parte da palavra.xls

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tarde Junqueira, beleza!!

 

Muito boa essa sua formula: =SE(ÉERROS(PROCH("Contato/"&BV$3&"13";$AP5:$BK5;1;0));"";MAIÚSCULA(BV$3)&"/13")

É exatamente o resultado que quero, Porém não to conseguindo adaptar essa formula alterando o "Contato" para "enviada"

 

Abraço e no Aguardo....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, mas eu não entendi nem quando nem onde essa mudança ocorre. :D

É simples Junqueira!!

No exemplo eu coloquei Contato/Jan13, mas na minha planilha quero usar enviada/Jan13 tndeu!! :P

 

 

o que acontece é isso:

Quando copio essa formula =SE(ÉERROS(PROCH("Contato/"&BV$3&"13";$AP5:$BK5;1;0));"";MAIÚSCULA(BV$3)&"/13")

pra celula BV5, o valor não aparece. A formula fica como se fosse texto, como se tirasse o sinal de = tndeu!!

valeu!! 

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que acontece é isso:

Quando copio essa formula pra celula BV5, o valor não aparece. A formula fica como se fosse texto, como se tirasse o sinal de = tndeu!!

valeu!! :mellow:

P/ pular essa limitação (tem um jeito de corrigir isso q não estou lembrando. Esse problema veio com sua planilha) copie e cole como fórmula ao invés de arrastar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Junqueira, beleza!!

tão testei com algumas celulas e funcionou mesmo!! Rsss

Mas tão, como eu já havia dito desde o início, a palavra Contato/Jan13 ou que seja, Enviada/Jan13, não é a única coisa escrita nas celulas.

Há escritas tipo assim, Ex:

 

"Cliente confirmou mensagem de Contato/Jan13 e pediu fazer visita"

 

Resumindo, da frase toda, Lá em BV5 o que eu quero que apareça é só o JAN/13 tendeu!!

 

Abraç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





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

×