Página 1 de 1

Alterar Formulário de Cadastro

Enviado: 04 Mar 2016 às 16:04
por everton83
Oi, pessoal.

Criei um formulário para cadastro de professores.
Consigo Incluir, Pesquisar, Excluir...

O que não estou conseguindo é Pesquisar um Professor, mudar algum dado no formulário e, quando clicar em Alterar, gravar apenas o dado alterado, sem gerar um novo cadastro.

Poderiam me ajudar?

Desde já, agradeço a atenção!

Imagem do Formulário de Cadastro

Imagem

Segue o Código:

Private Sub BOTAO_ALTERAR_F_Click()

If nome.Text = Me.CAIXA_NOME_F Then
GoTo Linha1
Exit Sub
End If

With Worksheets("FUNCIONARIOS").Range("A:A")

Set c = .Find(nome.Value, LookIn:=xlValues, LookAt:=xlPart)

If Not c Is Nothing Then

c.Activate

ActiveCell.Value = CAIXA_NOME_F
ActiveCell.Offset(0, 1).Value = CAIXA_SETOR
ActiveCell.Offset(0, 2).Value = CAIXA_RG_F
ActiveCell.Offset(0, 3).Value = CAIXA_CPF_F
ActiveCell.Offset(0, 4).Value = CAIXA_END_F
ActiveCell.Offset(0, 5).Value = CAIXA_NUM_F
ActiveCell.Offset(0, 6).Value = CAIXA_BAIRRO_F
ActiveCell.Offset(0, 7).Value = CAIXA_CIDADE_F
ActiveCell.Offset(0, 8).Value = CAIXA_UF_F
ActiveCell.Offset(0, 9).Value = CAIXA_TEL1_F
ActiveCell.Offset(0, 10).Value = CAIXA_TEL2_F

End If
'LIMPAR


End With
Linha1:
MsgBox "ALTERAÇÃO EFETUADA COM SUCESSO.", vbInformation, "CADAST"
End Sub


Private Sub BOTAO_EXCLUIR_F_Click()
' VERIFICAR SE ALGUM NOME FOI SELECIONADO

If CAIXA_PESQUISAR_F.ListIndex = -1 Then
MsgBox "SELECIONE UM NOME PARA EXCLUIR.", , "CADASTRO"
Exit Sub
End If

' VARIÁVEL QUE ARMAZENA A LINHA EM QUE O NOME A SER EXCLUÍDO SE ENCONTRA
linha = CAIXA_PESQUISAR_F.ListIndex + 2

' COMANDO APAGAR

Worksheets("FUNCIONARIOS").Rows(linha).Delete

MsgBox "CADASTRO EXCLUÍDO COM SUCESSO.", , "CADASTRO"

' COMANDO PARA SALVAR AS INFORMAÇÕES DA PLANILHA AUTOMATICAMENTE
ActiveWorkbook.Save

End Sub

' BOTÃO FECHAR

Private Sub BOTAO_FECHAR_F_Click()
Resposta = MsgBox("DESEJA SAIR?", vbYesNo, "CADASTRO")

If Resposta = vbYes Then

Unload CADASTRO4

' COMANDO PARA FECHAR O PROGRAMA E O EXCEL

Application.Quit

End If

End Sub

' COMANDO IMPRIMIR

Private Sub BOTAO_IMPRIMIR_F_Click()

Worksheets("FUNCIONARIOS").Select
Unload CADASTRO4
Application.Visible = True
ActiveWindow.SelectedSheets.PrintPreview
Application.Visible = False
CADASTRO4.Show

End Sub

' BOTÃO INCLUIR

Private Sub BOTAO_INCLUIR_F_Click()
totalregistro = Worksheets("FUNCIONARIOS").UsedRange.Rows.Count + 1

Worksheets("FUNCIONARIOS").Select
Cells(totalregistro, 1) = CAIXA_NOME_F
Cells(totalregistro, 2) = CAIXA_SETOR
Cells(totalregistro, 3) = CAIXA_RG_F
Cells(totalregistro, 4) = CAIXA_CPF_F
Cells(totalregistro, 5) = CAIXA_END_F
Cells(totalregistro, 6) = CAIXA_NUM_F
Cells(totalregistro, 7) = CAIXA_BAIRRO_F
Cells(totalregistro, 8) = CAIXA_CIDADE_F
Cells(totalregistro, 9) = CAIXA_UF_F
Cells(totalregistro, 10) = CAIXA_TEL1_F
Cells(totalregistro, 11) = CAIXA_TEL2_F

