Usuário com melhor resposta
2 problemas a serem resolvidos relacionados a, msgbox e save dados

Pergunta
-
O primeiro problema é que, não consigo representar o dado da variavel nessa msgbox, toda hora da erro de indexação.
MsgBox ("Parabéns!" + vbCrLf + vbCrLf + "Você realizou um cadastro com sucesso, e a sua numeração a ser utilizada é:" + vbCrLf + vbCrLf + & numbox &)
E agora, por exemplo, eu tenho um formulario de edição de dados, só que, eu precisava que mostra-se apenas os 10 ultimos cadastrados, e que, ao alterar uma informação de uma pessoal do mesmo nome, não altere todos os dados dela em outros cadastro.
Por exemplo: Quando eu cadastro no meu nome "Juliano Renan Silverio", uma informação HOJE, e uma informação por exemplo de ONTEM cadastrada no meu nome, ao alterar a de HOJE, também altera a de ontem.... para ficar mais claro, se eu alterar o campo "ASSUNTO" do meu cadastro de HOJE, altera o de ONTEM também, so que não é isso que eu quero que ocorra, quero que altere só o de HOJE.
Meu código do botão buscar cadastros:
Private Sub assbox_Change() 'addlines = Worksheets("Plan1").UsedRange.Rows.Count 'assbox.RowSource = "Plan1!a2:a" & addlines localedit.Text = assbox localedit.Enabled = False datecad.Enabled = False editdiscbox.Enabled = False editnumbox.Enabled = False localdemon = Worksheets("Plan1").UsedRange.Rows.Count For i = 0 To localdemon If assbox.ListIndex = i Then editnamebox = Cells(i + 2, 1) editdiscbox = Cells(i + 2, 2) datecad = Cells(i + 2, 3) editassuntbox = Cells(i + 2, 4) editnumbox = Cells(i + 2, 6) Exit Sub End If Next End Sub
Agora o codigo do meu botão de salvar:
Private Sub CommandButton2_Click() Ultlinha = Plan1.Cells(Rows.Count, "A").End(xlUp).Row For i = 1 To Ultlinha If Plan1.Cells(i, "A") = assbox.Value Then 'Plan1.Cells(i, "A") = editnamebox.Value Plan1.Cells(i, "B") = editdiscbox.Value Plan1.Cells(i, "D") = editassuntbox.Value MsgBox ("Informação registrada com sucesso.") End If Next Unload UserForm3 UserForm3.Show End Sub
Meu initialize form da tela de edição:
Private Sub UserForm_Initialize() addlines = Worksheets("Plan1").UsedRange.Rows.Count assbox.RowSource = "Plan1!a2:a" & addlines editdiscbox.AddItem "APOSTILA - NRH" editdiscbox.AddItem "APOSTILA - CRA/6" editdiscbox.AddItem "FOLHA DE INFORMAÇÃO - NRH" editdiscbox.AddItem "MEMORANDO - NRH" editdiscbox.AddItem "OFÍCIO - NRH" editdiscbox.AddItem "PORTARIAS - NRH" editdiscbox.AddItem "PORTARIAS - CRA" editdiscbox.AddItem "PORTARIAS - DRH" editdiscbox.AddItem "PORTARIAS DA DIRETORIA DE DIVISÃO - (CRA/6-G)" editdiscbox.AddItem "PORTARIAS - CGA" editdiscbox.AddItem "PORTARIAS - CAF (CRA/6)" editdiscbox.AddItem "PORTARIAS - CAF/CGA (CRA/6)" editdiscbox.AddItem "PORTARIAS - CAT (CRA/6) / CTG (CRA/6)" editdiscbox.AddItem "PORTARIAS - CAT/CGA (CRA/6)" editdiscbox.AddItem "PORTARIAS - GS-CH/CGA (CRA/6)" editdiscbox.AddItem "PORTARIAS - CAT/CAF (CRA/6)" editdiscbox.AddItem "CERTIDÕES DIVERSAS" editdiscbox.AddItem "CERTIDÃO 101" editdiscbox.AddItem "CERTIDÃO 102" editdiscbox.AddItem "RESOLUÇÃO S" editdiscbox.AddItem "CERTIDÃO DE PRÊMIO DE PRODUTIVIDADE" editdiscbox.AddItem "FORMULÁRIO DE DADOS" editdiscbox.AddItem "PORTARIAS - CSTC" editdiscbox.AddItem "PORTARIAS - CAT/CSTC" editdiscbox.AddItem "PORTARIAS - CSTC/CAT" editdiscbox.AddItem "PORTARIAS - DRT/7" editdiscbox.AddItem "APOSTILAS - DRT/7" editdiscbox.AddItem "PORTARIAS - CRDPe/6" editdiscbox.AddItem "PORTARIAS - DDPE" editdiscbox.AddItem "PORTARIAS - TIT" editdiscbox.AddItem "PORTARIAS - DTJ/3" editdiscbox.AddItem "PORTARIAS - DTJ/1" editdiscbox.AddItem "PORTARIAS - RF/3" editdiscbox.AddItem "PORTARIAS - DA e DI" editdiscbox.AddItem "PORTARIAS - DRF e CAT" End Sub
Respostas
-
Olá Juliano,
Troque o caracter "+" pelo "&" este é o caracter de concatenação no VBA.
Você pode trocar também o vbCRLf por vbNewLine.
Espero que ajude!
Márcio Diniz
MsgBox ("Parabéns!" & vbCrLf & vbCrLf & "Você realizou um cadastro com sucesso, e a sua numeração a ser utilizada é:" & vbCrLf & vbCrLf & numbox &)
- Editado Márcio Diniz quarta-feira, 24 de janeiro de 2018 12:31
- Marcado como Resposta julianorsilverio sexta-feira, 26 de janeiro de 2018 12:45
-
Olá Juliano,
Pelo que eu entendi o segundo problema é em parar de executar o loop, então falta um Exit For.
Espero que tenha ajudado!
Márcio Diniz
Private Sub CommandButton2_Click() Ultlinha = Plan1.Cells(Rows.Count, "A").End(xlUp).Row For i = 1 To Ultlinha If Plan1.Cells(i, "A") = assbox.Value Then 'Plan1.Cells(i, "A") = editnamebox.Value Plan1.Cells(i, "B") = editdiscbox.Value Plan1.Cells(i, "D") = editassuntbox.Value MsgBox ("Informação registrada com sucesso.")
Exit For End If Next
- Marcado como Resposta julianorsilverio sexta-feira, 26 de janeiro de 2018 12:45
Todas as Respostas
-
Olá Juliano,
Troque o caracter "+" pelo "&" este é o caracter de concatenação no VBA.
Você pode trocar também o vbCRLf por vbNewLine.
Espero que ajude!
Márcio Diniz
MsgBox ("Parabéns!" & vbCrLf & vbCrLf & "Você realizou um cadastro com sucesso, e a sua numeração a ser utilizada é:" & vbCrLf & vbCrLf & numbox &)
- Editado Márcio Diniz quarta-feira, 24 de janeiro de 2018 12:31
- Marcado como Resposta julianorsilverio sexta-feira, 26 de janeiro de 2018 12:45
-
Olá Juliano,
Pelo que eu entendi o segundo problema é em parar de executar o loop, então falta um Exit For.
Espero que tenha ajudado!
Márcio Diniz
Private Sub CommandButton2_Click() Ultlinha = Plan1.Cells(Rows.Count, "A").End(xlUp).Row For i = 1 To Ultlinha If Plan1.Cells(i, "A") = assbox.Value Then 'Plan1.Cells(i, "A") = editnamebox.Value Plan1.Cells(i, "B") = editdiscbox.Value Plan1.Cells(i, "D") = editassuntbox.Value MsgBox ("Informação registrada com sucesso.")
Exit For End If Next
- Marcado como Resposta julianorsilverio sexta-feira, 26 de janeiro de 2018 12:45