Notifications
Clear all

como criar alterar dados da planilha através do formulário?

5 Posts
3 Usuários
0 Reactions
1,171 Visualizações
(@silver)
Posts: 15
Active Member
Topic starter
 

estou criando um cadastro de clientes mais estou tendo alguns problemas !! É o seguinte eu criei o cadastro tudo certo o botão salvar esta certo !! mais o botão alterar eu não consegui !! gostaria de criar o botão alterar dados !!! e o outro problema é que quando eu excluo um cliente da planilha !! exemplo código 1 cliente 1 !! o código 2 sobe uma linha ! ai quando crio um novo cadastro ó código de repete queria saber como fazer com que essa linha de baixo permaneça onde ela foi cadastrada de origem na linha 2 !!! segue minas rotinas ! agradeço a ajuda !!!

Private Sub Bexcluircclientes_Click()

Range("A2").Select

While ActiveCell <> ""

If TextBox_Códigocclientes.Text = ActiveCell Then

mensagem = MsgBox("Dados encontrados deseja excluir?", 3, "excluir")

If mensagem = vbYes Then


While ActiveCell = TextBox_Códigocclientes.Text
ActiveCell.EntireRow.Delete

Wend

End If

End If

ActiveCell.Offset(1, 0).Activate

Wend

 form_Cclientes.TextBox_Códigocclientes.Text = ""
 form_Cclientes.TextBox_Nomerazãosocialcclientes.Text = ""
 form_Cclientes.Datadocadastro = ""
 form_Cclientes.ComboBox_Tipocclientes.Text = ""
 form_Cclientes.TextBox_Nomefantasiacclientes.Text = ""
 form_Cclientes.TextBox_RGccientes.Text = ""
 form_Cclientes.TextBoxCPFcclientes.Text = ""
 form_Cclientes.TextBox_CNPJcclientes.Text = ""
 form_Cclientes.TextBox_Inscestadualcclientes.Text = ""
 form_Cclientes.TextBox_Inscmunicipalcclientes.Text = ""
 form_Cclientes.TextBox_Endereçocclientes.Text = ""
 form_Cclientes.TextBox_Complementocclientes.Text = ""
 form_Cclientes.TextBox_Númerocclientes.Text = ""
 form_Cclientes.TextBox_Bairrocclientes.Text = ""
 form_Cclientes.TextBox_Cidadecclientes.Text = ""
 form_Cclientes.ComboBox_Estadocclientes = ""
 form_Cclientes.TextBox_CEPcclientes.Text = ""
 form_Cclientes.TextBox_Paíscclientes.Text = ""
 form_Cclientes.TextBox_Celularcclientes.Text = ""
 form_Cclientes.TextBox_Emailcclientes.Text = ""
 form_Cclientes.TextBox_Observaçõescclientes.Text = ""
 
End Sub

Private Sub Blimparcclientes_Click()

 form_Cclientes.TextBox_Códigocclientes.Text = ""
 form_Cclientes.TextBox_Nomerazãosocialcclientes.Text = ""
 form_Cclientes.Datadocadastro = ""
 form_Cclientes.ComboBox_Tipocclientes.Text = ""
 form_Cclientes.TextBox_Nomefantasiacclientes.Text = ""
 form_Cclientes.TextBox_RGccientes.Text = ""
 form_Cclientes.TextBoxCPFcclientes.Text = ""
 form_Cclientes.TextBox_CNPJcclientes.Text = ""
 form_Cclientes.TextBox_Inscestadualcclientes.Text = ""
 form_Cclientes.TextBox_Inscmunicipalcclientes.Text = ""
 form_Cclientes.TextBox_Endereçocclientes.Text = ""
 form_Cclientes.TextBox_Complementocclientes.Text = ""
 form_Cclientes.TextBox_Númerocclientes.Text = ""
 form_Cclientes.TextBox_Bairrocclientes.Text = ""
 form_Cclientes.TextBox_Cidadecclientes.Text = ""
 form_Cclientes.ComboBox_Estadocclientes = ""
 form_Cclientes.TextBox_CEPcclientes.Text = ""
 form_Cclientes.TextBox_Paíscclientes.Text = ""
 form_Cclientes.TextBox_Celularcclientes.Text = ""
 form_Cclientes.TextBox_Emailcclientes.Text = ""
 form_Cclientes.TextBox_Observaçõescclientes.Text = ""
 
End Sub

Private Sub bnovocclientes_Click()

Linha = 2
cont = 1

Do Until Sheets("Cclientes").Cells(Linha, 1) = ""
cont = cont + 1
Linha = Linha + 1
Loop

TextBox_Códigocclientes.Text = cont

