Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Separa texto de uma célula

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Adonias
Manda bem
Manda bem
Mensagens: 167
Registrado em: Sáb Jun 02, 2012 12:55 pm

Separa texto de uma célula

Mensagem por Adonias »

Pessoal, Eu tenho numa célula o texto: casa de milho 135
Eu quero um comando vba que conte os três últimos caracteres da célula e recorte e cole na célula a frente, logo ficará assim.
A1 B1
casa de milho | 135

é que tenho uma relação enorme de células que terei de fazer isso

Quero automatizar a coisa

aguardo

Adonias


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
McJota
Colaborador
Colaborador
Mensagens: 26
Registrado em: Sáb Out 13, 2012 10:16 pm

Re: Separa texto de uma célula

Mensagem por McJota »

Olá Adonias
Crie um Form com um CommandButton e insira o seguinte código:

Código: Selecionar todos

Private Sub CommandButton1_Click()
Range("A1").Select
Dim j As String
Dim k As String
While ActiveCell <> ""
j = Right(ActiveCell.Text, 3)
ActiveCell.Offset(0, 1).Value = j
j = Len(ActiveCell.Text)
k = Left(ActiveCell.Text, j - 3)
ActiveCell.Value = k
ActiveCell.Offset(1, 0).Select
Wend
End Sub
Qualquer coisa posta aqui.

Abraço...


Avatar do usuário
BaptistaCG
Colaborador
Colaborador
Mensagens: 96
Registrado em: Seg Jul 30, 2012 10:33 pm
Localização: Sorocaba/SP

Re: Separa texto de uma célula

Mensagem por BaptistaCG »

McJota escreveu:Olá Adonias
Crie um Form com um CommandButton e insira o seguinte código:

Código: Selecionar todos

Private Sub CommandButton1_Click()
Range("A1").Select
Dim j As String
Dim k As String
While ActiveCell <> ""
j = Right(ActiveCell.Text, 3)
ActiveCell.Offset(0, 1).Value = j
j = Len(ActiveCell.Text)
k = Left(ActiveCell.Text, j - 3)
ActiveCell.Value = k
ActiveCell.Offset(1, 0).Select
Wend
End Sub
Qualquer coisa posta aqui.

Abraço...

Parabéns McJota

Excelente Macro.


Adonias
Manda bem
Manda bem
Mensagens: 167
Registrado em: Sáb Jun 02, 2012 12:55 pm

Re: Separa texto de uma célula

Mensagem por Adonias »

Valeu mesmo, obrigado pessoal.

agora digam-me: se eu quisesse que houvesse um loop para ao terminar a relação o codigo retornasse e começasse tudo denovo pegando os último três caracteres novamente e pondo-os na terceira coluna desta vez.
como seria esse código?

valeu


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
McJota
Colaborador
Colaborador
Mensagens: 26
Registrado em: Sáb Out 13, 2012 10:16 pm

Re: Separa texto de uma célula

Mensagem por McJota »

Ola Adonias.
Digamos que na célula a1 tenha o seguinte texto "Tenha um bom dia".
Com este código:

Código: Selecionar todos

Private Sub CommandButton1_Click()
Range("A1").Select
Dim j As String
Dim k As String
While ActiveCell <> ""
j = Right(ActiveCell.Text, 3)
ActiveCell.Offset(0, 1).Value = j
j = Len(ActiveCell.Text)
k = Left(ActiveCell.Text, j - 3)
ActiveCell.Value = k
ActiveCell.Offset(1, 0).Select
Wend
Range("A1").Select
While ActiveCell <> ""
j = Right(ActiveCell.Text, 3)
ActiveCell.Offset(0, 2).Value = j
j = Len(ActiveCell.Text)
k = Left(ActiveCell.Text, j - 3)
ActiveCell.Value = k
ActiveCell.Offset(1, 0).Select
Wend
End Sub
Ficaria assim: "Tenha um" "dia" "bom"!

Com este código:

Código: Selecionar todos

Private Sub CommandButton1_Click()
Range("A1").Select
Dim j As String
Dim k As String
While ActiveCell <> ""
j = Right(ActiveCell.Text, 3)
ActiveCell.Offset(0, 2).Value = j
j = Len(ActiveCell.Text)
k = Left(ActiveCell.Text, j - 3)
ActiveCell.Value = k
ActiveCell.Offset(1, 0).Select
Wend
Range("A1").Select
While ActiveCell <> ""
j = Right(ActiveCell.Text, 4)
ActiveCell.Offset(0, 1).Value = j
j = Len(ActiveCell.Text)
k = Left(ActiveCell.Text, j - 4)
ActiveCell.Value = k
ActiveCell.Offset(1, 0).Select
Wend
End Sub
Ficaria assim: "Tenha um" "bom" "dia"!

Abraço...


Avatar do usuário
BaptistaCG
Colaborador
Colaborador
Mensagens: 96
Registrado em: Seg Jul 30, 2012 10:33 pm
Localização: Sorocaba/SP

Re: Separa texto de uma célula

Mensagem por BaptistaCG »

Adonias escreveu:Valeu mesmo, obrigado pessoal.

agora digam-me: se eu quisesse que houvesse um loop para ao terminar a relação o codigo retornasse e começasse tudo denovo pegando os último três caracteres novamente e pondo-os na terceira coluna desta vez.
como seria esse código?

valeu
É só ir aumentando o valor que esta em vermelho, a cada vez que aumentar ele irá pular para a próxima coluna neste exemplo ele irá colocar na coluna c
Note: para fazer esse procedimento vai ser necessário manter os ultimos 3 digitos para que ele continue a fazer, então é só ir duplicando o codigo para cada coluna nova que vc precisar, e no final colocar uma sequencia que seja igual a anterior que apagava os ultimos tres.
Desta forma que apresentei declarei mais uma variavel chamada x e determinei o valor dela o mesmo da celula ativa para que no final do codigo mantenha o valor original.
Espero que eu tenha sido claro com a explicação. :D

Private Sub CommandButton1_Click()
Range("A1").Select
Dim j As String
Dim k As String
While ActiveCell <> ""
Dim x
x = ActiveCell.Value
j = Right(ActiveCell.Text, 3)
ActiveCell.Offset(0, 2).Value = j
j = Len(ActiveCell.Text)
k = Left(ActiveCell.Text, j - 3)
ActiveCell.Value = x
ActiveCell.Offset(1, 0).Select
Wend
End Sub

Att...


Adonias
Manda bem
Manda bem
Mensagens: 167
Registrado em: Sáb Jun 02, 2012 12:55 pm

Re: Separa texto de uma célula(RESOLVIDO)

Mensagem por Adonias »

Valeu mesmo amigão. Muito obrigado.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder