
Atualmente, estou trabalhando com uma coluna de dados (números) que corresponde a um conjunto de valores e queria saber como poderia substituir automaticamente os dados/números pelo valor correspondente correto? (forneci uma imagem do que quero dizer abaixo) obrigado pela sua ajuda!
Dados iniciais
Resultado final
Responder1
No evento de alteração da planilha você pode fazer algo assim. Ele assume que a coluna na qual você está inserindo é A e o layout de suas pesquisas está em K&J conforme seu exemplo. Você pode ajustar os intervalos conforme desejar.
Private Sub Worksheet_Change(ByVal Target As Range)
'should check you are doing entry in column A first
If Target.Column = 1 Then
Application.EnableEvents = False
Dim R1 As Range
Dim R2 As Range
Dim rngStart As Range
Dim varFind As Variant
Dim InRange As Boolean
Set R1 = Range(Target.Address)
Set R2 = Range("J:J")
Set rngStart = Range("J1")
If R2.Find(What:=Target, After:=rngStart, LookIn:=xlValues, LookAt:=xlWhole _
, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) Is Nothing Then
Application.EnableEvents = True
Set R1 = Nothing
Set R2 = Nothing
Exit Sub
Else
varFind = R2.Find(What:=Target, After:=rngStart, LookIn:=xlValues, LookAt:=xlWhole _
, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Address
Set varFind = Range(varFind)
R1.Value = varFind.Offset(0, -1)
Application.EnableEvents = True
Set R1 = Nothing
Set R2 = Nothing
Set rngStart = Nothing
Set varFind = Nothing
End If
Else
Exit Sub
End If
End Sub