Datadocadastro = Format(Date, " dd / mm / yyyy")

End Sub

Private Sub BPesuisar_Cclientes_Click()

Range("B1").Select

Dim LinhaAtual As Integer

If ComboBox_Consultascclientes <> "" Then

contador = 0

Do While ActiveCell.Value <> ComboBox_Consultascclientes.Value And contador < 2000
ActiveCell.Offset(1, 0).Select
contador = contador + 1

Loop

End If

If ActiveCell.Value = ComboBox_Consultascclientes.Value Then
ListBox_Cclientes.Clear
LinhaAtual = ActiveCell.Row
ListBox_Cclientes.AddItem Plan3.Range("A" & LinhaAtual)
ListBox_Cclientes.List(ListBox_Cclientes.ListCount - 1, 1) = Plan3.Range("B" & LinhaAtual)
Else

MsgBox "Registro não localizado!", vbCritical, "Erro"

End If

End Sub

Private Sub Bpreencher_Cclientes_Click()

ListBox_Cclientes.Clear
Call PreencherListBox

End Sub

Private Sub Bsalvarcclientes_Click()

ModuloCclientes

End Sub

Private Sub TextBox_Códigocclientes_AfterUpdate()

Dim intervalo As Range
Dim texto As String
Dim código As Integer
Dim pesquisa
Dim mensagem

código = TextBox_Códigocclientes
Sheets("Cclientes").Select
Set intervalo = Range("A1:V4000")

On Error GoTo Erro

pesquisa = Application.WorksheetFunction.VLookup(código, intervalo, 2, False)
pesquisa1 = Application.WorksheetFunction.VLookup(código, intervalo, 3, False)
pesquisa2 = Application.WorksheetFunction.VLookup(código, intervalo, 4, False)
pesquisa3 = Application.WorksheetFunction.VLookup(código, intervalo, 5, False)
pesquisa4 = Application.WorksheetFunction.VLookup(código, intervalo, 6, False)
pesquisa5 = Application.WorksheetFunction.VLookup(código, intervalo, 7, False)
pesquisa6 = Application.WorksheetFunction.VLookup(código, intervalo, 8, False)
pesquisa7 = Application.WorksheetFunction.VLookup(código, intervalo, 9, False)
pesquisa8 = Application.WorksheetFunction.VLookup(código, intervalo, 10, False)
pesquisa9 = Application.WorksheetFunction.VLookup(código, intervalo, 11, False)
pesquisa10 = Application.WorksheetFunction.VLookup(código, intervalo, 12, False)
pesquisa11 = Application.WorksheetFunction.VLookup(código, intervalo, 13, False)
pesquisa12 = Application.WorksheetFunction.VLookup(código, intervalo, 14, False)
pesquisa13 = Application.WorksheetFunction.VLookup(código, intervalo, 15, False)
pesquisa14 = Application.WorksheetFunction.VLookup(código, intervalo, 16, False)
pesquisa15 = Application.WorksheetFunction.VLookup(código, intervalo, 17, False)
pesquisa16 = Application.WorksheetFunction.VLookup(código, intervalo, 18, False)
pesquisa17 = Application.WorksheetFunction.VLookup(código, intervalo, 19, False)
pesquisa18 = Application.WorksheetFunction.VLookup(código, intervalo, 20, False)
pesquisa19 = Application.WorksheetFunction.VLookup(código, intervalo, 21, False)
pesquisa20 = Application.WorksheetFunction.VLookup(código, intervalo, 22, False)

TextBox_Nomerazãosocialcclientes = pesquisa
Datadocadastro = pesquisa1
ComboBox_Tipocclientes = pesquisa2
TextBox_Nomefantasiacclientes = pesquisa3
TextBox_RGccientes = pesquisa4
TextBoxCPFcclientes = pesquisa5
TextBox_CNPJcclientes = pesquisa6
TextBox_Inscestadualcclientes = pesquisa7
TextBox_Inscmunicipalcclientes = pesquisa8
TextBox_Endereçocclientes = pesquisa9
TextBox_Complementocclientes = pesquisa10
TextBox_Númerocclientes = pesquisa11
TextBox_Bairrocclientes = pesquisa12
TextBox_Cidadecclientes = pesquisa13
ComboBox_Estadocclientes = pesquisa14
TextBox_CEPcclientes = pesquisa15
TextBox_Paíscclientes = pesquisa16
TextBox_Telefonecclientes = pesquisa17
TextBox_Celularcclientes = pesquisa18
TextBox_Emailcclientes = pesquisa19
TextBox_Observaçõescclientes = pesquisa20

Exit Sub
Erro:

texto = "não foi localizado nenhum valor correspondente ao código..."

mensagem = MsgBox(texto, vbOKOnly + vbInformation)

End Sub

Private Sub UserForm_Initialize()

Call PreencherListBox

End Sub

Sub limpacliente()
 form_Cclientes.TextBox_Códigocclientes.Text = ""
 form_Cclientes.TextBox_Nomerazãosocialcclientes.Text = ""
 form_Cclientes.Datadocadastro = ""
 form_Cclientes.ComboBox_Tipocclientes.Text = ""
 form_Cclientes.TextBox_Nomefantasiacclientes.Text = ""
 form_Cclientes.TextBox_RGccientes.Text = ""
 form_Cclientes.TextBoxCPFcclientes.Text = ""
 form_Cclientes.TextBox_CNPJcclientes.Text = ""
 form_Cclientes.TextBox_Inscestadualcclientes.Text = ""
 form_Cclientes.TextBox_Inscmunicipalcclientes.Text = ""
 form_Cclientes.TextBox_Endereçocclientes.Text = ""
 form_Cclientes.TextBox_Complementocclientes.Text = ""
 form_Cclientes.TextBox_Númerocclientes.Text = ""
 form_Cclientes.TextBox_Bairrocclientes.Text = ""
 form_Cclientes.TextBox_Cidadecclientes.Text = ""
 form_Cclientes.ComboBox_Estadocclientes = ""
 form_Cclientes.TextBox_CEPcclientes.Text = ""
 form_Cclientes.TextBox_Paíscclientes.Text = ""
 form_Cclientes.TextBox_Celularcclientes.Text = ""
 form_Cclientes.TextBox_Emailcclientes.Text = ""
 form_Cclientes.TextBox_Observaçõescclientes.Text = ""
 
 End Sub

Sub ModuloCclientes()
Linha = 2

Do Until Sheets("Cclientes").Cells(Linha, 1) = ""
Linha = Linha + 1
Loop

    Sheets("Cclientes").Cells(Linha, 1) = form_Cclientes.TextBox_Códigocclientes.Text
    Sheets("Cclientes").Cells(Linha, 2) = form_Cclientes.TextBox_Nomerazãosocialcclientes.Text
    Sheets("Cclientes").Cells(Linha, 3) = form_Cclientes.Datadocadastro
    Sheets("Cclientes").Cells(Linha, 4) = form_Cclientes.ComboBox_Tipocclientes.Text
    Sheets("Cclientes").Cells(Linha, 5) = form_Cclientes.TextBox_Nomefantasiacclientes.Text
    Sheets("Cclientes").Cells(Linha, 6) = form_Cclientes.TextBox_RGccientes.Text
    Sheets("Cclientes").Cells(Linha, 7) = form_Cclientes.TextBoxCPFcclientes.Text
    Sheets("Cclientes").Cells(Linha, 8) = form_Cclientes.TextBox_CNPJcclientes.Text
    Sheets("Cclientes").Cells(Linha, 9) = form_Cclientes.TextBox_Inscestadualcclientes.Text
    Sheets("Cclientes").Cells(Linha, 10) = form_Cclientes.TextBox_Inscmunicipalcclientes.Text
    Sheets("Cclientes").Cells(Linha, 11) = form_Cclientes.TextBox_Endereçocclientes.Text
    Sheets("Cclientes").Cells(Linha, 12) = form_Cclientes.TextBox_Complementocclientes.Text
    Sheets("Cclientes").Cells(Linha, 13) = form_Cclientes.TextBox_Númerocclientes.Text
    Sheets("Cclientes").Cells(Linha, 14) = form_Cclientes.TextBox_Bairrocclientes.Text
    Sheets("Cclientes").Cells(Linha, 15) = form_Cclientes.TextBox_Cidadecclientes.Text
    Sheets("Cclientes").Cells(Linha, 16) = form_Cclientes.ComboBox_Estadocclientes
    Sheets("Cclientes").Cells(Linha, 17) = form_Cclientes.TextBox_CEPcclientes.Text
    Sheets("Cclientes").Cells(Linha, 18) = form_Cclientes.TextBox_Paíscclientes.Text
    Sheets("Cclientes").Cells(Linha, 19) = form_Cclientes.TextBox_Telefonecclientes.Text
    Sheets("Cclientes").Cells(Linha, 20) = form_Cclientes.TextBox_Celularcclientes.Text
    Sheets("Cclientes").Cells(Linha, 21) = form_Cclientes.TextBox_Emailcclientes.Text
    Sheets("Cclientes").Cells(Linha, 22) = form_Cclientes.TextBox_Observaçõescclientes.Text


MsgBox ("Cadastrado com Sucesso")
limpacliente

End Sub
 
Postado : 26/10/2015 4:02 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Nem olhei as rotinas, mas para altera os registros vc precisa carrega-los no formulario e depois localizar novamente o registro para gravar.

O ideal é vc usar um registro unico ou usar uma listbox para registrar todos os registros com valores semelhantes

Exemplo vc quer alterar maria jose da silva entao pesquisa por maria jose e vai aparecer uma lista com 5 nomes vc altera 1 para gravar de novo vc precisa de um registro unico o cpf por exemplo.

Qdo a nao movimentar a linha vc pode limpar o conteudo com clear.contents ao inves de delete.

Mas vc corre o risco de ter um cadastro cheio de buracos e isso atrapalhar sua pesquisa de alteração por exemplo.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 26/10/2015 4:51 pm
(@silver)
Posts: 15
Active Member
Topic starter
 

Coloquei amigo a dica que você me deu realmente fez o que eu queria mais fica como você falou alguns buracos né ! mais quando eu faço um novo cadastro a rotina procura um campo vazio e preenche o que você indicaria ? sou leigo no vba fiz varias coisas mais o botão alterar não consigo !!! mais quando eu digito o código no formulario ele chama os dados ai consigo excluir !! obrigado amigo te agradeço pela ajuda !!!

 
Postado : 26/10/2015 9:37 pm
(@messiasmbm)
Posts: 223
Estimable Member
 

http://www.tomasvasquez.com.br/forum/viewtopic.php?f=23&t=3899
já tem pronto com instruções do manuseio e com código aberto pode até alterar como queira.

 
Postado : 26/10/2015 11:15 pm
(@silver)
Posts: 15
Active Member
Topic starter
 

Obrigado a todos por me ajudar !! com a dica de você consegui resolver com essa rotina deixo ela aqui pra ajudar a outras pessoas !!

criei um modulo e dentro dele coloquei essa rotina !!

Sub AlterarCclientes()

'Define a Range de Pesquisa
Set currentFind = Worksheets("Cclientes").Range("A:A").Find(form_Cclientes.TextBox_Códigocclientes, , _
Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, _
Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, False)

lLinha = currentFind.Row

With form_Cclientes
Sheets("Cclientes").Cells(lLinha, 2).Value = .TextBox_Nomerazãosocialcclientes
Sheets("Cclientes").Cells(lLinha, 4).Value = .ComboBox_Tipocclientes
Sheets("Cclientes").Cells(lLinha, 5).Value = .TextBox_Nomefantasiacclientes
Sheets("Cclientes").Cells(lLinha, 6).Value = .TextBox_RGccientes
Sheets("Cclientes").Cells(lLinha, 7).Value = .TextBoxCPFcclientes
Sheets("Cclientes").Cells(lLinha, 8).Value = .TextBox_CNPJcclientes
Sheets("Cclientes").Cells(lLinha, 9).Value = .TextBox_Inscestadualcclientes
Sheets("Cclientes").Cells(lLinha, 10).Value = .TextBox_Inscmunicipalcclientes
Sheets("Cclientes").Cells(lLinha, 11).Value = .TextBox_Endereçocclientes
Sheets("Cclientes").Cells(lLinha, 12).Value = .TextBox_Complementocclientes
Sheets("Cclientes").Cells(lLinha, 13).Value = .TextBox_Númerocclientes
Sheets("Cclientes").Cells(lLinha, 14).Value = .TextBox_Bairrocclientes
Sheets("Cclientes").Cells(lLinha, 15).Value = .TextBox_Cidadecclientes
Sheets("Cclientes").Cells(lLinha, 16).Value = .ComboBox_Estadocclientes
Sheets("Cclientes").Cells(lLinha, 17).Value = .TextBox_CEPcclientes
Sheets("Cclientes").Cells(lLinha, 18).Value = .TextBox_Paíscclientes
Sheets("Cclientes").Cells(lLinha, 19).Value = .TextBox_Telefonecclientes
Sheets("Cclientes").Cells(lLinha, 20).Value = .TextBox_Celularcclientes
Sheets("Cclientes").Cells(lLinha, 21).Value = .TextBox_Emailcclientes
Sheets("Cclientes").Cells(lLinha, 22).Value = .TextBox_Observaçõescclientes

End With

MsgBox ("Alterados com Sucesso!")

End Sub

E no formulário Cclientes criei um botão Alterar e coloquei o botão pra chamar a rotina de cima !!

Private Sub Balterarcclientes_Click()

AlterarCclientes

End Sub

 
Postado : 27/10/2015 6:58 am