Notifications
Clear all

Separar Letra de número... Acrescentar a letra e somar 1

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

Pessoal,

Boa noite.

Alguém tem alguma sugestão para a seguinte situação?

Tenho uma coluna com um ID... E00001 (Primeiro código)...

Quero colocar a sequência dele nas próximas linhas... Então ... na próxima linha ele vai manter o E e vai acrescentar 1 ao número... Portanto... Ele fica E00002 ... E00003 ... E por aí vai... Isso está sendo colocado como resultado de um lançamento de formulário... Cada cadastro realizado vai sendo gerado esse código...

Agradeço desde já pelo apoio!!

Abs.

 
Postado : 29/01/2017 3:33 pm
(@brunoxro)
Posts: 0
New Member
 

Boa noite tiago,

Teste:

Sub PreencherID()
    
    'OBS: Estou supondo que os dados estão na coluna A
    'OBS: Também estou supondo que o primeiro valor da coluna foi preenchido (E000001)"
    
    Rem Declaro as váriaveis
    Dim MyCell    As Range
    Dim Nlin      As Double
    
    Rem Descubro o número de linahs
    Nlin = Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
    
    Rem seleciono a última célula não preenchida
    Cells(Nlin, 1).Select
    
    Set MyCell = Selection
    
    MyCell.NumberFormat = "@"
    
    Rem Adiciona zeros e soma 1 do valor da linha anterior
    MyCell = "0000000" & Right(MyCell.Offset(-1, 0), 6) + 1
    
    MyCell = "E" & CStr(Right(MyCell, 6))
        
End Sub

Se tiver alguma dúvida é só avisar.

OBS: Coloque uma planilha de exemplo se precisar de ajuda.

att,

 
Postado : 29/01/2017 6:47 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

.0
Pelo que você diz na pergunta, é simples ... coloque em A1 E00001 ... em A2 E00002 ... pronto agora é só selecionar e arrastar até onde desejar!!!
.

 
Postado : 29/01/2017 7:33 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Com fórmulas:

A2: E00001
A3:

="E"&texto(EXT.TEXTO($A2;2;5)+1;"00000")

E arrasta, ou escreva esta fórmula a cada inserção do formulário, e em seguida, cole valor, ou seja, pode usar a fómula acima, direto na célula, OU, via ódigo, assim:

Range("A" & Linha).FormulaR1C1="=""E""&TEXT(MID(R[-1]C,2,5)+1,""00000"")"

p.s.: não testei, mas é pra funcionar...

 
Postado : 30/01/2017 7:04 am