none
Botão 'Salvar c/ campo obrigatorio RRS feed

  • Pergunta

  • Oi..

    Estou aprendendo a usar o excel e gostaria de saber se alguem pode me ajudar. Vou tentar explicar o problema.

    Tenho um botão com essa macro..

    If (B4) = "" Then
            MsgBox "O campo ""CPF"" é de preenchimento obrigatório."   

    ElseIf (B6) = "" Then
            MsgBox "O campo ""NOME"" é de preenchimento obrigatório."

    End If    

        Sheets("B.D. Cliente").Select
        Rows("2:2").Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
       
        Sheets("Cadastrar Cliente").Range("B4").Copy _
          Destination:=Sheets("B.D. Cliente").Range("A2")
        Sheets("Cadastrar Cliente").Range("B6").Copy _
          Destination:=Sheets("B.D. Cliente").Range("B2")
             
    End Sub

    Gostaria de saber como faço para quando algum campo acima estiver vazio, nao salvar.

    Outra coisa é: Quando executo essa macro na aba 'Cadastrar Cliente ela abri a aba 'B.D. Cliente. Como executar essa macro sem sair da aba 'Cadastrar Cliente?

    quarta-feira, 27 de junho de 2012 14:26

Respostas

  • Não use aspas duplas no VBA, confunde o código porque aspas duplas é um caractere especial no VBA. Prefira usar aspas simples no lugar.

    ---

    Você está mudando de aba por causa do código dessa linha:

        Sheets("B.D. Cliente").Select
    

    Você terá que removê-la. No entanto, você precisa fazer uma operação de copiar e colar. Isso não é problema, porque uma das vantagens de se usar VBA é que você pode manipular objetos (isto é, Pastas de Trabalho, Planilhas e Células) sem precisar selecioná-las ou ativá-las. Veja como ficaria seu código:

    Sub Exemplo()
        If Range(B4) = "" Then
            MsgBox "O campo 'CPF' é de preenchimento obrigatório!"
            Exit Sub
        ElseIf (B6) = "" Then
            MsgBox "O campo 'NOME' é de preenchimento obrigatório!"
            Exit Sub
        End If
        Sheets("B.D. Cliente").Rows("2:2").Insert Shift:=xlDown _
          , CopyOrigin:=xlFormatFromLeftOrAbove
        Sheets("Cadastrar Cliente").Range("B4").Copy _
          Destination:=Sheets("B.D. Cliente").Range("A2")
        Sheets("Cadastrar Cliente").Range("B6").Copy _
          Destination:=Sheets("B.D. Cliente").Range("B2")
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quinta-feira, 28 de junho de 2012 02:38
    Moderador