Gerador de Id(Códig...
 
Notifications
Clear all

Gerador de Id(Código) Alfanumérico

10 Posts
3 Usuários
0 Reactions
6,218 Visualizações
(@alkallil)
Posts: 5
Active Member
Topic starter
 

Olá a todos !

Estou montando um pequeno aplicativo para fins acadêmicos. Neste aplicativo, há um "Formulário de Cadastro" com alguns dados básicos. A inserção de dados é até algo básico demais e , estes são implementados facilmente na planilha - a base de dados do projeto. Mas, em um dos campos, eu criei o campo "Código". E eu gostaria que neste campo, fosse gerado uma série de caracteres automaticamente, conforme o cadastro fosse realizado com sucesso . Mas , não gostaria de um código simples, do tipo "Código 1" e assim sucessivamente. Gostaria que fosse gerado um código do tipo "alfanumérico" automaticamente, e assim, em cada linha subsequente. Exemplo...na linha "A" da minha planilha, eu tenho o campo "Nome". Após preencher este campo com o nome "Daniel", por exemplo e, terminar o preenchimento de todos os campos restantes, gostaria que fosse gerado no campo "código"- automaticamente, um valor do tipo "DA001". E cada vez que fosse sendo inserido dados, que este campo código, continuasse gerando códigos desta mesma forma( correlacionando com o campo 'nome' ). É possível a geração de tal valor neste meu formulário ? por macro, eu até consigo fazer e vou arrastando o valor pelas células. Mas , gostaria que fosse gerado pelo formulário, ao término de preenchimento dos dados. Agradeço a todos desde já, pela atenção dada à minha mensagem.

 
Postado : 28/02/2014 8:14 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Vc disse que consegue fazer por macro e arrasta para as células.

Mas macro não se arrasta, e sim fórmulas.

Outra coisa, vc disse que quer fazer pelo formulário, então é uma macro que vai no formulário.

Além disso, quais os parâmetros? sempre vai ter 2 letras? elas vão sempre ser as 2 primeiras do nome? e se os nomes de 2 pessoas diferentes forem o mesmo? e vai ter sempre 3 números?

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 28/02/2014 8:21 am
(@alkallil)
Posts: 5
Active Member
Topic starter
 

Vc disse que consegue fazer por macro e arrasta para as células.

Mas macro não se arrasta, e sim fórmulas.

Outra coisa, vc disse que quer fazer pelo formulário, então é uma macro que vai no formulário.

Além disso, quais os parâmetros? sempre vai ter 2 letras? elas vão sempre ser as 2 primeiras do nome? e se os nomes de 2 pessoas diferentes forem o mesmo? e vai ter sempre 3 números?

É verdade eu quis dizer "fórmulas", me perdoe pela colocação errada dos termos, caro GTSALIKIS . Sim, uma "macro que vai no formulário", que gerará o código alfanumérico pretendido. E sim,os parâmetros são: 02(duas) letras e 03(três) números. Isso mesmo que eu quis dizr. Grato pela correção terminológica e pela atenção.

 
Postado : 28/02/2014 9:25 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Sem o modelo da planilha, vc terá que adaptar, mas seria algo assim:

Dim Protocolo As String
Dim UL As Integer 'Última Linha
Dim Nome As String

Nome = textboxnome 'digite aqui o nome correto do seu textbox q contém o nome
Nome = UCase(Left(Nome, 2))

UL = Sheets("Plan1").Range("A" & Rows.Count).End(xlUp).Row

Protocolo = Len(Cells(UL, "B").Value)
If Protocolo = 0 Then
    Protocolo = 1
    UL = 0
Else
    Protocolo = Right(Cells(UL, "B").Value, 3)
    Protocolo = Protocolo + 1
End If
Protocolo = Format(Protocolo, "00#")
Protocolo = Nome & Protocolo

Cells(UL + 1, "B") = Protocolo

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 28/02/2014 10:36 am
(@alkallil)
Posts: 5
Active Member
Topic starter
 

Sem o modelo da planilha, vc terá que adaptar, mas seria algo assim:

Amigo gtsalikis.
Neste momento, já sou muito grato pela sua imensa boa vontade de até mesmo gerar um código para meu projeto. Muito obrigado ! no entanto e infelizmente :cry: , não funcionara do modo esperado, ou seja, não gerou um código alfanumérico correlacionado com o campo nome. Enfim, estou anexando a planilha do meu projeto mais o respectivo formulário. Se você puder dar uma analisada - em seu tempo , com toda calma do mundo, claro, eu te agradeço ainda mais. Eu quero entender este conceito. Tenho dificuldades para isso, mas , estou tentando me esforçar para entender. Obrigado !

 
Postado : 28/02/2014 11:09 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Amigo,

o código que eu te passei deve ser colocado dentro de:

Private Sub buttoncadastraobra_Click()

e essa parte do código:

Nome = textboxnome

deve ficar assim:

Nome = txtboxautor.Value

Considerando que o nome ao qual vc se refere seja o do autor da obra.

Além disso, eu fiz o código para entrar na coluna B, mas pela tua planilha, vc colocou na linha H. Troque isso no código.

Fora isso, o teu form deu erro quando fui tentar rodar, não sei se estava normal pra vc, ou se tirou alguma parte da planilha antes de enviar.

Outra coisa: vc quer que o form já mostre o código (porque tem, um textbox lá com o código), ou quer apenas que ele insira o código na planilha (que foi o que eu fiz)?

Recomendo que vc veja primeiro o erro do form, e depois ajuste o código.

E, por último, veja as regras do fórum. Os arquivos devem ser compactados.

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 28/02/2014 11:42 am
(@alkallil)
Posts: 5
Active Member
Topic starter
 

Amigo,

o código que eu te passei deve ser colocado dentro de:

Private Sub buttoncadastraobra_Click()

e essa parte do código:

Nome = textboxnome

deve ficar assim:

Nome = txtboxautor.Value

Considerando que o nome ao qual vc se refere seja o do autor da obra.

Além disso, eu fiz o código para entrar na coluna B, mas pela tua planilha, vc colocou na linha H. Troque isso no código.

Fora isso, o teu form deu erro quando fui tentar rodar, não sei se estava normal pra vc, ou se tirou alguma parte da planilha antes de enviar.

Outra coisa: vc quer que o form já mostre o código (porque tem, um textbox lá com o código), ou quer apenas que ele insira o código na planilha (que foi o que eu fiz)?

Recomendo que vc veja primeiro o erro do form, e depois ajuste o código.

E, por último, veja as regras do fórum. Os arquivos devem ser compactados.

Bem, ponto a ponto...vamos lá ! primeiro, me perdoe pela não compactação do arquivo em anexo, foi falha minha mesmo, desatenção - perdão a você e todos do fórum. Quanto a referência, é o "autor" sim, mas, pode ser "título" e outros campos que possuam "nomes", de fato. Isso eu alterarei no código, sem problemas. Também alterarei a questão para a célula "H", pode deixar. O erro que está dando no form, é em razão de uma função que não inseri em módulo, mas, vou inseri-la novamente depois. E, eu até quero sim, que o "código" já até apareça no form, logo que este se abra. Mas, para isso, eu vou gerar um outro form no sistema, que é para "alteração" e "exclusão" de dados - talvez, creio que isso gerará uma pequena dificuldade pra mim. A princípio, só quero a geração de código alfanumérico automática do mesmo. No entanto, mais uma vez, lhes sou muito grato , meu caro ! sua atenção e sua ajuda são de imensa valia ! obrigado !

* Na depuração, apesar dos ajustes que você recomendou, aponta a falha "tipos incompatíveis"
na linha 13, 'protocolo = protocolo + 1 ' :cry:

 
Postado : 28/02/2014 12:44 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Desculpe o erro, eu tinha aproveitado um código que escrevi recentemente, e acabei não ajustando corretamente.

Agora está testado na tua planilha que vc enviou por último:

Dim Protocolo As String
Dim UL As Integer 'Última Linha
Dim Nome As String

Nome = txtboxautor.Value 'digite aqui o nome correto do seu textbox q contém o nome
Nome = UCase(Left(Nome, 2))

UL = Sheets("base").Range("D" & Rows.Count).End(xlUp).Row + 1

Protocolo = Len(Cells(UL, "H").Value)

If Protocolo = 0 Then
    Protocolo = 1
Else
    Protocolo = Right(Cells(UL, "H").Value, 3)
    Protocolo = Protocolo + 1
End If

Protocolo = Format(Protocolo, "00#")
Protocolo = Nome & Protocolo

Cells(UL, "H") = Protocolo

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 28/02/2014 1:05 pm
(@alkallil)
Posts: 5
Active Member
Topic starter
 

Desculpe o erro, eu tinha aproveitado um código que escrevi recentemente, e acabei não ajustando corretamente.

Agora está testado na tua planilha que vc enviou por último:

Meu caríssimo GTSALIKIS. Primeiramente, me perdoe a demora na visualização da mensagem e resposta. Aqui no Rio de Janeiro, na Zona Norte mais especificamente, está faltando tudo : água, luz e outros. Houve uma brusca queda de luz por aqui e só agora retornou. Tentei usar o Notebook mais o meu celular como Rede 3G, mas aqui no Rio, este protocolo de rede é inexistente. Enfim, meu caro, você com clareza e objetividade, quebrou o mistério que eu estava encucado. Entendi a concepção das variáveis de forma clara. Sua ajuda foi extraordinária ! muito obrigado mesmo por seu tempo e dedicação ! valeu ! ;)

 
Postado : 28/02/2014 4:21 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Caso seja necessário reabrir o tópico, o autor poderá enviar uma MP para um dos moderadores solicitando o desbloqueio.

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

 
Postado : 01/03/2014 10:11 am