Notifications
Clear all

Formatação Personalizada com campos fixo e variável

4 Posts
2 Usuários
0 Reactions
1,015 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde a todos!

Quero formatar algumas células de uma planilha para criar uma "Mascara" para que eu não precise ficar digitando a parte fixa.
Eu tenho uma planilha que cadastro alguns TERMOS, que são compostos por uma parte fixa (que sempre se repete) e outra varíavel.
O formato que tenho hoje é:

ANO.TIPO.NÚMERODOTERMO =ANO e TIPO são fixos (nunca mudam), mas o número do termo é variável, ou seja, vai de 1 até 100000000.
Por exemplo:
2015.021.1 (termo número 1)
2015.021.2
...
2015.021.15666 (termo número 15666)

Alguém teria a fórmula que eu usaria na formatação personalizada para uma situação como esta?

Desde já agradeço a atenção.

 
Postado : 21/08/2015 11:21 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde Bravoc

Experimente usar essa mascara na formatação Personalizada:

"2015.021."####

S for útil, clique na mãozinha.

Dê retorno.

[]s

 
Postado : 21/08/2015 11:42 am
(@issamu)
Posts: 0
New Member
 

Olá Bravoc, a solução do Patropi atende ao que você está solicitando, porém eu tenho uma observação para te fazer, na verdade um cuidado que você deve tomar.
Dependendo do tipo de trabalho e de relacionamentos que esta sua tabela terá com outras tabelas, você poderá ter problemas, pois ao trabalhar com a formatação personalizada, você está apenas criando uma máscara na célula para o valor que foi associada a ela, ou seja, o valor da célula e a máscara de saída são diferentes. Isso poderá impactar, por exemplo, se você tiver outras tabelas onde o o valor da célula esteja realmente com o código, você não vai conseguir relacionar elas com as funções CONT.SE, PROCV, ÍNDICE, SOMASES, Etc.

Então use com cuidado a formatação personalizada. Tenha certeza que este código não vai ser relacionado com outras tabelas.

Uma solução mais avançada seria incluir o código com via VBA com o evento CHANGE da planilha, usando a função intersect.
Um modelo de código poderia ser:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
On Error GoTo fim
If Not Intersect(Target, Range("A2:A10")) Is Nothing Then
If Target.Value <> "" Then
Target.Value = "2015.021." & Target.Value
End If
End If
fim:
Application.EnableEvents = True
End Sub

Com o código acima associado ao módulo planilha, tudo que você inserir em A2:A10 vai ser precedido da expressão 2015.021. É uma solução mais avançada para quem está familiarizado com VBA.

Abraços!

 
Postado : 21/08/2015 12:06 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Muito obrigado Patropi e Rafael!

Rafael, adoro o VBA, mas infelizmente na empresa que trabalho eles usam o Broffice, ou seja, a rotina não funcionaria lá.
Por este motivo, eu usei a forma indicada pelo Patropi.
Agradeço demais a disposição de vocês em me ajudar.

 
Postado : 21/08/2015 3:44 pm