none
2 problemas a serem resolvidos relacionados a, msgbox e save dados RRS feed

  • 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

    quarta-feira, 24 de janeiro de 2018 12:13

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
    quarta-feira, 24 de janeiro de 2018 12:31
  • 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
    quarta-feira, 24 de janeiro de 2018 13:05

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
    quarta-feira, 24 de janeiro de 2018 12:31
  • 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
    quarta-feira, 24 de janeiro de 2018 13:05