Você está na página 1de 8

Cod

Nome
1 Luciano

Endereo

Cidade

Estado

Telefone

Rua Perto da ki

Pompeia

sp

14 - 1111-1111

1 passo e criar o banco de dados , crie na plan2


SELECIONE OS DADOS E DE NOME BASE
PLAN 2

MONTE O FORM.

Tpicos Bsicos
Cadastrar, Salvar e excluir itens
INSERIR UM MODULO
Criando variavel global com 7 elementos
Option Base 1
Global campos(7) As Object

Duplo click no FORM2 AGENDA - fazendo a instancia de cada campo

Private Sub UserForm_Initialize()


Dim nCod As Double
Set campos(1) = codigo: Set campos(2) = nome
Set campos(3) = endereco: Set campos(4) = cidade
Set campos(5) = estado: Set campos(6) = telefone
Set campos(7) = celular

nCod = Application.WorksheetFunction.Max(Range("base").Columns(1)) + 1
codigo = nCod
codigo.Locked = True
End Sub

Prximo passo BOTAO salvar

Private Sub salvar_Click()

For a = 1 To 7 ' variavel a representa o indice ja declarado na global


If campos(a) = "" Then
MsgBox "Preencha todos os campos", vbExclamation, "Ateno"
campos(a).SetFocus ' seleciona a variavel
Exit Sub
End If
Next

End Sub

Caso queira alterar ou incluir um novo registro Como VBA vai saber

Usaremos o campo CODIGO como critrio


O campo est travado

Editando o botao salvar


Private Sub salvar_Click()

Dim ln As Double

'Verifica se existem campos em branco


For a = 1 To 7 ' variavel a representa o indice ja declarado na global
If campos(a) = "" Then
MsgBox "Preencha todos os campos", vbExclamation, "Ateno"
campos(a).SetFocus ' seleciona a variavel
Exit Sub
End If
Next

If codigo.Locked = True Then


ln = Range("base").Rows.Count + 1
Else
'Fazer uma procura
For a = 2 To Range("base").Rows.Count
If codigo * 1 = Range("base").Cells(a, 1) Then
ln = a
End If
Next
End If

For a = 1 To 7
Plan1.Cells(ln, a) = campos(a)
If a = 1 Then Plan1.Cells(ln, a) = campos(a) * 1
Next

Range("base").CurrentRegion.Name = "base" ' troca nome


MsgBox "Cadastrado com sucesso!", vbInformation, "Informao"

End Sub
BOTAO NOVO
Finalidade quando gravar dados , o comando limpar o formulrio j posicionando o prximo
codigo

Private Sub novo_Click()


For a = 1 To 7
campos(a) = ""
Next
UserForm_Initialize

End Sub

Boto pesquisar

Private Sub pesquisar_Click()


If Range("base").Rows.Count < 2 Then Exit Sub ' se a base estiver somente uma linha no faa
nada
codigo.Locked = False ' destravar o codigo para poder editar
codigo.Style = fmStyleDropDownList ' so pode escolher iten da lista e no pode ser didigato

codigo.Clear
nome.Clear ' limpar os codigos e nomes

For a = 2 To Range("base").Rows.Count ' o numero 2 e porque comea na linha dois


codigo.AddItem Range("base").Cells(a, 1)
nome.AddItem Range("base").Cells(a, 2)
Next

End Sub

Private Sub UserForm_Initialize()


Dim nCod As Double
Set campos(1) = codigo: Set campos(2) = nome
Set campos(3) = endereco: Set campos(4) = cidade
Set campos(5) = estado: Set campos(6) = telefone
Set campos(7) = celular

nCod = Application.WorksheetFunction.Max(Range("base").Columns(1)) + 1
codigo.Style = fmStyleDropDownCombo
codigo = nCod
codigo.Locked = True
End Sub

Private Sub pesquisar_Click()


If Range("base").Rows.Count < 2 Then Exit Sub ' se a base estiver somente uma linha no faa
nada
codigo.Locked = False ' destravar o codigo para poder editar
codigo.Style = fmStyleDropDownList ' so pode escolher iten da lista e no pode ser didigato
codigo.Clear
nome.Clear ' limpar os codigos e nomes
For a = 2 To Range("base").Rows.Count ' o numero 2 e porque comea na linha dois
codigo.AddItem Range("base").Cells(a, 1)
nome.AddItem Range("base").Cells(a, 2)
Next
codigo.DropDown ' quando precionar o botao pesquisar a lista de codigo aparecera
excluir.Enabled = True ' desabilita o excluir
codigo.ListIndex = 0
End Sub

Preenchendo os formulrio com dados selecionados


Private Sub codigo_Change()
If codigo = "" Then Exit Sub
Dim t As String declarar uma varivel
t = codigo
For a = 2 To Range("base").Rows.Count
If t * 1 = Range("base").Cells(a, 1) Then
For b = 2 To 7
campos(b) = Range("base").Cells(a, b)
Next
End If
Next
End Sub

Pesquisa feita por Nome

Editar MODULO
varivel global
Option Base 1
Global campos(7) As Object
Global bloqueado As Boolean

Private Sub codigo_Change()


If codigo = "" Or bloqueado = True Then Exit Sub
Dim t As String
t = codigo
bloqueado = True
For a = 2 To Range("base").Rows.Count
If t * 1 = Range("base").Cells(a, 1) Then
For b = 2 To 7
campos(b) = Range("base").Cells(a, b)
Next

bloqueado = False: Exit Sub


End If
Next
bloqueado = False
End Sub

Private Sub nome_Change()


If bloqueado = True Or nome = "" Then Exit Sub
Dim t As String
t = nome
bloqueado = True
For a = 2 To Range("base").Rows.Count
If t = Range("base").Cells(a, 2) Then
For b = 1 To 7
campos(b) = Range("base").Cells(a, b)
Next
bloqueado = False: Exit Sub
End If
Next
bloqueado = False
End Sub

Botao excluir

Private Sub excluir_Click()

For a = 1 To Range("base").Rows.Count
If codigo * 1 = Range("base").Cells(a, 1) Then
Range("base").Rows(a).Delete xlUp:
MsgBox "O cadastro foi excludo", vbInformation, "Informao"
CommandButton4_Click
Exit Sub
End If
Next
End Sub

Você também pode gostar