Numeração personali...
 
Notifications
Clear all

Numeração personalizada no TextBox

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

Boa noite a todos,

Estou criando um formulário de cadastro e necessito criar uma numeração sequencial num TextBox, toda vez que eu for inserir um novo projeto, onde apareça o número sequencial, mais o ano que está sendo criado.

É +/- assim: 001/2011, 002/2011, 003/2011 e assim por diante.

No caso do ano, tem que seguir a data do computador. E assim que começar 2012, ele terá que começar novamente em 001/2012, 002/2012, 003/2012 e assim por diante.
Em 2013 começará novamente em 001/2013, 002/2013, 003/2013........

Espero que tenha entendido e possam me ajudar.

Aguardo contato

Abraços!!!

 
Postado : 26/10/2011 4:48 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Amigo, dependeria de mais algumas informações, por exemplo se a aba já tem alguns cadastros, ou se irá começar do Zero.

Supondo que irá começar do "Zero" e a Numeração está na Coluna "A" da aba "Cadastro" onde em "A1" é o cabeçaho e a numeração Iniciará em "A2", utilize a rotina abaixo :

Private Sub CommandButton1_Click()
    Dim lastRow As Long
    
    Dim wsCadastro As Worksheet
    'Aba Cadastro
    Set wsCadastro = Worksheets("Cadastro")
    
    'Verifica qual a ultima Linha preenchida na coluna A
    'Descontando a primeira linha de cabeçalho
    lastRow = wsCadastro.Cells(Rows.Count, 1).End(xlUp).Row - 1
    
    'Coloca no TextBox1 o Numero formatado junto com o Ano Atual
    TextBox1.Value = Format(lastRow + 1, "000") & "/" & Format(Now, "yyyy")

End Sub

Quanto a questão na troca de ano, eu acho que o ideal seria ter os anos em alguma parte da planilha, e ir fazendo a verificação, usando a condição IF : por exemplo :

Sub Anos()
    Dim sAno As String
    
    Dim wsContatos As Worksheet
    Set wsContatos = Sheets("Cadastro")

    sAno = Format(Now, "yyyy")
    
    If sAno > 2011 Then
        
        MsgBox Format(Now, "yyyy")
    
    End If

End Sub

Veja que na rotina acima é verificado se o ano atual é maior que o especificado na Rotina (2011), então quando passarmos para 2012 a formatação será 2012, mas será necessário alterar 2011 para 2012 na rotina para quando chegar a 2013.

Quanto a Numeração reiniciar, na primeira rotina são contados os cadastros na coluna A e somado + 1 para o próximo numero, e como não sabemos qual será o numero do último cadastro não tem como defini-lo na rotina, o ideal seria que quando mudasse o ano, ou limpar os cadastros anteriores ou inciar uma nova Aba com o ano atual começando a numeração novamente.

Analise, e qualquer duvida retorne.

[]s

 
Postado : 26/10/2011 6:06 pm