Notifications
Clear all

Separar conteúdo de uma célula

5 Posts
3 Usuários
0 Reactions
1,058 Visualizações
(@mateus0203)
Posts: 53
Trusted 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
Fernando Fernandes
(@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

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 03/11/2017 4:22 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

mateus0203,

Boa noite!

Veja se é assim.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

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

Os dois serviram! Obrigado a todos!

 
Postado : 03/11/2017 4:56 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious 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.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 03/11/2017 5:24 pm