Código VBA para geração de códigos numéricos sucessivos e crescentes
Então vamos lá...
O primeiro passo é criar um Módulo...
Vamos então abrir o Editor do VBA, quem não souber pode visitar os posts anteriores.
Vejam o módulo já criado... na imagem acima...
Pois bem na área branca que surge na tela com a criação do Módulo1 é onde iremos escrever os códigos que irão programar o nosso projeto.
O código a seguir trata-se de um código muito útil,,, pois é ele quem irá numerar todos os nossos registros não permitindo que o código seja duplicado e sempre gerando um com a soma do ultimo gerado...
Function CODIGO()
Dim BANCO As Database
Dim TABELA As Recordset
Set BANCO = OpenDatabase(ThisWorkbook.Path & "/" & ThisWorkbook.Name, False, False, "EXCEL 8.0")
Set TABELA = BANCO.OpenRecordset("AGENDA$")
If TABELA.EOF And TABELA.BOF Then
Agenda.numero.Text = 1
Else
TABELA.MoveLast
Agenda.numero.Text = Format(TABELA("NUMERO") + 1)
End If
End Function
Explicando cada linha do código
Function CODIGO() = Criando a função (sendo que o nome da mesma é "CODIGO"
Dim BANCO As Database = Dim (Declara uma variável) BANCO (é o nome da variável) As (será de qual tipo?) Database (difine o Tipo da variável como Banco de Dados)
Dim TABELA As Recordset = Dim (Declara uma variável) TABELA (é o nome da variável) As (será de qual tipo?) Recordset (difine o Tipo da variável como Tabela de Registtros)
Set BANCO = OpenDatabase(ThisWorkbook.Path & "/" & ThisWorkbook.Name, False, False, "EXCEL 8.0")
A linha acima define automaticamente o nome da pasta de trabalho que esta em uso, assim como qual pasta ela se encontra.
Set TABELA = BANCO.OpenRecordset("AGENDA$")
A linha acima define qual será a planilha (veja imagem abaixo) utilizada, no caso "AGENDA" que tem que ser escrito dentro das aspas e o cifrão antes da aspas que fecha.
Aqui vamos fazer uma condição "se"
If TABELA.EOF And TABELA.BOF Then
if = inicio do bloco "se"
TABELA.EOF And TABELA.BOF = tabela for vazia
Then = faça
Agenda.numero.Text = 1 Agenda = nome do formulário, numero = nome do objeto, Text = propriedade onde irá aparecer o código.
Else = se não for vazia a tabela
TABELA.MoveLast = mover-se para o ultima linha vazia
Agenda.numero.Text = Format(TABELA("NUMERO") + 1)
A linha acima diz o seguinte: vai colocar no formulário de nome "Agenda" dentro do objeto de nome "numero" na propriedade "Text" o valor que estiver no banco de dados gravado na ultima linha e vai acrescentar 1 a esse valor.
End If = fim do bloco is "se"
End Function = fim da function "função"
Colocando o código para funcionar
Pronto o código está feito e explicado, agora vamos chamar ele no formulário no evento "initialize" para que quando o mesmo for iniciado automaticamente ele já puxe o código correto.Para isso vamos dar 2 cliques sobre o formulário para abrira janela de codificação do mesmo...
feito isso o código é o seguinte
Private Sub UserForm_initialize()
Módulo1.CODIGO
End Sub
1ª linha cria uma rotina dentro do formulário no evento Initialize
2ª chama dentro do Módulo1 a função de nome CODIGO
3 ª finaliza a rotina...
Bom é isso aí, após rodarmos o programa como não temos nenhum registro ainda o código gerado deve ser 1, e irá aparecer dentro da caixa de texto Numero....
Dúvidas deixem comentários...
Edivan Cabral
Nenhum comentário:
Postar um comentário