Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por everton83
#8334
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
Editado pela última vez por Kledison em 05 Mar 2016 às 21:42, em um total de 1 vez. Razão: Regra nº 2A: Os membros devem postar de maneira que seja consistente com a "escrita normal". Os membros não devem usar quantidades excessivas de emoticons, não devem usar CAIXA ALTA EM EXCESSO, ou usar quantidades excessivas de pontuação, seja e
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord