Página 1 de 1

Editar planilha através de formulário código VBA

Enviado: 22 Dez 2016 às 14:11
por Nicodemos261204
Bom tarde!
Estou criando um fomulário de Cadastro de Clientes (agricultor), e meu projeto VBA está quase pronto. Porém meu botão editar está me dando dor de cabeça, não consigo torna-ló executável. Não seu qual o quais rotinas ou comando devo usar?
Vou mandar meu código. Desde Já agradeço
Nicodemos Filho

Private Sub botao_editar_Click()
Worksheets("GarantiaSafra").Select
'verificar se o usuario selecionou algum nome
If caixa_localizar.ListIndex = -1 Then
MsgBox "Selecione o nome para editar!", vbExclamation
Exit Sub
End If
linha = caixa_localizar.ListIndex + 2
resposta = MsgBox("Deseja editar cadastro?", vbYesNo)

If resposta = vbYes Then
MEU PROBLEMA ESTÁ JUSTAMENTE AQUI
Exit Sub

End If

MsgBox "Cadastro alterdo com sucesso.", vbInformation

End Sub

Private Sub botao_excluir_Click()
'verificar se usuário selecionou nome
If caixa_localizar.ListIndex = -1 Then
MsgBox "Selecione um nome antes de excluir!", vbExclamation
Exit Sub

End If
'variável que a linha o nome está
linha = caixa_localizar.ListIndex + 2
'Worksheets("GarantiaSafra").Rows(linha).Delete
resposta = MsgBox("Deseja realmente excluir esse cadastro?", vbYesNo)
If resposta = vbYes Then
Worksheets("GarantiaSafra").Rows(linha).Delete
'comando para excluir sem deletar a linha
'Worksheets("GarantiaSafra").Cells(linha, 15) = "Excluido"
MsgBox "Cadastro excluido com sucesso.", vbInformation
Exit Sub

End If

'codigo para limpar as caixas
caixa_nome = ""
caixa_apelido = ""
caixa_bairro = ""
caixa_cep = ""
caixa_cidade = ""
caixa_contatos = ""
caixa_cpf = ""
caixa_datadenasc = ""
caixa_endereço = ""
caixa_estado = ""
caixa_localidade = ""
caixa_nº = ""
caixa_rg = ""
caixa_programas = ""
caixa_localizar = ""

'comando para colocar o foco
caixa_nome.SetFocus

'Comamdo pra salvar automatico
ActiveWorkbook.Save

End Sub

Private Sub botao_fechar_Click()
Unload CADASTROAGRI
LOGIN.Show
End Sub

Private Sub botao_imprimir_Click()
Worksheets("GarantiaSafra").Select
Unload CADASTROAGRI
Application.Visible = True
ActiveWindow.SelectedSheets.PrintPreview
Application.Visible = False
CADASTROAGRI.Show

End Sub

Private Sub Botao_novo_Click()

caixa_nome = ""
caixa_apelido = ""
caixa_bairro = ""
caixa_cep = ""
caixa_cidade = ""
caixa_contatos = ""
caixa_cpf = ""
caixa_datadenasc = ""
caixa_endereço = ""
caixa_estado = ""
caixa_localidade = ""
caixa_nº = ""
caixa_rg = ""
caixa_localizar = ""
caixa_programas = ""

'codigo para enviar o cursor para caixa nome
caixa_nome.SetFocus

ActiveWorkbook.Save

End Sub

Private Sub botao_salvar_Click()
'Comando pra validação de campos
If ValidacaoCampos = False Then
MsgBox "Atenção! Campos sem preencimentos.", vbCritical
Exit Sub
End If

totalregistro = Worksheets("GarantiaSafra").UsedRange.Rows.Count + 1
Worksheets("GarantiaSafra").Select

'Aqui começa a gravação dos dados
Cells(totalregistro, 1) = caixa_nome
Cells(totalregistro, 2) = caixa_apelido
Cells(totalregistro, 3) = caixa_cpf
Cells(totalregistro, 4) = caixa_rg
Cells(totalregistro, 5) = caixa_datadenasc
Cells(totalregistro, 6) = caixa_endereço
Cells(totalregistro, 7) = caixa_nº
Cells(totalregistro, 8) = caixa_cep
Cells(totalregistro, 9) = caixa_cidade
Cells(totalregistro, 10) = caixa_estado
Cells(totalregistro, 11) = caixa_bairro
Cells(totalregistro, 12) = caixa_contatos
Cells(totalregistro, 13) = caixa_localidade
Cells(totalregistro, 14) = caixa_programas

MsgBox "Cadastrado efetuado com sucesso.", vbInformation

