Restringir colar em células suspensas no excel

6

Eu tenho uma folha de excel que contém muitas colunas suspensas. Digamos que uma coluna tenha Test1, Test2 e Test3 como valores de opções suspensas. Células sob esta coluna não devem aceitar os valores além destes 3. Se eu copiar e colar 'XYZ' nessas células, ele não deve aceitar. Alguém pode me ajudar a lidar com isso?

    
por Charan Raju C R 29.01.2015 / 05:26

2 respostas

7

Configurar validação de dados

Você desejará usar o recurso Validação de dados no Excel para restringir as células a um texto específico. No seu caso: "Teste1", "Teste2" e "Teste3"

  1. Selecione as células que devem aceitar apenas os valores "Test1", "Test2" e "Test3"
  2. Na guia Dados , no grupo Ferramentas de dados , clique no botão Validação de dados .

  3. NalistasuspensaPermitir:,selecioneLista

  4. NocampoOrigem:,insiraTest1,Test2,Test3

  5. Clique em OK para aplicar as alterações.

Neste ponto, todas as células selecionadas na Etapa 1 terão uma lista suspensa associada a ela. Os usuários da planilha só poderão inserir Test1 , Test2 ou Test3 . Se eles tentarem inserir qualquer outra coisa, eles receberão a seguinte mensagem de erro:

Vocêpodepersonalizarotextodamensagemdeerro,sedesejar,clicandonaguiaAlertadeerronaetapa4acima.

Evitarcopiar/colaremcélulasvalidadaspordados

Issofuncionarámuitobem,EXCETOnocasoemquealguémcolaoconteúdonapartesuperiordascélulas.Aúnicamaneiradeimpedirqueissoaconteçaégravarumamacroquedetectaatualizaçõesnascélulas,determinaseavalidaçãodedadosestáhabilitadanascélulase,emseguida,negaacolagemsetrue.

  1. Selecionetodasascélulasquepossuemvalidaçãodedadosenomeie-asDataValidationRange.Vocêpodenomearintervalosdecélulasdigitandoonomeàesquerdadabarradefórmulas,ondeoendereçodacélulaestálocalizado.
  2. Nomódulodecódigodaplanilha(Planilha1,porexemplo),adicioneoseguintecódigo:
PrivateSubWorksheet_Change(ByValTargetAsRange)'Doesthevalidationrangestillhavevalidation?IfHasValidation(Range("DataValidationRange")) Then
        Exit Sub
    Else
        Application.Undo
        MsgBox "Error: You cannot paste data into these cells." & _
        "Please use the drop-down to enter data instead.", vbCritical
    End If
End Sub

Private Function HasValidation(r) As Boolean
    'Returns True if every cell in Range r uses Data Validation
    On Error Resume Next
    x = r.Validation.Type
    If Err.Number = 0 Then HasValidation = True Else HasValidation = False
End Function

Infelizmente, o VBA é a única maneira de impedir que alguém cole as células. Este tem sido um problema com a validação de dados no Excel desde o início. Espero que ajude de qualquer forma.

    
por 29.01.2015 / 20:05
0

Uma solução mais simples seria simplesmente desabilitar a inserção na pasta de trabalho. Acabei de encontrar a solução para isso aqui: link

    
por 25.01.2016 / 20:08