Notifications
Clear all

Bloquear a digitação de uma célula com validação de dados

13 Posts
2 Usuários
0 Reactions
6,298 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia,

Mais uma vez recorro à ajuda dos amigos.
Tenho uma planilha que onde o preenchimento de uma célula dependerá da outra:

Caso A1 esteja vazia não será permitido digitar nada em B1;
Caso A1 contenha algum texto (não número), será permitido digitar um texto em B1.

Como efetuar esta restrição com validação de dados ao passo que se A1 estiver vazia e qdo for digitar um texto em B1, assim que começar a digitar a primeira letra, já apareça a caixa de restrição de validação de dados sem a necessidade de apertar a tecla enter.

Pois consegui criar está validação, mas o problema é que o usuário começará a digitar um texto qualquer em B1 com A1 vazia e depois de tudo escrito dará o enter e receberá o aviso que não é permitido e perderá o que escreveu e o mesmo também não precionará o enter após digitar a primeira letra, somente após digitar todo o texto.

Por isto solicito a ajuda dos amigos se possível assim que seja digitada a primeira letra (qualquer uma) já venha o aviso de restrição, não permitindo que seja digitado o texto inteiro, e claro se A1 contiver algum texto ai sim B1 está liberada para digitar qualquer texto.

Obrigado!!!

T+
Carlos Eduardo
Santo André - SP
[email protected]

 
Postado : 07/07/2011 5:21 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Além da validação você pode fazer a formatação condicional, fazendo com que a fonte fique da cor do fundo caso A1 não tenha nenhum texto, porque aí não vai aparecer o texto e a pessoa vai lembrar. Ou formatar o fundo como vermelho por exemplo caso A1 não tenha texto para chamar a atenção.

Fora isso, acho que só por VBA.

Qualquer coisa da o grito...

 
Postado : 07/07/2011 6:04 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Cara, o meu OFFICE é 2007

DADOS>>VALIDAÇÃO DE DADOS>>PERMITIR = PERSONALIZADO
EM FORMULA
=ÉTEXTO(A1)

Depois é só configurar as mesagem de acordo com o desejado.

BLZ?

T+

 
Postado : 07/07/2011 8:05 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Anderson, pelo que eu entendi, ele já conseguiu fazer isso...
O problema é que a mensagem bloqueando a alteração da célula só aparece quando é finalizada com um "Enter", ele quer que seja avisado assim que digite a primeira letra...

 
Postado : 07/07/2011 8:17 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Ahh!

Cara, tenho andado muito mais lerdo que o normal.

Ninguem tem uma formula pra ganhar na mega não? :D

Brincadeira.

Com vba derrepente seja facil.

Calmidoro pode ser em vba?

 
Postado : 07/07/2011 8:40 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde amigos, Anderson e Bernardo,

Conforme sita nosso amigo Bernardo já consegui travar a célula, mas creio que o que estou querendo fazer será possível somente através de VBA.
Caso tenha um código Anderson ficaria grato.

Abraços!!!

Carlos Eduardo
Santo André - SP
[email protected]

 
Postado : 07/07/2011 12:59 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Desculpa o vacuo ai cara mas o bicho ta pegando no trampo. sem tempo...

Vou ver oque da pra fazer e assim que tiver algo posto aqui.

BLZ?

T+

 
Postado : 08/07/2011 11:47 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Calmidor, coloquee a rotina abaixo no evento da Aba que pretende, e faça os testes see é isto que quer:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'Verificca se B1 foi selecionada
    If Target.Address = Range("B1").Address Then
        'Verifica se A1 é Vaziaou contem Texto
        If [A1] = "" Or Application.WorksheetFunction.IsText(Range("A1")) Then
            MsgBox "A1 Vazia ou Contem TEXTO"
            [A1].Select
        End If
    End If
    
End Sub

[]s

 
Postado : 10/07/2011 6:20 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Mauro muito boa a rotina, mas o que ele que é travar a celula B1 se em A1 for vazia ou tiver numero.
Se em A1 for texto a Celula B1 distrava ate ai blz ele conseguiu com validação e consegui com rotina.
o pro é que a celula só deve aceitar letra quando A1 for letra mas e a mensagem deve ocorrer quando o primeiro caractere foe digitado na celula.

 
Postado : 10/07/2011 6:29 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

tipo verificar em tempo de execução se o caractere digitado é letra ou numero se for letra nada acontece e continua a digitação se for numero executa a mensagem avisando que o caractere é invalido.
Acho que é tipo isso.
BLZ?
T+ :D

 
Postado : 10/07/2011 6:35 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Não tenho certeza se temos este evento em Celula, vou pesquisar a respeito, talves com alguma API, por hora acredito que já ajuda, pois ao selecionar a celula B1 a rotina irá verificar o conteudo de A1, acho que aliada a validaçãoa que ele fez deve funcionar.

Quanto "IsText" é só trocar por "IsNumeric"

[]s

 
Postado : 10/07/2011 8:07 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Realmente, já quebrei a cabeça procurando um evento que atenda a esse criterio mas com minhas limitações não consegui nada.
Vamos tentando ate achar uma solução que atenda.

BLZ?

T+

 
Postado : 11/07/2011 5:07 am
(@osmar-kbr)
Posts: 0
New Member
 

Caros,

Após uma pesquisa sobre "bloqueio de digitação de uma célula com validação de dados", cheguei a este fórum. Segui inclusive as instruções e dicas aqui presentes e funcionou perfeitamente! No entanto preciso estender isso para as demais linhas e colunas de minha planilha e não faço idéia como fazer isso, pois não tenho prática no VBA. São aproximadamente 8 colunas com 290 linhas cada, que desejo fazer esse bloqueio da mesma maneira que vocês indicaram... Não posso editar célula A2 sem que a A1 esteja preenchida, a A3 sem que a A2 esteja preenchida... Na coluna B... Não posso editar célula B2 sem a B1... e assim por diante.

Peço a colaboração caso possam me orientar com relação a isso. E muito obrigado pelas demais informações... Parabéns pelo fórum!

Osmar Kober
Curitiba / PR
[email protected]

 
Postado : 26/02/2015 12:33 pm