MsgBox "DADOS GRAVADOS COM SUCESSO."

CAIXA_NOME_F = ""
CAIXA_SETOR = ""
CAIXA_RG_F = ""
CAIXA_CPF_F = ""
CAIXA_END_F = ""
CAIXA_NUM_F = ""
CAIXA_BAIRRO_F = ""
CAIXA_CIDADE_F = ""
CAIXA_UF_F = ""
CAIXA_TEL1_F = ""
CAIXA_TEL2_F = ""

CAIXA_NOME_F.SetFocus


' ATUALIZA A CAIXA LOCALIZAR

totaldelinhas = Worksheets("FUNCIONARIOS").UsedRange.Rows.Count
CAIXA_PESQUISAR_F.RowSource = "FUNCIONARIOS!A2:A" & totaldelinhas

' COMANDO PARA ORDENAR OS NOMES ALFABETICAMENTE
ORDENAR4

' COMANDO PARA SALVAR AS INFORMAÇÕES DA PLANILHA AUTOMATICAMENTE
ActiveWorkbook.Save

End Sub


Private Sub BOTAO_LIMPAR_F_Click()

CAIXA_PESQUISAR_F = ""
CAIXA_NOME_F = ""
CAIXA_SETOR = ""
CAIXA_RG_F = ""
CAIXA_CPF_F = ""
CAIXA_END_F = ""
CAIXA_NUM_F = ""
CAIXA_BAIRRO_F = ""
CAIXA_CIDADE_F = ""
CAIXA_UF_F = ""
CAIXA_TEL1_F = ""
CAIXA_TEL2_F = ""

CAIXA_NOME_F.SetFocus

End Sub


'BOTÃO VOLTAR

Private Sub BOTAO_VOLTAR_F_Click()
CAIXA_PESQUISAR_F = ""
CAIXA_NOME_F = ""
CAIXA_SETOR = ""
CAIXA_RG_F = ""
CAIXA_CPF_F = ""
CAIXA_END_F = ""
CAIXA_NUM_F = ""
CAIXA_BAIRRO_F = ""
CAIXA_CIDADE_F = ""
CAIXA_UF_F = ""
CAIXA_TEL1_F = ""
CAIXA_TEL2_F = ""

CAIXA_NOME_F.SetFocus

CADASTRO4.Hide
CADASTRO1.Show
End Sub

Private Sub CAIXA_NOME_F_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

'CAIXA PESQUISAR

Private Sub CAIXA_PESQUISAR_F_Click()
totalregistro = Worksheets("FUNCIONARIOS").UsedRange.Rows.Count

Worksheets("FUNCIONARIOS").Select

For i = 0 To totalregistro

If CAIXA_PESQUISAR_F.ListIndex = i Then

' PREENCHER AS CAIXAS
CAIXA_NOME_F = Cells(i + 2, 1)
CAIXA_SETOR = Cells(i + 2, 2)
CAIXA_RG_F = Cells(i + 2, 3)
CAIXA_CPF_F = Cells(i + 2, 4)
CAIXA_END_F = Cells(i + 2, 5)
CAIXA_NUM_F = Cells(i + 2, 6)
CAIXA_BAIRRO_F = Cells(i + 2, 7)
CAIXA_CIDADE_F = Cells(i + 2, 8)
CAIXA_UF_F = Cells(i + 2, 9)
CAIXA_TEL1_F = Cells(i + 2, 10)
CAIXA_TEL2_F = Cells(i + 2, 11)

Exit Sub

End If

Next

End Sub

' UCASE NAS CAIXAS

Private Sub CAIXA_PESQUISAR_F_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub CAIXA_SETOR_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub CAIXA_RG_F_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub CAIXA_CPF_F_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub CAIXA_END_F_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub CAIXA_BAIRRO_F_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub CAIXA_CIDADE_F_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub CAIXA_UF_F_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub CAIXA_TEL1_F_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Private Sub CAIXA_TEL2_F_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

' PREENCHER A CAIXA LOCALIZAR

Private Sub UserForm_Initialize()
totaldelinhas = Worksheets("FUNCIONARIOS").UsedRange.Rows.Count
CAIXA_PESQUISAR_F.RowSource = "FUNCIONARIOS!A2:A" & totaldelinhas
End Sub