Você está na página 1de 13

Projeto VBA

Cadastro de instrumentos musicais

Aluno: Trcio Luna

Nosso programa em VBA, consiste em um sistema para cadastro de


produtos de uma loja de instrumentos musicais. Nele ser possvel fazer a
incluso de novos produtos, definido seu cdigo, o nome, que tipo de
instrumento , a marca do fabricante, seu preo, a quantidade, e por fim
escrever alguma observao sobre o produto.
Tambm possvel editar os excluir algum produto depois de
cadastrado. Assim como imprimir, ou fazer uma busca entre muitos
registros. Foi criada tambm uma rea para backup, onde o usurio informa
onde deve ser feita a cpia e o nome do arquivo. um sistema simples que
serve para auxiliar na administrao de uma loja de instrumentos musicais.
A seguir mostraremos um passo a passo da utilizao do programa:
Tela de login do sistema

Nessa tela o usurio ir entrar com seu nome e senha para ter acesso ao
sistema, lembrando que o nome e senha j devero estar cadastrados. Caso
o usurio no esteja cadastrado ser mostrada uma tela de erro com a
seguinte mensagem:

A senha tambm pode no conferir com a cadastrada, ento ser


mostrada a seguinte tela:

Se ocorrer algum desses casos, procure digitar um usurio e senha


existente. Quando o login e senha estiverem corretos ser apresentada uma
tela de boas vindas com o nome do usurio:

Aps ser validado no sistema ser exibida a tela de menu, onde ser
possvel acessar a rea de cadastro de produtos ou sair do sistema:

Ao clicar em cadastro de produtos, a tela de cadastro ser mostrada,


aqui onde poderemos fazer a incluso, alterao ou excluso de produtos.
Tambm poderemos fazer uma consulta a um produto existente ou
somenter imprimir.

As opes da tela de cadastro so muitas, vamos analis-las uma a uma.


Na parte superior da tela temos a barra de navegao, nela podemos
navegar pelos registros, indo ao prximo ou anterior, e tambm pulando
para o primeiro ou ltimo registro.

Na rea inferior da tela, temos os botes:


Usado para incluir novos registros

Usado para alterar registros j existentes

Usado para excluir registros existentes

Usado para cancelar uma operao de incluso ou alterao

Usado para buscar um registro especfico dentro de toda base de dados

Usado para gravar a operao de incluso ou alterao de registros

Usado para imprimir o registro atual

Na tela de cadastro, na parte inferior direita, exibido o status da


operao, ou seja, qual operao voc est fazendo no momento:

E o ltimo boto o sair, usado para sair da tela de cadastro

Ao clicarmos no boto de consulta, ser apresentada a janela de


consulta, onde deveremos informar por qual campo iremos fazer a busca, e
depois digitar o que estamos procurando:

Na parte superior da tela temos duas abas, a de CADASTRO, que


onde estamos agora, e a de BACKUP, que a que iremos clicar:

Aps clicarmos na aba BACKUP, ser exibida a tela de backup, onde


devermos informar o caminho e o nome do arquivo do backup, exemplo
c:\backup\backup2005.xls. Aps colocar o caminho s clicar no boto
backup que a cpia do seu arquivo ser feita no caminho indicado:

Cdigo VBA
Frm_Login
Private Sub UserForm_Activate()
Application.Visible = False
TBx_Senha.Enabled = TBx_Usuario.Text <> ""
CBt_Ok.Enabled = (TBx_Usuario.Text <> "" And TBx_Senha.Text <> "")
End Sub
Private Sub CBt_OK_Click()
Dim Linha As Integer
On Error GoTo NaoEncontrado
Linha = Sheets("Login").Range("A:A").Find(TBx_Usuario).Row
If TBx_Senha = Sheets("Login").Cells(Linha, 2) Then
MsgBox "Bem Vindo " & TBx_Usuario
Unload Me
Frm_Menu.Show
Else
MsgBox "A senha no confere"
TBx_Senha = ""
TBx_Senha.SetFocus
End If
Exit Sub
NaoEncontrado:
MsgBox "Usurio no cadastrado."
TBx_Usuario = ""
TBx_Usuario.SetFocus
End Sub
Private Sub TBx_Usuario_Change()
TBx_Senha.Enabled = TBx_Usuario.Text <> ""
CBt_Ok.Enabled = (TBx_Usuario.Text <> "" And TBx_Senha.Text <> "")
End Sub
Private Sub TBx_Senha_Change()
CBt_Ok.Enabled = (TBx_Usuario.Text <> "" And TBx_Senha.Text <> "")
End Sub

Frm_Menu
Private Sub CBt_CadProduto_Click()
Frm_Cadastro.Show
End Sub
Private Sub CBt_Finalizar_Click()
Unload Me
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If MsgBox("Confirma a finalizao do sistema?", vbYesNo + vbQuestion,
"Confirmao") = vbYes Then
ActiveWorkbook.Save
Application.Quit
Application.Visible = True
Else
Cancel = 1
End If
End Sub

Frm_Cadastro
Option Explicit
'RA = REGISTRO ATUAL
'NR = NUMERO TOTAL DE REGISTROS
'OP = OPERAO
Dim RA As Integer, NR As Integer, OP As String
Private Sub CBt_backup_Click()
ActiveWorkbook.SaveCopyAs (TBx_caminho.Text)
TBx_caminho = ""
TBx_caminho.SetFocus
End Sub
Private Sub UserForm_Activate()
LControle
Atribuir
CBx_Tipo.AddItem "Corda"
CBx_Tipo.AddItem "Sopro"
CBx_Tipo.AddItem "Percusso"
End Sub

