none
Bloquear Celular Excel via VBA RRS feed

  • Pergunta

  • Boa Noite !!!

     

    Help !!!

     

    Criei uma planilha de calculo no Excel e estou com dificuldade em bloquear uma determinada celula em 100%. E colocar uma mensagem caso esta celula seja superior a 100% apareça uma mensagem de alerta informando que este valor não podera ser superior a 100%.

     

    No aguardo

     

    Mrpresenty

    sábado, 21 de junho de 2008 23:46

Respostas

  • Use o Worksheet_Change, como fez da primeira vez.

     

    Code Snippet

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range

    Set rng = Range("I28")
    If Not Intersect(Target, rng) Is Nothing Then
        If IsNumeric(rng.Value) = False Then
            MsgBox "Prenchimento inválido.", vbCritical
            rng.Value = Empty
        Else
            If Abs(rng.Value) > 1 Then
                MsgBox "Percentual maximo - 100%", 0 + 4096, "Atenção !!!"
                rng.Value = Empty
            End If
        End If
    End If
    End Sub

     

     

     

    quinta-feira, 26 de junho de 2008 03:06
    Moderador

Todas as Respostas

  • Olá,

     

    no menu Data > Data Validation você pode definir que o valor permitido é qualquer decimal entre 0 e 1, e a mensagem de erro que quer exibir.

     

    domingo, 22 de junho de 2008 14:13
    Moderador
  • Luiz Cláudio, boa noite !!!

     

    Muito obrigado pela atenção !!!

     

    Eu sabia que da dava para fazer pela Validação do excel, porem não estava muito seguro e fui mais a fundo em relação a pesquisar uma alternativa para criar a macro via VBA.

     

    Segue abaixo a macro que precisava.

     

    Private Sub Worksheet_Change(ByVal Target As Range)

        Dim var As Single
            var = Range("I28")
        If var > 1 Then
            MsgBox "Percentual maximo - 100%", 5, "Atenção !!!"
               
        End If
       

    End Sub

     

    abraço,

     

    Leonardo

    quarta-feira, 25 de junho de 2008 03:04
  • Se o objetivo é impedir a entrada inválida do valor, o recurso de validação de dados é mais seguro e eficaz que a macro.

     

    Da forma que está, ela apenas avisará, mas permitirá que insira o valor.

     

    É bom também informar o Target como sendo a célula I28, para evitar que a alteração de outras células chame a mesma validação.

     

    quinta-feira, 26 de junho de 2008 01:19
    Moderador
  • Luiz,

     

    Segue abaixo novo.

     

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim var As Single
            var = Range("I28")
        If var > 1 Then
            MsgBox "Percentual maximo - 100%", 0 + 4096, "Atenção !!!"
             Cells(28, 9) = ""
        Else
           
        End If

    End Sub

     

    Abraço,

     

    Leo

     

    quinta-feira, 26 de junho de 2008 02:53
  • Use o Worksheet_Change, como fez da primeira vez.

     

    Code Snippet

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range

    Set rng = Range("I28")
    If Not Intersect(Target, rng) Is Nothing Then
        If IsNumeric(rng.Value) = False Then
            MsgBox "Prenchimento inválido.", vbCritical
            rng.Value = Empty
        Else
            If Abs(rng.Value) > 1 Then
                MsgBox "Percentual maximo - 100%", 0 + 4096, "Atenção !!!"
                rng.Value = Empty
            End If
        End If
    End If
    End Sub

     

     

     

    quinta-feira, 26 de junho de 2008 03:06
    Moderador
  • Senhores boa tarde.

    Sei que o tópico é antigo, mas preciso de um auxilio muito parecido com o do colega.

    Tenho um documento utilizado na empresa onde caso a condição seja "Não" (célula H7) então a célula H8 deve ser bloqueada, porém, caso a célula H7 for igual a "Sim", permitir então o preenchimento da célula H8.

    Tentei alterar o código exibido aqui, porém me falta o tal do conhecimento profundo.

    Obrigado e aguardo ajuda.

    segunda-feira, 28 de setembro de 2015 18:58
  • Boa tarde!

    Pode me ajudar com a formula abaixo!!

    Preciso incluir mais coluna e outras celulas aleatoria ou na sequencia

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If Target.Column = 1 Then
            If Target.Row = 3 Or Target.Row = 5 Then
                Beep
                Cells(Target.Row, Target.Column).Offset(0, 1).Select
            End If
        End If
    End Sub

     


    quarta-feira, 5 de dezembro de 2018 17:09