Notifications
Clear all

Aumentar espaço entre letras

10 Posts
3 Usuários
0 Reactions
1,549 Visualizações
(@ruic)
Posts: 26
Eminent Member
Topic starter
 

Bom dia,

Pretendo que numa determinada célula tenha uma cadeia de texto, dando como exemplo: PT00002000020870564FG
O problema que está a surgir é que pretendo que esse texto seja formatado da seguinte forma: P T 0 0 0 0 2 0 0 0 0 2 0 8 7 0 5 6 4 F G
Já tentei na formatação de letra (pesonalizado), mas não tenho tido sucesso, pois é um misto de letras e números.
Alguém me pode ajudar?

Cumprimentos,
Rui

 
Postado : 06/05/2015 5:29 am
Issamu
(@issamu)
Posts: 605
Honorable Member
 

Olá Rui!
Ainda não me surgiu nenhuma ideia de como realizar isso usando as ferramentas nativas do Excel, mas tenho a solução usando uma função personalizada.

Insira o código abaixo em algum módulo da planilha:

Public Function VALORESDOVETOR(vArray As Variant, _
                               Optional lSize As Long, _
                               Optional sSeparator As String = ", ") As Variant
  Dim v As Variant
  Dim lCount As Long
  Dim asOut() As String
  
  If lSize < 0 Then
    VALORESDOVETOR = CVErr(xlErrNum)
    Exit Function
  End If
  
  For Each v In vArray
    If v <> "" Then
      lCount = lCount + 1
      ReDim Preserve asOut(1 To lCount)
      asOut(lCount) = v
      If lCount = lSize Then Exit For
    End If
  Next v
  
  VALORESDOVETOR = Join(asOut, sSeparator)
End Function

Então, através de uma fórmula matricial com a função EXT.TEXTO é possível gerar uma matriz com cada caractere do texto, que então utilizando essa função personalizada do código, VALORESDOVETOR, é possível agrupar os elementos da matriz com o espaçamento. Supondo que o texto esteja na célula A1, você pode aplicar na célula B1 a fórmula matricial:

=VALORESDOVETOR(EXT.TEXTO(A1;LIN(INDIRETO("1:"&NÚM.CARACT(A1)));1);;" ")

Essa fórmula deve ser inserida com CRTL+SHIFT+ENTER.

Se me surgir alguma ideia de outra alternativa volto a postar.

Abraços!

Rafael Issamu F. Kamimura
Moderador Oficial Microsoft Community - MCC (Contribuidor do Microsoft Community)
http://zip.net/bjrt0X - http://zip.net/bhrvbR
Foi útil? Clique na mãozinha
Conheça: http://excelmaniacos.com/

 
Postado : 06/05/2015 6:41 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Uma solução vagaba k ... supondo os dados em A2 ... B2=EXT.TEXTO($A2;COL()-1;1) arrasta para a direita ... depois é só redimensionar as colunas e não colocar bordas internas ... visualmente e na impressão vai aumentar o espaço entre letras!!!

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

 
Postado : 06/05/2015 7:44 am
(@ruic)
Posts: 26
Eminent Member
Topic starter
 

Bom dia,

Não querendo abusar, poderiam aplicar esse processo na folha que coloco em anexo?
Estou com dificuldades em obter um resultado, pois dá erro.
Não encontro a função Ext.Texto no excel, talvez por eu utilizar a versão portuguesa de Portugal.
Abraços

 
Postado : 06/05/2015 8:11 am
Issamu
(@issamu)
Posts: 605
Honorable Member
 

Olá Rui!

Usando o site http://en.excel-translator.de/translator/ traduzi a fórmula para o português de Portugal.

=VALORESDOVETOR(SEG.TEXTO(A1;LIN(INDIRECTO("1:"&NÚM.CARACT(A1)));1);;" ")

Quanto ao código VBA, para aplicá-lo a sua planilha, pressione ALT+F11 para abrir o Visual Basic e então insira um módulo na sua pasta de trabalho e copie e cole o código que postei na folha de códigos e feche o VBA e aplique então a fórmula acima.

Se não conseguir, a noite posto o modelo, pois no momento não vou conseguir salvar o arquivo com o projeto VBA.

Abraços!

Rafael Issamu F. Kamimura
Moderador Oficial Microsoft Community - MCC (Contribuidor do Microsoft Community)
http://zip.net/bjrt0X - http://zip.net/bhrvbR
Foi útil? Clique na mãozinha
Conheça: http://excelmaniacos.com/

 
Postado : 06/05/2015 10:17 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Rui e Rafael

Se o Rui já tivesse anexado o ficheiro na primeira postagem esse problema não teria ocorrido, pois o Rafael iria responder anexando novamente o ficheiro, assim quando o Excel fosse aberto no teu PC com Excel em PT-PT as fórmulas já seriam traduzidas automaticamente.

[]s

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

 
Postado : 06/05/2015 10:48 am
(@ruic)
Posts: 26
Eminent Member
Topic starter
 

Amigo Issamu,
Não estou a conseguir, o VBA para mim ainda é um bicho de 7 cabeças, não sei como inserir código.
Desculpem a ignorância.
Patropi, desculpa na realidade cometi esse lapso, julguei que fosse mais simples de fazer.
Abraços,
Rui

 
Postado : 06/05/2015 11:14 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Regras do forum:

Upload
Devido a ultrapassagem da marca de 1,5Gb de armazenamento de arquivos na hospedagem do Planilhando, limitaremos o tamanho de cada arquivo para 2Mb sendo obrigatório o uso dos formatos .zip - .rar - .ice visto a gratuidade e não geração de recursos para bancar o site.

Assim sendo, todos os anexos não compactados deste tópico foram removidos.

Por favor leia as regras (link na minha assinatura), e passe a compactar todos os seus anexos.

Obrigado,

Fernando

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

 
Postado : 06/05/2015 11:27 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Rui

Para inserir o código no teu ficheiro:

Premir ALT+F11 --> vai acessar o Editor de VBA do Excel --> Guia Inserir --> Módulo --> no módulo cole a Macro que o Rafael te passou --> CTRL+Q para sair do Editor de VBA

Segue a planilha com a fórmula e a Macro funcionando.

Dê retorno.

Clique na mãozinha da minha resposta e da resposta do Fafael ) Fica do lado da ferramenta Citar)

Para marcar o tópico como Resolvido, clique no V (vezinho Verde que fica depois da ferramenta Editar) da resposta do Rafael, pois foi ele quem resolveu a tua dúvida.

[]s

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

 
Postado : 06/05/2015 11:33 am
(@ruic)
Posts: 26
Eminent Member
Topic starter
 

Muito obrigado.
Problema resolviso :)
Abraços,
Rui

 
Postado : 06/05/2015 11:37 am