Private Sub LControle()


RA = Range("RA")
NR = Range("NR")
OP = Range("OP")
End Sub
Private Sub GControle()
Range("RA") = RA
Range("OP") = OP
End Sub
Private Sub CBt_Primeiro_Click()
RA = 1
GControle
Atribuir
End Sub
Private Sub CBt_Anterior_Click()
RA = RA - 1
GControle
Atribuir
End Sub
Private Sub CBt_Proximo_Click()
RA = RA + 1
GControle
Atribuir
End Sub
Private Sub CBt_Ultimo_Click()
RA = NR
GControle
Atribuir
End Sub
Private Sub Atribuir()
Dim Linha As Integer
If NR = 0 Then
Linha = RA + 2
Else
Linha = RA + 1
End If
TBx_Codigo = Sheets("Dados").Cells(Linha, 1)
TBx_Instrumento = Sheets("Dados").Cells(Linha, 2)

CBx_Tipo = Sheets("Dados").Cells(Linha, 3)
TBx_Marca = Sheets("Dados").Cells(Linha, 4)
TBx_Preco = Sheets("Dados").Cells(Linha, 5)
TBx_Quantidade = Sheets("Dados").Cells(Linha, 6)
TBx_Observacoes = Sheets("Dados").Cells(Linha, 7)
Lbl_Operacao = OP & "..."
Lbl_Apontador = RA & " / " & NR
Operacao
Navegacao
End Sub
Private Sub Navegacao()
CBt_Primeiro.Enabled = (RA > 1 And OP = "Navegando")
CBt_Anterior.Enabled = (RA > 1 And OP = "Navegando")
CBt_Proximo.Enabled = (RA < NR And OP = "Navegando")
CBt_Ultimo.Enabled = (RA <> NR And OP = "Navegando")
End Sub
Private Sub Operacao()
CBt_Incluir.Enabled = (OP = "Navegando")
CBt_Alterar.Enabled = (OP = "Navegando" And RA > 0)
CBt_Excluir.Enabled = (OP = "Navegando" And RA > 0)
CBt_Cancelar.Enabled = (OP = "Incluindo" Or OP = "Alterando")
CBt_Consultar.Enabled = (OP = "Navegando" And NR > 1)
CBt_Gravar.Enabled = (OP = "Incluindo" Or OP = "Alterando")
CBt_Sair.Enabled = (OP = "Navegando")
CBt_Imprimir.Enabled = (OP = "Navegando")
End Sub
Private Sub CBt_Incluir_Click()
OP = "Incluindo"
GControle
RA = NR + 1
Atribuir
Fra_Dados.Enabled = True
TBx_Codigo.SetFocus
End Sub
Private Sub CBt_Alterar_Click()
OP = "Alterando"
GControle
Atribuir
Fra_Dados.Enabled = True
TBx_Codigo.SetFocus
End Sub

Private Sub CBt_Excluir_Click()


If MsgBox("Confirma a excluso?", vbYesNo + vbQuestion, "Confirmao") =
vbYes Then
Sheets("Dados").Rows(RA + 1).Delete
If RA = NR Then
RA = RA - 1
GControle
End If
CBt_Cancelar_Click
End If
End Sub
Private Sub CBt_Cancelar_Click()
LControle
OP = "Navegando"
GControle
Atribuir
Fra_Dados.Enabled = False
End Sub
Private Sub CBt_Consultar_Click()
Frm_Consulta.Show
LControle
Atribuir
End Sub
Private Sub CBt_Gravar_Click()
If MsgBox("Confirma a operao?", vbYesNo + vbQuestion, "Confirmao") =
vbYes Then
Sheets("Dados").Cells(RA + 1, 1) = TBx_Codigo
Sheets("Dados").Cells(RA + 1, 2) = TBx_Instrumento
Sheets("Dados").Cells(RA + 1, 3) = CBx_Tipo
Sheets("Dados").Cells(RA + 1, 4) = TBx_Marca
Sheets("Dados").Cells(RA + 1, 5) = TBx_Preco
Sheets("Dados").Cells(RA + 1, 6) = TBx_Quantidade
Sheets("Dados").Cells(RA + 1, 7) = TBx_Observacoes
GControle
CBt_Cancelar_Click
End If
End Sub
Private Sub CBt_Sair_Click()
Unload Me
End Sub

Private Sub CBt_Imprimir_Click()


Sheets("Dados").PrintOut
End Sub
Frm_Consulta
Option Explicit
Private Sub CBt_Fechar_Click()
Unload Me
End Sub
Private Sub UserForm_Activate()
Dim N As Integer
For N = 1 To 7
CBx_Campo.AddItem Sheets("Dados").Cells(1, N)
Next N
End Sub
Private Sub CBx_Campo_Change()
TBx_Dado.SetFocus
End Sub
Private Sub CBt_Buscar_Click()
If TBx_Dado.Text <> "" Then
On Error GoTo NaoEncontrado
Range("RA") = Sheets("Dados").Columns(CBx_Campo.ListIndex +
1).Find(TBx_Dado.Text).Row - 1
Unload Me
Exit Sub
NaoEncontrado:
MsgBox "Dado " & TBx_Dado.Text & " No encontrado.", vbOKOnly +
vbCritical, "Resultado da Busca"
End If
End Sub