Controle de valores em uma planilha Excel usando script.

0

Este script VBA pode ser utilizado para comparar valores existentes em uma planilha MS Excel e realizar validações de seu conteúdo.

Alguns dias atrás, solicitaram-me um script para controlar os pesos que eram inseridos nas células de uma planilha de pesquisa. A situação era mais ou menos a seguinte:

-Uma questão possui inúmeras respostas afirmativas, onde o usuário, deve definir os pesos de cada uma das opções de 1 a 12, sendo que 1 é maior prioridade e 12 menor.
-As prioridades não poderiam se repetir na mesma resposta.
-Seria utilizado mais de uma coluna para preencher os valores.
-As colunas de resposta seriam A e D.
-As linhas onde poderiam ser inseridas as respostas, variavam de 23 a 28.
-Caso um valor já existisse, deveria ser exibida uma mensagem de alerta, informando a existência do mesmo e perguntando, se deveria ser alterado o valor anterior ou o valor atual.
-O valor a alterar deveria ser apagado e a célula receber o foco.

O código a seguir, pode ser utilizado para realizar este tipo de verificação e com algumas alterações pode ser extendido para satisfazer outras necessidades.


Private Sub Worksheet_Change(ByVal Target As Range)

Dim endereco As Variant
Dim col, lin As Integer
Dim ende As String
Dim x

endereco = Split(CStr(Target.Address), "$")

If endereco(1) = "A" Or endereco(1) = "D" Then
If endereco(2) >= 23 And endereco(2) <= 28 Then For col = 0 To 1 For lin = 23 To 28 If col = 0 Then ende = "$A$" Else ende = "$D$" End If ende = ende & lin If Trim(Target.Value) <> "" And Trim(Target.Value) <> 0 Then
If ende <> Target.Address Then
If Range(ende).Value = Target.Value Then

x = MsgBox("Atenção, o valor já existe!" & vbCrLf & "Deseja alterar o valor anterior?", vbYesNo, "TESTE XYZ")
If x = vbYes Then
Range(ende).Value = ""
Range(ende).Activate
Else
Target.Value = ""
Target.Activate
End If
End If
End If
End If
Next
Next
End If

End Sub

Tiago Larios

0