Página 1 de 1

Validação de valores em VBA

Enviado: 30 Jul 2019 às 13:14
por Pegorini
Boa Tarde Senhores.

O tópico Validação de valores foi resolvido, porém na minha planilha eu importo informações e as limpo quando analiso, então quando é feita a nova importação e limpeza, a formatação condicional some.

Assim, gostaria de aplicar a mesma condição em vba para que eu a chame quando importar meus dados.

Diante disso eu tentei aplicar as funções criadas pelo Osvaldo, mas não chego ao resultado desejado.

Se possível, alguém poderia identificar onde errei na minha macro?


O que pretendo? Que se o valor inserido no intervalo de "B" da plan1 esteja no intervalo de "B" da plan2 a condição seja verdadeira e as células fiquem verde, senão em amarelo.


'=CONT.SE(Plan2!$B:$B;$B2)
'=CONT.SE(Plan2!$B:$B;$B2)=0

Validação de valores em VBA

Enviado: 30 Jul 2019 às 16:26
por eduardogrigull
Use esse Script. Acho que está funcionando kkk...
Código: Selecionar todos
Sub Contar_Valores()
Dim var As Double

For i = 2 To Plan1.Range("B2").End(xlDown).Row
    With Plan1
        var = WorksheetFunction.CountIf(Sheets("Plan2").Range("B2:B20000"), .Cells(i, 2))
        If var = 0 Then
            .Cells(i, 4).Interior.ColorIndex = 6 ' célula em amarelo
        Else
            .Cells(i, 4).Interior.ColorIndex = 4 'célula em verde
        End If
    End With
Next

End Sub

Re: Validação de valores em VBA

Enviado: 30 Jul 2019 às 20:47
por osvaldomp
Experimente:
Código: Selecionar todos
Sub AplicaFC()
 With Range("B2:B" & Cells(Rows.Count, 2).End(3).Row)
  .FormatConditions.Delete
  .FormatConditions.Add Type:=xlExpression, Formula1:="=CONT.SE(Plan2!$B:$B;$B2)"
  .FormatConditions(1).Interior.ColorIndex = 4
  .FormatConditions.Add Type:=xlExpression, Formula1:="=CONT.SE(Plan2!$B:$B;$B2)=0"
  .FormatConditions(2).Interior.ColorIndex = 6
 End With
End Sub

Re: Validação de valores em VBA

Enviado: 31 Jul 2019 às 07:38
por Pegorini
Muito obrigado Osvaldo e Eduardo.