Notifications
Clear all

Separar conteúdo de uma célula

5 Posts
3 Usuários
0 Reactions
1,051 Visualizações
(@mateus0203)
Posts: 0
New Member
Topic starter
 

Boa tarde pessoal!

Tenho uma planilha com células na coluna A, onde todas elas possuem 3 dados que me interessam. Estes dados SEMPRE estão separados por um hífen ( - ) e SEMPRE estão separados pelo primeiro e pelo último hífen. Eis um exemplo fiel:

C18522 - Rolo de fio de cobre - M

Podemos ver no exemplo os três dados que me interessam, o primeiro corresponde ao "C18522", o segundo corresponde ao "Rolo de fio de cobre", e o terceiro "M".

Bem, eu gostaria de separá-los da mesma forma como seria separado se eu utilizasse a função Texto para Colunas, da aba DADOS do Excel. Eu poderia acionar o gravador e fazer a separação, para depois pegar o código e utilizá-lo na minha rotina. Porém existe um único impedimento para que eu proceda assim. Às vezes o dado do meio (Rolo de fio de cobre) vem com alguma palavra que contenha hífen, então o Excel separa de forma a existir 4 dados, eis um exemplo fiel:

C11752 - Porta-ferramentas - UN

Neste caso infelizmente o Excel me devolve 4 dados, sendo o primeiro "C11752", o segundo "Porta", o terceiro "ferramentas" e o quarto "UN".

Então, gostaria de um código que sempre separe os dados pelo primeiro e pelo último hífen e que, da mesma forma que a função Texto para Colunas, coloque estes dados sempre na célula da direita.

Obrigado!

 
Postado : 03/11/2017 3:54 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


Segue exemplo... veja se atende.

Desculpa o excesso de variáveis sem declaração/comentários.


Sub TextoPColunas()

i = 2

Do While Cells(i, 1) <> ""
f1 = Application.WorksheetFunction.Search("-", Cells(i, 1), 1)
f = Len(Cells(i, 1))
e = f
Do While Mid(Cells(i, 1), f, 1) <> "-"
f = f - 1
Loop
f2 = f
Cells(i, 2) = Mid(Cells(i, 1), 1, f1 - 2)
Cells(i, 3) = Mid(Cells(i, 1), f1 + 2, f2 - f1 - 3)
Cells(i, 4) = Mid(Cells(i, 1), f2 + 2, e - f2)

i = i + 1

Loop

End Sub

 
Postado : 03/11/2017 4:22 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

mateus0203,

Boa noite!

Veja se é assim.

 
Postado : 03/11/2017 4:39 pm
(@mateus0203)
Posts: 0
New Member
Topic starter
 

Os dois serviram! Obrigado a todos!

 
Postado : 03/11/2017 4:56 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

De nada!!

Por favor, vote positivamente clicando na mãozinha que fica localizada ao lado da ferramenta CITAR no canto superior direito da caixa de mensagens.

 
Postado : 03/11/2017 5:24 pm