Bom, se não tem lista, aquela lista suspensa, então não tem validação para o conteúdo da célula, só para impedir a inserção de fórmula...
Segue o código que deve ser colocado na folha de código da planilha:
- no Excel, tecle Alt+F11
- no VBE, tecle Ctrl+R
- encontre seu arquivo e abra a sua estrutura
- encontra a planilha onde quer que isso aconteça, dê duploclique para ver o código dela e cole todo o código abaixo
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Planilha As Excel.Worksheet
Dim Intervalo As Excel.Range
Dim Celula As Excel.Range
Set Planilha = Target.Parent 'Define a planilha sendo alterada
With Planilha
Set Intervalo = Application.Union(.Range("A10:A250"), .Range("B10:B250"), .Range("C10:C250")) 'Define o intervalo a ser validado para impedi fórmulas
End With
For Each Celula In Target.Cells 'começa varredura de todas células alteradas (com Enter e com Ctrl+Enter)
If Not Application.Intersect(Celula, Intervalo) Is Nothing Then 'verifica se a célula está no intervalo definido acima
With Celula
If VBA.Len(.Formula) > 0 Then 'verifica se a célula tem fórmula
Select Case VBA.Left(.Formula, 1) 'guarda o primeiro caractere da fórmula em memória
Case "=", "+", "-" 'testa o caractere guardado contra as três opções
Application.Undo 'Dispara o Ctrl+Z, Desfazer
Exit For 'Sai do loop, pois já desfez todas as alterações
End Select
End If
End With
End If
Next Celula
Set Intervalo = Nothing 'limpa memória
Set Planilha = Nothing 'limpa memória
End Sub
Segue o modelo com o código implementado e funcionando...
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 28/01/2015 7:48 pm