'codigo para limpar as caixas
caixa_nome = ""
caixa_apelido = ""
caixa_bairro = ""
caixa_cep = ""
caixa_cidade = ""
caixa_contatos = ""
caixa_cpf = ""
caixa_datadenasc = ""
caixa_endereço = ""
caixa_estado = ""
caixa_localidade = ""
caixa_nº = ""
caixa_rg = ""
caixa_programas = ""

'codigo para enviar o cursor para caixa nome
caixa_nome.SetFocus

'comando para classificar em ordem alfabética
ORDENAR

'salvamento automatico
ActiveWorkbook.Save

'codigo para preencher a caixa localizar
totaldelinhas = Worksheets("GarantiaSafra").UsedRange.Rows.Count
caixa_localizar.RowSource = "GarantiaSafra!a2:a" & totaldelinhas


End Sub

Private Sub caixa_apelido_Change()
caixa_apelido = UCase(caixa_apelido)
End Sub

Private Sub caixa_bairro_Change()
caixa_bairro = UCase(caixa_bairro)
End Sub

'comando para organizar o cep
Private Sub caixa_cep_Change()
If Len(Me.caixa_cep.Text) = 2 Then
Me.caixa_cep.Text = Me.caixa_cep.Text & "."
Me.caixa_cep.SelStart = 4
ElseIf Len(Me.caixa_cep.Text) = 6 Then
Me.caixa_cep.Text = Me.caixa_cep.Text & "-"
Me.caixa_cep.SelStart = 7
ElseIf Len(Me.caixa_cep.Text) = 10 Then
Me.caixa_cidade.SetFocus
End If

End Sub

Private Sub caixa_cidade_Change()
caixa_cidade = UCase(caixa_cidade)
End Sub

'comando para organizar o cpf
Private Sub caixa_cpf_Change()
If Len(Me.caixa_cpf.Text) = 3 Then
Me.caixa_cpf.Text = Me.caixa_cpf.Text & "."
Me.caixa_cpf.SelStart = 6
ElseIf Len(Me.caixa_cpf.Text) = 7 Then
Me.caixa_cpf.Text = Me.caixa_cpf.Text & "."
Me.caixa_cpf.SelStart = 9
ElseIf Len(Me.caixa_cpf.Text) = 11 Then
Me.caixa_cpf.Text = Me.caixa_cpf.Text & "-"
ElseIf Len(Me.caixa_cpf.Text) = 14 Then
Me.caixa_rg.SetFocus
End If

End Sub
'comando para organizar a data
Private Sub caixa_datadenasc_Change()
If Len(Me.caixa_datadenasc.Text) = 2 Then
Me.caixa_datadenasc.Text = Me.caixa_datadenasc.Text & "/"
Me.caixa_datadenasc.SelStart = 4
ElseIf Len(Me.caixa_datadenasc.Text) = 5 Then
Me.caixa_datadenasc.Text = Me.caixa_datadenasc.Text & "/"
Me.caixa_datadenasc.SelStart = 7
ElseIf Len(Me.caixa_datadenasc.Text) = 10 Then
Me.caixa_endereço.SetFocus
End If

End Sub

Private Sub caixa_endereço_Change()
caixa_endereço = UCase(caixa_endereço)
End Sub

Private Sub caixa_localidade_Change()
caixa_localidade = UCase(caixa_localidade)
End Sub

Private Sub caixa_localizar_Click()
Worksheets("GarantiaSafra").Select
totalregistro = Worksheets("GarantiaSafra").UsedRange.Rows.Count
For i = 0 To totalregistro

If caixa_localizar.ListIndex = i Then

'preencher as caixas
caixa_nome = Cells(i + 2, 1)
caixa_apelido = Cells(i + 2, 2)
caixa_cpf = Cells(i + 2, 3)
caixa_rg = Cells(i + 2, 4)
caixa_datadenasc = Cells(i + 2, 5)
caixa_endereço = Cells(i + 2, 6)
caixa_nº = Cells(i + 2, 7)
caixa_cep = Cells(i + 2, 8)
caixa_cidade = Cells(i + 2, 9)
caixa_estado = Cells(i + 2, 10)
caixa_bairro = Cells(i + 2, 11)
caixa_contatos = Cells(i + 2, 12)
caixa_localidade = Cells(i + 2, 13)
caixa_programas = Cells(i + 2, 14)

Exit Sub

End If
Next

End Sub
'comando para o nº
Private Sub caixa_nº_Change()
If Len(Me.caixa_nº.Text) = 4 Then
Me.caixa_cep.SetFocus
End If
End Sub

