Notifications
Clear all

Concatenar com formatação - VBA

6 Posts
3 Usuários
0 Reactions
1,713 Visualizações
(@alesil)
Posts: 4
New Member
Topic starter
 

Olá pessoal,

Estou querendo criar uma formula para concatenar no excel através do VBA, em Fuction. Só que eu preciso que dentro dessa fórmula eu tenha algumas formatações de texto, isso é possível?

Por exemplo:

Eu tenho várias colunas na minha planilha preenchida por várias linhas. Eu preciso que seja uma fórmula, pois vou utilizá-las para unir várias colunas diferentes.

Eu queria fazer uma fórmula que concatenasse as informações da mesma linha de 3 colunas, entre cada coluna eu queria colocar um caractere. Entre a 1 celula e a 2ª eu queria que houvesse “ponto final” e 1 espaço, e entre a 2ª célula e a 3ª célula eu queria colocar o travessão “-“ e um espaço. Além disso, eu queria que toda a informação contida na primeira coluna e na segunda, bem como os caracteres, ficassem em negrito, e a 3ª coluna normal, sem negrito. Todas as letras das 3 colunas eu queria estivesse em maiúscula e na fomaração de calibri (corpo), tamanho 10. Seria algo mais ou menos assim a minha planilha, porém com muito mais linhas e colunas, mas eu uniria as informações de 3 em 3 colunas somente. (coloquei um arquivo em anexo de modelo, mas a planilha que eu utilizarei possui muito mais colunas e linhas)

NOME PLANO 1 PLANO 2 PLANO 3 CONCATENAR - resultado que desejo
ROBERTO B 34 Abobora VERMELHO B 34. ABOBORA – VERMELHO
PAULO C 54 MORANGO amarelo C 54. MORANGO - AMARELO
Nunes e 23 pera MARRON E 23. PERA - MARRON
AMANDA F 56 MAÇA azul F 56. MAÇA -AZUL

É possível eu usar um código para criar essa fórmula da maneira como eu quero, com essas formatações? E alguém saberia me dizer quais códigos eu teria que utilizar?

Desde já agradeço!

 
Postado : 27/08/2017 7:14 pm
joebsb
(@joebsb)
Posts: 44
Eminent Member
 

Olá Alesil...

Já que ninguém respondeu... vou mandar o resultado por aqui....

Isso só é possível através do VBA.... crie uma macro com esse código e depois a execute. O código está ajustado para usar a planilha de exemplo que vc enviou!

Sub AjeitandoTudo()
'Macro criada por Joe em 14/09/2017
'Contato para freelancer: (61) ******

i = 1
ActiveSheet.Columns(5).Delete
Do Until Len(ActiveSheet.Cells(i, 1).Text) = 0
    texto = ActiveSheet.Cells(i, 2) & ". " & ActiveSheet.Cells(i, 3) & " - " & ActiveSheet.Cells(i, 4)
    texto = UCase(texto)
    fim = Len(ActiveSheet.Cells(i, 2)) + Len(ActiveSheet.Cells(i, 3)) + 2
    ActiveSheet.Cells(i, 5) = texto
    ActiveSheet.Cells(i, 5).Font.Name = "Calibri"
    ActiveSheet.Cells(i, 5).Font.Size = 10
    ActiveSheet.Cells(i, 5).Characters(Start:=1, Length:=fim).Font.FontStyle = "Bold"
    i = i + 1
Loop
End Sub

Abraços.

Espero ter ajudado.

Se ficou como vc queria... não esqueça de marcar essa mensagem como tópico resolvido e mandar um TKS.

Abraços

 
Postado : 14/09/2017 8:54 am
(@alesil)
Posts: 4
New Member
Topic starter
 

Boa noite,

Desculpa e demora em dar um retorno, só agora consegui ver a mensagem!!! Já testei rapidamente aqui na minha planilha e acho que é exatamente isso o que eu quero! Agora é só eu fazer os ajustes que preciso! Muitíssimo obrigada!!!!

 
Postado : 19/09/2017 7:00 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite Alesil

Pelo jeito você não acessou os links que eu postei no tópico da tua apresentação, pois não usou a ferramenta para agradecer (pontuar) ao colaborador.

[]s

Patropi - Moderador

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

 
Postado : 20/09/2017 6:11 pm
(@alesil)
Posts: 4
New Member
Topic starter
 

Desculpa, eu acho que eu abri sim todos os links do tópico da minha apresentação e tentei lê-los novamente agora, mas não sei se foi por incompetência minha mesma, o que é bem provável,rs. eu não consegui ver onde eu posso pontuar. Só consegui ler a questão da mãozinha. Desculpa não ter pontuado antes. Você poderia postar para mim o link novamente sobre esse tópico?

 
Postado : 21/09/2017 8:33 am
(@alesil)
Posts: 4
New Member
Topic starter
 

Resolvi colocar como não resolvido, porque para o que quero, realmente seria melhor se eu conseguisse colocar essas informações em um fórmula... O meu problema agora seria em como jogar isso na formula. Para concatenar diversas colunas com um separador somente eu já consegui, mas com separadores alternados ainda não obtive sucesso, alguém poderia ajudar nesse aspecto?

 
Postado : 21/09/2017 8:38 am