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.
  • Avatar do usuário
#18363
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
#18377
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,
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