Private Sub caixa_nome_Change()
caixa_nome = UCase(caixa_nome)
End Sub

Private Sub caixa_programas_Change()
caixa_programas = UCase(caixa_programas)
End Sub


Private Sub Image1_Click()

End Sub

Private Sub Label10_Click()

End Sub

'codigo para preencher a caixa estado
Private Sub UserForm_Initialize()
caixa_estado.AddItem "MG"
caixa_estado.AddItem "CE"
caixa_estado.AddItem "PE"
caixa_estado.AddItem "PB"
caixa_estado.AddItem "RN"
caixa_estado.AddItem "BA"
caixa_estado.AddItem "MA"
caixa_estado.AddItem "AL"
caixa_estado.AddItem "SE"
caixa_estado.AddItem "PI"
caixa_estado.AddItem "RJ"
caixa_estado.AddItem "SP"
caixa_estado.AddItem "GO"
caixa_estado.AddItem "MT"
caixa_estado.AddItem "MS"
caixa_estado.AddItem "RS"
caixa_estado.AddItem "SC"
caixa_estado.AddItem "PR"
caixa_estado.AddItem "AM"
caixa_estado.AddItem "RR"
caixa_estado.AddItem "RO"
caixa_estado.AddItem "AC"
caixa_estado.AddItem "DF"
caixa_estado.AddItem "ES"
caixa_estado.AddItem "TO"
caixa_estado.AddItem "PA"

'codigo para preencher a caixa localizar
totaldelinhas = Worksheets("GarantiaSafra").UsedRange.Rows.Count
caixa_localizar.RowSource = "GarantiaSafra!a2:a" & totaldelinhas


End Sub
'Código para valicação de campos
Function ValidacaoCampos() As Boolean

Dim valores(14) As Variant
Dim linha As Integer

ValidacaoCampos = True

With Me
valores(0) = .caixa_nome.Value
valores(1) = .caixa_apelido.Value
valores(2) = .caixa_cpf.Value
valores(3) = .caixa_rg.Value
valores(4) = .caixa_datadenasc.Value
valores(5) = .caixa_endereço.Value
valores(6) = .caixa_nº.Value
valores(7) = .caixa_cep.Value
valores(8) = .caixa_cidade.Value
valores(9) = .caixa_estado.Value
valores(10) = .caixa_bairro.Value
valores(11) = .caixa_contatos.Value
valores(12) = .caixa_localidade.Value
valores(13) = .caixa_programas.Value
End With

For linha = 0 To UBound(valores) - 1

If valores(linha) = "" Then
ValidacaoCampos = False
Exit For
End If
Next

End Function

Re: Editar planilha através de formulário código VBA

Enviado: 23 Dez 2016 às 07:22
por luizpaps
tente assim:
Código: Selecionar todos
Private Sub botao_editar_Click()
Worksheets("GarantiaSafra").Select
'verificar se o usuario selecionou algum nome
If caixa_localizar.ListIndex = -1 Then
MsgBox "Selecione o nome para editar!", vbExclamation
Exit Sub
End If
linha = caixa_localizar.ListIndex + 2
resposta = MsgBox("Deseja editar cadastro?", vbYesNo)

If resposta = vbYes Then

'Aqui começa a gravação dos dados editados
Cells(linha, 1) = caixa_nome
Cells(linha, 2) = caixa_apelido
Cells(linha, 3) = caixa_cpf
Cells(linha, 4) = caixa_rg
Cells(linha, 5) = caixa_datadenasc
Cells(linha, 6) = caixa_endereço
Cells(linha, 7) = caixa_nº
Cells(linha, 8) = caixa_cep
Cells(linha, 9) = caixa_cidade
Cells(linha, 10) = caixa_estado
Cells(linha, 11) = caixa_bairro
Cells(linha, 12) = caixa_contatos
Cells(linha, 13) = caixa_localidade
Cells(linha, 14) = caixa_programas
Exit Sub

End If
tem um porém, tem que ver quais campos será permitido editar,

Editar planilha através de formulário código VBA

Enviado: 23 Dez 2016 às 18:13
por Nicodemos261204
Vou testar pra ver se dar certo

Editar planilha através de formulário código VBA

Enviado: 23 Dez 2016 às 18:25
por Nicodemos261204
Deu certo, quando tornei inativo a linha caixa nome, editou os outros campos. Porém quando quiser aditar todos os campos como faço?

Re: Editar planilha através de formulário código VBA

Enviado: 23 Dez 2016 às 20:21
por Nicodemos261204
Deu certo, quando tornei inativo a linha caixa nome, editou os outros campos. Porém quando quiser aditar todos os campos como faço?